From 02f9c16537d2d54fe81068163fb2bf996d5e88a6 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 13 Jan 2022 10:54:19 +0100 Subject: [PATCH 001/204] Initial commit for ThermalConductivity.py --- FModules/get_lf.f90 | 692 +++++++ FModules/get_scattering_q_grid.f90 | 147 ++ FModules/third_order_cond.f90 | 340 ++++ cellconstructor/SSCHA_phonopy_parser.py | 268 +++ cellconstructor/ThermalConductivity.py | 2287 +++++++++++++++++++++++ 5 files changed, 3734 insertions(+) create mode 100644 FModules/get_lf.f90 create mode 100644 FModules/get_scattering_q_grid.f90 create mode 100644 FModules/third_order_cond.f90 create mode 100644 cellconstructor/SSCHA_phonopy_parser.py create mode 100644 cellconstructor/ThermalConductivity.py diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 new file mode 100644 index 00000000..27c18078 --- /dev/null +++ b/FModules/get_lf.f90 @@ -0,0 +1,692 @@ +module get_lf + + contains + + subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, & + energies, ne, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, lineshapes) + + use omp_lib + use third_order_cond + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, ne, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat), energies(ne) + real(kind=DP), intent(in) :: smear(3*nat, nqpt), smear_id(3*nat, nqpt) + real(kind=DP), intent(in) :: T + real(kind=DP), dimension(nirrqpt, 3*nat, ne), intent(out) :: lineshapes + + integer :: iqpt, i, jqpt, tot_qpt, prev_events, nthreads + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q + real(kind=DP), dimension(ne, 3*nat) :: lineshape + complex(kind=DP), dimension(ne, 3*nat) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + + lineshapes(:,:,:) = 0.0_DP + kprim = transpose(inv(rprim)) + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif + + !$OMP PARALLEL DO IF(parallelize) & + !$OMP DEFAULT(SHARED) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, lineshape) + do iqpt = 1, nirrqpt + + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + lineshape(:,:) = 0.0_DP + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix!' + w_neg_freqs = .True. + endif + + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:,:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo + call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & + nfc3, ne, curr_grid, curr_w, fc2, fc3, & + r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, .not. parallelize, self_energy) + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + + call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + + do i = 1, 3*nat + if(w_q(i) .ne. 0.0_DP) then + lineshapes(iqpt, i, :) = lineshape(:,i) + else + lineshapes(iqpt, i, :) = 0.0_DP + endif + enddo + else + lineshapes(iqpt,:,:) = 0.0_DP + endif + + enddo + !$OMP END PARALLEL DO + + + end subroutine calculate_lineshapes + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, T, & + nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) + + use omp_lib + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat) + real(kind=DP), intent(in) :: smear(3*nat, nqpt) + real(kind=DP), intent(in) :: T + complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies + + integer :: iqpt, i, tot_qpt, jqpt, prev_events, nthreads + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q + complex(kind=DP), dimension(3*nat, 3*nat) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + + self_energies(:,:) = 0.0_DP + kprim = transpose(inv(rprim)) + print*, 'Calculating phonon lifetimes in perturbative regime!' + + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif + + !$OMP PARALLEL DO IF(parallelize) & + !$OMP DEFAULT(SHARED) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt) + do iqpt = 1, nirrqpt + + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + w_neg_freqs = .True. + endif + + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:,:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo + call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & + nfc3, 3*nat, curr_grid, curr_w, fc2, fc3, & + r2_2, r3_2, r3_3, kprim, masses, smear, T, w_q, .not. parallelize, self_energy) + + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + + do i = 1, 3*nat + if(w_q(i) .ne. 0.0_DP) then + self_energies(iqpt, i) = self_energy(i,i)/2.0_DP/w_q(i) + else + self_energies(iqpt, i) = complex(0.0_DP, 0.0_DP) + endif + enddo + else + self_energies(iqpt, :) = complex(0.0_DP, 0.0_DP) + endif + + enddo + !$OMP END PARALLEL DO + + + end subroutine calculate_lifetimes_perturbative + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, T, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) + + use omp_lib + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat) + real(kind=DP), intent(in) :: smear(3*nat, nqpt) + real(kind=DP), intent(in) :: T + complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies + + integer :: iqpt, i, prev_events, jqpt, tot_qpt, nthreads + real(kind=DP) :: start_time, curr_time + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q + complex(kind=DP), dimension(3*nat) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + call cpu_time(start_time) + self_energies(:,:) = complex(0.0_DP, 0.0_DP) + kprim = transpose(inv(rprim)) + print*, 'Calculating phonon lifetimes in Lorentzian regime!' + + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif + + !$OMP PARALLEL DO IF(parallelize) & + !$OMP DEFAULT(SHARED) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt) + do iqpt = 1, nirrqpt + + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + !call cpu_time(curr_time) + !print*, 'Since start: ', curr_time - start_time, ' seconds!' + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + w_neg_freqs = .True. + endif + + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo + call calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, nfc3, curr_grid, & + curr_w, fc2, fc3, & + r2_2, r3_2, r3_3, kprim, masses, smear(:,iqpt), T, .not. parallelize, self_energy) + + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + else + self_energy(:) = complex(0.0_DP, 0.0_DP) + endif + + do i = 1, 3*nat + if(w_q(i) .ne. 0.0_DP) then + self_energies(iqpt, i) = self_energy(i)/2.0_DP/w_q(i) + else + self_energies(iqpt, i) = complex(0.0_DP, 0.0_DP) + endif + enddo + + enddo + !$OMP END PARALLEL DO + + + end subroutine calculate_lifetimes + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, & + qgrid, weights, fc2, fc3, & + r2_2, r3_2, r3_3, kprim, masses, smear, T, parallelize, self_energy) + + use omp_lib + use third_order_cond + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nqpt, nat, nfc2, nfc3 + integer, intent(in) :: weights(nqpt) + real(kind=DP), intent(in) :: w_q(3*nat), qpt(3), qgrid(3,nqpt) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat), kprim(3,3) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: masses(nat) + real(kind=DP), intent(in) :: smear(3*nat) + real(kind=DP), intent(in) :: T + complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) + logical, intent(in) :: is_q_gamma, parallelize + complex(kind=DP), intent(out) :: self_energy(3*nat) + + integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 + real(kind=DP), dimension(3) :: kpt, mkpt + real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq + real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq + real(kind=DP), dimension(3*nat, 3) :: freqs_array + complex(kind=DP), dimension(3*nat) :: selfnrg + complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq + complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols + logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg + logical, dimension(3) :: if_gammas + + self_energy = complex(0.0_DP, 0.0_DP) + + !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & + !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & + !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, iat, jat, kat, freqs_array, if_gammas, is_k_neg, is_mk_mq_neg, selfnrg) & + !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & + !$OMP r2_2, w_q, pols_q) & + !$OMP REDUCTION(+:self_energy) + do jqpt = 1, nqpt + is_k_neg = .False. + is_mk_mq_neg = .False. + ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3_pols(:,:,:) = complex(0.0_DP, 0.0_DP) + + kpt = qgrid(:, jqpt) + mkpt = -1.0_DP*qpt - kpt + call interpol_v2(fc3, r3_2, r3_3, kpt, mkpt, ifc3, nfc3, nat) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + + call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) + call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) + if(any(w2_k < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + is_k_neg = .True. + endif + if(any(w2_mk_mq < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + is_mk_mq_neg = .True. + endif + + if(.not. is_k_neg .and. .not. is_mk_mq_neg) then + w_k = sqrt(w2_k) + w_mk_mq = sqrt(w2_mk_mq) + + do iat = 1, nat + do i = 1, 3 + do jat = 1, nat + do j = 1, 3 + do kat = 1, nat + do k = 1, 3 + d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & + ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& + /sqrt(masses(iat)*masses(jat)*masses(kat)) + enddo + enddo + enddo + enddo + enddo + enddo + + do i = 1, 3*nat + do j = 1, 3*nat + do k = 1, 3*nat + do i1 = 1, 3*nat + do j1 = 1, 3*nat + do k1 = 1, 3*nat + d3_pols(k,j,i) = d3_pols(k,j,i) + & + d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) + enddo + enddo + enddo + enddo + enddo + enddo + + freqs_array(:, 1) = w_q + freqs_array(:, 2) = w_k + freqs_array(:, 3) = w_mk_mq + + if_gammas(1) = is_q_gamma + if_gammas(2) = is_k_gamma + if_gammas(3) = is_mk_mq_gamma + + selfnrg = complex(0.0_DP,0.0_DP) + call compute_perturb_selfnrg_single(smear,T, & + freqs_array, if_gammas, d3_pols, 3*nat, selfnrg) + self_energy = self_energy + selfnrg*dble(weights(jqpt)) + endif + enddo + !$OMP END PARALLEL DO + + end subroutine calculate_self_energy_LA + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, ne, qgrid, & + weights, fc2, fc3, & + r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, parallelize, self_energy) + + use omp_lib + use third_order_cond + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nqpt, nat, nfc2, nfc3, ne + integer, intent(in) :: weights(nqpt) + real(kind=DP), intent(in) :: w_q(3*nat), qpt(3), qgrid(3,nqpt) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat), kprim(3,3) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: masses(nat) + real(kind=DP), intent(in) :: smear(3*nat), energies(ne) + real(kind=DP), intent(in) :: T + complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) + logical, intent(in) :: is_q_gamma, parallelize + complex(kind=DP), intent(out) :: self_energy(ne, 3*nat) + + integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 + real(kind=DP), dimension(3) :: kpt, mkpt + real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq + real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq + real(kind=DP), dimension(3*nat, 3) :: freqs_array + complex(kind=DP), dimension(ne, 3*nat) :: selfnrg + complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq + complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols + logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg + logical, dimension(3) :: if_gammas + + self_energy = complex(0.0_DP, 0.0_DP) + + !$OMP PARALLEL DO IF(parallelize) & + !$OMP DEFAULT(NONE) & + !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & + !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & + !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & + !$OMP T, energies, ne, w_q, pols_q,weights, kprim) & + !$OMP REDUCTION(+:self_energy) + do jqpt = 1, nqpt + is_k_neg = .False. + is_mk_mq_neg = .False. + ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3_pols(:,:,:) = complex(0.0_DP, 0.0_DP) + + kpt = qgrid(:, jqpt) + mkpt = -1.0_DP*qpt - kpt + call interpol_v2(fc3, r3_2, r3_3, kpt, mkpt, ifc3, nfc3, nat) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + + call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) + call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) + if(any(w2_k < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + is_k_neg = .True. + endif + if(any(w2_mk_mq < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!' + is_mk_mq_neg = .True. + endif + + if(.not. is_k_neg .and. .not. is_mk_mq_neg) then + w_k = sqrt(w2_k) + w_mk_mq = sqrt(w2_mk_mq) + + do iat = 1, nat + do i = 1, 3 + do jat = 1, nat + do j = 1, 3 + do kat = 1, nat + do k = 1, 3 + d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & + ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& + /sqrt(masses(iat)*masses(jat)*masses(kat)) + enddo + enddo + enddo + enddo + enddo + enddo + + do i = 1, 3*nat + do j = 1, 3*nat + do k = 1, 3*nat + do i1 = 1, 3*nat + do j1 = 1, 3*nat + do k1 = 1, 3*nat + d3_pols(k,j,i) = d3_pols(k,j,i) + & + d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) + enddo + enddo + enddo + enddo + enddo + enddo + + freqs_array(:, 1) = w_q + freqs_array(:, 2) = w_k + freqs_array(:, 3) = w_mk_mq + + if_gammas(1) = is_q_gamma + if_gammas(2) = is_k_gamma + if_gammas(3) = is_mk_mq_gamma + + selfnrg = complex(0.0_DP,0.0_DP) + call compute_diag_dynamic_bubble_single(energies, smear, T, freqs_array, if_gammas, d3_pols, ne, 3*nat, selfnrg) + + self_energy = self_energy + selfnrg*dble(weights(jqpt)) + endif + enddo + !$OMP END PARALLEL DO + + end subroutine calculate_self_energy_P + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine check_if_gamma(nat, q, kprim, w2_q, is_gamma) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nat + real(kind=DP), dimension(3), intent(in) :: q + real(kind=DP), intent(in) :: kprim(3,3) + + real(kind=DP), dimension(3*nat), intent(inout) :: w2_q + logical, intent(out) :: is_gamma + + integer :: iat, i1, j1, k1 + real(kind=DP) :: ikprim(3,3), red_q(3) + + ikprim = inv(kprim) + is_gamma = .FALSE. + if(all(abs(q) < 1.0d-6)) then + is_gamma = .TRUE. + do iat = 1, 3 + w2_q(iat) = 0.0_DP + enddo + else + red_q(:) = 0.0_DP + do iat = 1, 3 + red_q = red_q + q(iat)*ikprim(iat, :) + enddo + do iat = 1, 3 + red_q(iat) = red_q(iat) - dble(NINT(red_q(iat))) + enddo + if(all(abs(red_q) < 1.0d-6)) then + is_gamma = .TRUE. + do iat = 1, 3 + w2_q(iat) = 0.0_DP + enddo + endif + endif + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + function inv(A) result(Ainv) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + real(kind=DP),intent(in) :: A(:,:) + real(kind=DP) :: Ainv(size(A,1),size(A,2)) + real(kind=DP) :: work(size(A,1)) ! work array for LAPACK + integer :: n,info,ipiv(size(A,1)) ! pivot indices + + ! Store A in Ainv to prevent it from being overwritten by LAPACK + Ainv = A + n = size(A,1) + ! DGETRF computes an LU factorization of a general M-by-N matrix A + ! using partial pivoting with row interchanges. + call DGETRF(n,n,Ainv,n,ipiv,info) + if (info.ne.0) stop 'Matrix is numerically singular!' + ! DGETRI computes the inverse of a matrix using the LU factorization + ! computed by DGETRF. + call DGETRI(n,Ainv,n,ipiv,work,n,info) + if (info.ne.0) stop 'Matrix inversion failed!' + end function inv + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nfc2, nat + real(kind=DP), dimension(nfc2, 3*nat, 3*nat), intent(in) :: fc2 + real(kind=DP), dimension(3, nfc2), intent(in) :: r2_2 + real(kind=DP), dimension(nat), intent(in) :: masses + real(kind=DP), dimension(3), intent(in) :: q + + real(kind=DP), dimension(3*nat), intent(out) :: w2_q + complex(kind=DP), dimension(3*nat, 3*nat), intent(out) :: pols_q + + integer :: ir, iat, jat, INFO, LWORK, i, j + complex(kind=DP), dimension(6*nat + 1) :: WORK + real(kind=DP), dimension(9*nat - 2) :: RWORK + complex(kind=DP), dimension(3*nat, 3*nat) :: pols_q1 + real(kind=DP) :: phase + + + pols_q1 = complex(0.0_DP,0.0_DP) + + do ir = 1, nfc2 + phase = dot_product(r2_2(:,ir), q)*2.0_DP*PI + pols_q1 = pols_q1 + fc2(ir,:,:)*exp(complex(0.0_DP, phase)) + enddo + + do iat = 1, nat + do i = 1, 3 + do jat = 1, nat + do j = 1, 3 + pols_q1(j + 3*(jat - 1),i + 3*(iat - 1)) = pols_q1(j + 3*(jat - 1),i + 3*(iat - 1))/sqrt(masses(iat)*masses(jat)) + enddo + enddo + enddo + enddo + + pols_q = (pols_q1 + conjg(transpose(pols_q1)))/2.0_DP + LWORK = -1 + call zheev('V', 'L', 3*nat, pols_q, 3*nat, w2_q, WORK, LWORK, RWORK, INFO) + LWORK = MIN( size(WORK), INT( WORK( 1 ) ) ) + call zheev('V', 'L', 3*nat, pols_q, 3*nat, w2_q, WORK, LWORK, RWORK, INFO) + + end subroutine + +end module get_lf diff --git a/FModules/get_scattering_q_grid.f90 b/FModules/get_scattering_q_grid.f90 new file mode 100644 index 00000000..92ac1a3a --- /dev/null +++ b/FModules/get_scattering_q_grid.f90 @@ -0,0 +1,147 @@ + + module scattering_grids + + contains + + subroutine get_scattering_q_grid(rotations, irrqgrid, qgrid, nirrqpt, nqpt, nsym, & + scattering_grid, scattering_weights) + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + + integer, intent(in) :: nirrqpt, nqpt, nsym + real(kind=DP), intent(in) :: rotations(nsym,3,3) + real(kind=DP), intent(in) :: irrqgrid(nirrqpt, 3), qgrid(nqpt, 3) + + real(kind=DP), intent(out) :: scattering_grid(nirrqpt, nqpt, 3) + integer, intent(out) :: scattering_weights(nirrqpt, nqpt) + + integer :: iqpt, jqpt, isym, jsym, isg, nsg, ilist, lenlist + integer :: sg_ind(nsym) + real(kind=DP) :: q1(3), q2(3), q3(3), q21(3), q31(3) + logical :: in_list + + scattering_grid(:,:,:) = 0.0_DP + scattering_weights(:,:) = 0 + + do iqpt = 1, nirrqpt + q1 = irrqgrid(iqpt, :) + + !sg_ind(:) = 0 + !isg = 0 + !do isym = 1, nsym + ! if(same_vector(q1, matmul(rotations(isym,:,:), q1))) then + ! isg = isg + 1 + ! sg_ind(isg) = isym + ! endif + !enddo + !nsg = isg + !print*, 'Size of the small group of ', iqpt, ' q point is ', nsg + + lenlist = 0 + do jqpt = 1, nqpt + q2 = qgrid(jqpt, :) + q3 = -1.0_DP*q1 - q2 + in_list = .False. + + do ilist = 1, lenlist + if(.not. in_list) then + q21 = scattering_grid(iqpt, ilist, :) + q31 = -1.0_DP*q1 - q21 + if(same_vector(q21, q3) .and. same_vector(q31, q2)) then + in_list = .True. + scattering_weights(iqpt, ilist) = scattering_weights(iqpt, ilist) + 1 + EXIT + ! else + ! do isym = 1, nsg + ! jsym = sg_ind(isym) + ! if(same_vector(matmul(rotations(jsym,:,:), q2), q21) .and. & + ! same_vector(matmul(rotations(jsym,:,:), q3), q31)) then + ! in_list = .True. + ! scattering_weights(iqpt, ilist) = scattering_weights(iqpt, ilist) + 1 + ! EXIT + !else if(same_vector(q2, matmul(rotations(jsym,:,:), q31)) .and. & + !same_vector(q3, matmul(rotations(jsym,:,:), q21))) then + ! in_list = .True. + ! scattering_weights(iqpt, ilist) = scattering_weights(iqpt, ilist) + 1 + ! EXIT + ! endif + ! enddo + endif + endif + enddo + + if(.not. in_list) then + lenlist = lenlist + 1 + scattering_grid(iqpt, lenlist, :) = q2 + scattering_weights(iqpt, lenlist) = scattering_weights(iqpt, lenlist) + 1 + endif + + enddo + !print*, 'Final number of scattering events: ', lenlist + enddo + + end subroutine get_scattering_q_grid + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + logical function same_vector(v1, v2) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + + real(kind=DP), intent(in) :: v1(3), v2(3) + + integer :: i, j, k + real(kind=DP) :: v3(3) + logical :: same + same = .False. + if(all(abs(v1 - v2) < 1.0d-6)) then + same = .True. + else + do i = -1, 1 + if(.not. same) then + do j = -1, 1 + if(.not. same) then + do k = -1, 1 + v3 = v2 + (/dble(i), dble(j), dble(k)/) + if(all(abs(v1 - v3) < 1.0d-6)) then + same = .True. + EXIT + endif + enddo + endif + enddo + endif + enddo + endif + same_vector = same + return + + end function + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + logical function same_vector_nopbc(v1, v2) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + + real(kind=DP), intent(in) :: v1(3), v2(3) + + integer :: i, j, k + real(kind=DP) :: v3(3) + logical :: same + + same = .False. + if(all(abs(v1 - v2) < 1.0d-6)) then + same = .True. + endif + + same_vector_nopbc = same + return + + end function + +end module diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 new file mode 100644 index 00000000..1df43120 --- /dev/null +++ b/FModules/third_order_cond.f90 @@ -0,0 +1,340 @@ +module third_order_cond + + contains + + subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) + IMPLICIT NONE + ! + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + INTEGER, intent(IN) :: nat, n_blocks + REAL(DP), intent(IN) :: R2(3,n_blocks),R3(3,n_blocks) + REAL(DP),INTENT(in) :: fc(n_blocks,3*nat,3*nat,3*nat) + REAL(DP),INTENT(in) :: q2(3), q3(3) + COMPLEX(DP),INTENT(out) :: fc_interp(3*nat, 3*nat, 3*nat) + ! + REAL(DP), parameter :: tpi=3.14159265358979323846_DP*2.0_DP + REAL(DP) :: arg + COMPLEX(DP) :: phase + INTEGER :: i_block, a,b,c + ! + fc_interp = (0._dp, 0._dp) + ! + + DO i_block = 1, n_blocks + arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) + phase = CMPLX(Cos(arg),Sin(arg), kind=DP) + ! + DO c = 1,3*nat + DO b = 1,3*nat + DO a = 1,3*nat + fc_interp(a,b,c) = fc_interp(a,b,c) + phase*fc(i_block,a,b,c) + ENDDO + ENDDO + ENDDO + ! + END DO + + end subroutine interpol_v2 + + subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod,bubble) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + complex(kind=DP), dimension(ne, n_mod),intent(OUT) :: bubble + + real(kind=DP), intent(IN) :: energies(ne) + real(kind=DP), intent(IN) :: sigma(n_mod) + real(kind=DP), intent(IN) :: T + real(kind=DP), intent(IN) :: freq(n_mod,3) + logical , intent(IN) :: is_gamma(3) + complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 + integer, intent(IN) :: n_mod, ne + + real(kind=DP) :: q2(n_mod,3),q3(n_mod,3) + complex(kind=DP) :: Lambda_23(ne) + integer :: i, rho2, rho3, nu,mu + logical, parameter :: static_limit = .false. + + q2(:,1)=freq(:,2) + q3(:,1)=freq(:,3) + + q2(:,2)=0.0_dp + q3(:,2)=0.0_dp + do i = 1, n_mod + if (.not. is_gamma(2) .or. i > 3) q2(i,2)=1.0_dp/freq(i,2) + if (.not. is_gamma(3) .or. i > 3) q3(i,2)=1.0_dp/freq(i,3) + end do + + call bose_freq(T, n_mod, freq(:,2), q2(:,3)) + call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + + + bubble=(0.0_dp,0.0_dp) + + DO rho3=1,n_mod + DO rho2=1,n_mod + ! + ! call Lambda_dynamic_single(ne,n_mod,energies,sigma,T,static_limit,q2(rho2,:),q3(rho3,:),Lambda_23) + ! + DO mu = 1,n_mod + ! + call Lambda_dynamic_single(ne,energies,sigma(mu),T,static_limit,q2(rho2,:),q3(rho3,:),Lambda_23) + ! + ! + bubble(:,mu) = bubble(:,mu) + & + CONJG(D3(mu,rho2,rho3))*Lambda_23*D3(mu,rho2,rho3) + ! + END DO + ! + END DO + END DO + ! + end subroutine compute_diag_dynamic_bubble_single + + subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod,selfnrg) + + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + complex(kind=DP), dimension(n_mod),intent(OUT) :: selfnrg + + real(kind=DP), intent(IN) :: sigma(n_mod) + real(kind=DP), intent(IN) :: T + real(kind=DP), intent(IN) :: freq(n_mod,3) + logical , intent(IN) :: is_gamma(3) + complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 + integer, intent(IN) :: n_mod + + real(kind=DP) :: q2(n_mod,3),q3(n_mod,3) + complex(kind=DP) :: Lambda_23_freq + integer :: i, rho2, rho3, nu,mu + + q2(:,1)=freq(:,2) + q3(:,1)=freq(:,3) + + q2(:,2)=0.0_dp + q3(:,2)=0.0_dp + do i = 1, n_mod + if (.not. is_gamma(2) .or. i > 3) q2(i,2)=1.0_dp/freq(i,2) + if (.not. is_gamma(3) .or. i > 3) q3(i,2)=1.0_dp/freq(i,3) + end do + + call bose_freq(T, n_mod, freq(:,2), q2(:,3)) + call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + + + selfnrg=(0.0_dp,0.0_dp) + + DO mu = 1,n_mod + DO rho3=1,n_mod + DO rho2=1,n_mod + !if(abs(freq(mu, 1)**2 - (q2(rho2,1) + q3(rho3,1)**2)) < (3.0_DP*sigma(mu))**2 .or. & + ! abs(freq(mu, 1)**2 - (q2(rho2,1) - q3(rho3,1)**2)) < (3.0_DP*sigma(mu))**2) then + + call Lambda_dynamic_value_single(n_mod,freq(mu,1),sigma(mu),T,q2(rho2,:),q3(rho3,:),Lambda_23_freq) + ! + + selfnrg(mu) = selfnrg(mu) + CONJG(D3(mu,rho2,rho3))*Lambda_23_freq*D3(mu,rho2,rho3) + ! + !endif + END DO + END DO + END DO + ! + end subroutine compute_perturb_selfnrg_single + + subroutine compute_spectralf_diag_single(sigma,ener,d2_freq,selfnrg,nat,ne,spectralf) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + real(kind=dp),parameter :: pi = 3.141592653589793_dp + ! + real(kind=dp), intent(in) :: ener(ne) + real(kind=dp), intent(in) :: sigma(3*nat) + integer, intent(in) :: ne,nat + real(kind=dp), intent(in) :: d2_freq(3*nat) + complex(kind=dp), intent(in) :: selfnrg(ne,3*nat) + ! + real(kind=dp), intent(out) :: spectralf(ne,3*nat) + ! + integer :: nat3,mu,ie + real(kind=dp) :: a,b,denom,num + ! + nat3=3*nat + spectralf=0.0_dp + ! + DO mu = 1,nat3 + DO ie = 1, ne + + a = ener(ie)**2-sigma(mu)**2-d2_freq(mu)**2-DBLE(selfnrg(ie,mu)) + b = 2*sigma(mu)*ener(ie)-DIMAG(selfnrg(ie,mu)) + + num = ener(ie)*b + denom = (a**2+b**2)*pi + ! + IF(ABS(denom)/=0._dp)THEN + spectralf(ie,mu) = num / denom + ELSE + spectralf(ie,mu) = 0._dp + ENDIF + ENDDO + ENDDO + ! + end subroutine compute_spectralf_diag_single + + subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,Lambda_out) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + complex(kind=DP), intent(out) :: Lambda_out(ne) + integer, intent(in) :: ne + logical, intent(in) :: static_limit + real(kind=DP), intent(in) :: energies(ne), sigma + real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) + real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 + real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& + omega_M,omega_M2 + complex(kind=DP) :: reg, ctm_P, ctm_M, ctm(ne) + integer :: ie + ! + w2=w_q2(1) + w3=w_q3(1) + w2m1=w_q2(2) + w3m1=w_q3(2) + n2=w_q2(3) + n3=w_q3(3) + ! + bose_P = 1 + n2 + n3 + omega_P = w3+w2 + omega_P2 = (omega_P)**2 + ! + bose_M = n3-n2 + omega_M = w3-w2 + omega_M2 = (omega_M)**2 + ! + IF(static_limit) THEN ! sigma and energy do not count + ! + IF(ABS(omega_P)>0._dp)THEN + ctm_P = bose_P /omega_P + ELSE + ctm_P = 0._dp + ENDIF + ! + IF(ABS(omega_M)>1.e-5_dp)THEN + ctm_M = bose_M /omega_M + ELSE + IF(T>0._dp.and.ABS(omega_P)>0._dp)THEN + ctm_M = df_bose(0.5_dp * omega_P, T) + ELSE + ctm_M = 0._dp + ENDIF + ENDIF + ! + ctm = ctm_P - ctm_M + ELSE + DO ie = 1,ne + reg = CMPLX(energies(ie), sigma, kind=DP)**2 + ctm_P = bose_P *omega_P/(omega_P2-reg) + ctm_M = bose_M *omega_M/(omega_M2-reg) + ctm(ie) = ctm_P - ctm_M + END DO + END IF + ! + lambda_out=-ctm * w2m1*w3m1/4.0_dp + ! + end subroutine Lambda_dynamic_single + + subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,Lambda_out) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + complex(kind=DP), intent(out) :: Lambda_out + integer, intent(in) :: n_mod + real(kind=DP), intent(in) :: sigma, value + real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) + real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 + real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& + omega_M,omega_M2 + complex(kind=DP) :: reg, ctm_P, ctm_M, ctm + integer :: ie, isigma,mu + ! + w2=w_q2(1) + w3=w_q3(1) + w2m1=w_q2(2) + w3m1=w_q3(2) + n2=w_q2(3) + n3=w_q3(3) + ! + bose_P = 1 + n2 + n3 + omega_P = w3+w2 + omega_P2 = (omega_P)**2 + ! + bose_M = n3-n2 + omega_M = w3-w2 + omega_M2 = (omega_M)**2 + ! + reg = CMPLX(value, sigma, kind=DP)**2 + ctm_P = bose_P *omega_P/(omega_P2-reg) + ctm_M = bose_M *omega_M/(omega_M2-reg) + ctm = ctm_P - ctm_M + ! + lambda_out=-ctm * w2m1*w3m1/4.0_dp + ! + end subroutine Lambda_dynamic_value_single +! +! ======================== accessory routines ======================================== +! + SUBROUTINE bose_freq(T, n_mod, freq, bose) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + ! + REAL(DP),INTENT(out) :: bose(n_mod) + ! + REAL(DP),INTENT(in) :: T + INTEGER,INTENT(in) :: n_mod + REAL(DP),INTENT(in) :: freq(n_mod) + ! + IF(T==0._dp)THEN + bose = 0._dp + RETURN + ENDIF + ! + WHERE (freq > 0._dp) + bose = f_bose(freq, T) + ELSEWHERE + bose = 0._dp + ENDWHERE + ! + END SUBROUTINE bose_freq +! + ELEMENTAL FUNCTION f_bose(freq,T) ! bose (freq,T) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + ! + REAL(DP) :: f_bose + ! + REAL(DP),INTENT(in) :: freq,T + ! + REAL(DP), parameter :: K_BOLTZMANN_RY= 1.3806504E-23_DP /(4.35974394E-18_DP/2) !K_BOLTZMANN_SI / (HARTREE_SI/2) + REAL(DP) :: Tm1 + ! + Tm1 = 1/(T*K_BOLTZMANN_RY) + f_bose = 1 / (EXP(freq*Tm1) - 1) + ! + END FUNCTION f_bose +! + FUNCTION df_bose(freq,T) ! d bose(freq,T)/d freq + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + REAL(DP), parameter :: K_BOLTZMANN_RY= 1.3806504E-23_DP /(4.35974394E-18_DP/2) !K_BOLTZMANN_SI / (HARTREE_SI/2) + ! + REAL(DP) :: df_bose + ! + REAL(DP),INTENT(in) :: freq,T + ! + REAL(KIND=DP) :: expf,Tm1 + ! + Tm1 = 1/(T*K_BOLTZMANN_RY) + expf = EXP(freq*Tm1) + df_bose = -Tm1 * expf / (expf-1)**2 + ! + END FUNCTION df_bose + +end module diff --git a/cellconstructor/SSCHA_phonopy_parser.py b/cellconstructor/SSCHA_phonopy_parser.py new file mode 100644 index 00000000..c7d88a30 --- /dev/null +++ b/cellconstructor/SSCHA_phonopy_parser.py @@ -0,0 +1,268 @@ +import numpy as np +import phonopy + +import cellconstructor as CC + +import cellconstructor.Structure as Structure +import cellconstructor.ForceTensor +import cellconstructor.Phonons as Phonons +import cellconstructor.Methods as Methods +import cellconstructor.symmetries as symmetries +import cellconstructor.Spectral +from cellconstructor.Units import * +from phono3py.phonon3.fc3 import set_permutation_symmetry_compact_fc3, set_permutation_symmetry_fc3, set_translational_invariance_compact_fc3, set_translational_invariance_fc3, cutoff_fc3_by_zero, distribute_fc3 +from phono3py.phonon3.dataset import get_displacements_and_forces_fc3 +from phonopy.harmonic.force_constants import compact_fc_to_full_fc + +EV_TO_J = 1.602176634e-19 +AU = 1.66053906660e-27 + +# Check if two vectors are same if we account for periodic boundary conditions +def same_vectors(vec1, vec2, cell): + rvec1 = np.dot(vec1, cell) + rvec2 = np.dot(vec2, cell) + if(np.linalg.norm(rvec1 - rvec2) < 1.0-6): + return True + else: + same = False + for ix in range(-1,2): + if(not same): + for iy in range(-1,2): + if(not same): + for iz in range(-1,2): + rvec3 = rvec2 + np.array([ix,iy,iz]) + if(np.linalg.norm(rvec1 - rvec3) < 1.0-6): + same = True + break + return same + +# Rewrite phonopy force constants to a format identical to CC.ForceTensor one +# Better use sscha_phonons_from_phonopy ! +def phonopy_fc2_to_tensor2(fc2, phonon): + s2u = phonon.supercell.s2u_map.copy() + u2s = phonon.supercell.u2s_map.copy() + nat_uc = len(u2s) + nat = len(s2u) + if(nat%nat_uc == 0): + nuc = np.int(np.round(float(nat)/float(nat_uc))) + else: + print('Number of unit cell could not be determined from the number of atoms!', nat, nat_uc) + if(len(fc2) == nat_uc): + indices = np.arange(nat_uc) + elif(len(fc2) == nat): + indices = u2s.copy() + else: + raise RuntimeError('Unexpected number of pairs in second order force constants! ', len(fc2)) + ind_s = np.zeros_like(s2u) + for iat in range(nat): + for jat in range(nat_uc): + if(s2u[iat] == u2s[jat]): + ind_s[iat] = jat + vecs = phonon.supercell.scaled_positions - phonon.supercell.scaled_positions[0] + for iat in range(nat): + for ix in range(3): + if(vecs[iat][ix] < -1.0e-3): + vecs[iat][ix] += 1.0 + elif(vecs[iat][ix] > 0.999): + vecs[iat][ix] -= 1.0 + + vecs = np.round(vecs, 5) + rvec = vecs[0:nuc] +# rvec = np.dot(rvec, phonon.supercell.cell) +# vecs = np.dot(vecs, phonon.supercell.cell) + invcell = np.linalg.inv(phonon.primitive.cell) + ind_u = np.zeros_like(s2u) + for iat in range(nat): + found = False + lvec = vecs[iat] - vecs[s2u[iat]] + for ix in range(3): + if(lvec[ix] < -1.0e-3): + lvec[ix] += 1.0 + elif(lvec[ix] > 0.999): + lvec[ix] -= 1.0 + for iuc in range(nuc): + if(np.linalg.norm(lvec - rvec[iuc]) < 1.0e-4): + ind_u[iat] = iuc + found = True + break + if(not found): + print('Could not find the unit cell of atom: ', iat) + print(lvec) + print(ind_u) + sscha_fc2 = np.zeros((nuc, 3*nat_uc, 3*nat_uc)) + print(ind_s) + print(indices) + for iat in range(nat_uc): + for jat in range(nat): + iuc = ind_u[jat] + sscha_fc2[iuc, 3*iat:3*(iat+1), 3*ind_s[jat]:3*(ind_s[jat] + 1)] = fc2[indices[iat]][jat] + rvec = np.dot(rvec, phonon.supercell.cell) + + return sscha_fc2, rvec + +# Generate CC.Structure from PhonopyAtoms +def get_sscha_structure_from_phonopy(phatoms): + + sscha_structure = Structure.Structure(nat = len(phatoms.positions)) + sscha_structure.coords = phatoms.positions + sscha_structure.N_atoms = len(phatoms.positions) + sscha_structure.atoms = phatoms.symbols + sscha_structure.unit_cell = phatoms.cell + sscha_structure.has_unit_cell = True + for iat in range(sscha_structure.N_atoms): + sscha_structure.masses[sscha_structure.atoms[iat]] = phatoms.masses[iat]/MASS_RY_TO_UMA + + return sscha_structure + +# Get Cellconstructor.Phonons from Phonopy object +def sscha_phonons_from_phonopy(phonon): + + sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure + sscha_supercell = get_sscha_structure_from_phonopy(phonon.supercell) + + nat_uc = sscha_structure.N_atoms + nat_sc = sscha_supercell.N_atoms + + q_grid = symmetries.GetQGrid(sscha_structure.unit_cell, np.diag(phonon.supercell_matrix)) + gamma_index = np.argmin(np.sum(np.array(q_grid)**2, axis = 1)) + q_grid[gamma_index] = q_grid[0].copy() + q_grid[0] = np.zeros(3, dtype = np.double) + dyn = Phonons.Phonons(sscha_structure, len(q_grid)) + dyn.q_tot = q_grid + + if(len(phonon.force_constants) == nat_sc): + fc2 = phonon.force_constants.copy()/RY_TO_EV*BOHR_TO_ANGSTROM**2 + elif(len(phonon.force_constants) == nat_uc): + fc2 = compact_fc_to_full_fc(phonon, phonon.force_constants) + fc2 *= BOHR_TO_ANGSTROM**2/RY_TO_EV + else: + raise RuntimeError('Number of force constants does not match expected phonopy formats! ') + + sscha_fc2 = np.zeros( (3*nat_sc, 3*nat_sc), dtype = np.double) + for iat in range(nat_sc): + for jat in range(nat_sc): + sscha_fc2[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = fc2[iat, jat] + + dynq = Phonons.GetDynQFromFCSupercell(sscha_fc2, np.array(dyn.q_tot), sscha_structure, sscha_supercell) + dyn.dynmats = dynq + dyn.AdjustQStar() + + return dyn + + +# Get ForceTensor.Tensor3 from Phono3py object +def phonopy_fc3_to_tensor3(tc): + + unitcell = get_sscha_structure_from_phonopy(tc.primitive) + supercell = get_sscha_structure_from_phonopy(tc.supercell) + uc_nat = unitcell.N_atoms + sc_nat = supercell.N_atoms + if(uc_nat in tc.fc3.shape[0:3]): + tc.generate_displacements() + supercells = tc.supercells_with_displacements + tc.fc3 = force_constants_3rd_order + fcart_dummy = [] + for isup in range(len(supercells)): + fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) + tc.forces = fcart_dummy + disps, _ = get_displacements_and_forces_fc3(tc.dataset) + first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) + s2p_map = tc.primitive.s2p_map + p2s_map = tc.primitive.p2s_map + p2p_map = tc.primitive.p2p_map + s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") + for i in first_disp_atoms: + assert i in p2s_map + target_atoms = [i for i in p2s_map if i not in first_disp_atoms] + rotations = tc.symmetry.symmetry_operations["rotations"] + permutations = tc.symmetry.atomic_permutations + distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) + + tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell, np.diag(tc.supercell_matrix)) + + aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) + for iat in range(sc_nat): + for jat in range(sc_nat): + for kat in range(sc_nat): + for i in range(3): + for j in range(3): + for k in range(3): + aux_tensor[iat*3+i, jat*3+j, kat*3+k] = tc.fc3[iat,jat,kat,i,j,k] + + aux_tensor *= BOHR_TO_ANGSTROM**3/RY_TO_EV + tensor3.SetupFromTensor(aux_tensor) + + return tensor3 + +def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): + + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc != np.shape(red_vecs_SSCHA)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order = np.zeros(np.shape(red_vecs_SSCHA)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,3,3)) + for iuc in range(nuc): + for iat in range(nat): + for jat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**2 + +def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): + + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA_1 = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_SSCHA_2 = np.round(SSCHA_tensor.x_r_vector3.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc**2 != np.shape(red_vecs_SSCHA_1)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order_1 = np.zeros(np.shape(red_vecs_SSCHA_1)[1], dtype = int) + unit_cell_order_2 = np.zeros(np.shape(red_vecs_SSCHA_2)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA_1)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_1[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_1[iuc] = iat + for iuc in range(np.shape(red_vecs_SSCHA_2)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_2[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_2[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,nuc*nat,3,3,3)) + for iuc in range(nuc**2): + for iat in range(nat): + for jat in range(nat): + for kat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order_1[iuc]][kat*nuc + unit_cell_order_2[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1), 3*kat:3*(kat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**3 diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py new file mode 100644 index 00000000..4c4cae00 --- /dev/null +++ b/cellconstructor/ThermalConductivity.py @@ -0,0 +1,2287 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +from __future__ import print_function +from __future__ import division + +import numpy as np +import os, sys +import scipy, scipy.optimize + +# Import the Fortran Code +import symph +import thirdorder +import itertools +import thermal_conductivity + +import cellconstructor as CC +import cellconstructor.Phonons as Phonons +import cellconstructor.Methods as Methods +import cellconstructor.symmetries as symmetries +import cellconstructor.Spectral +from cellconstructor.Units import A_TO_BOHR, BOHR_TO_ANGSTROM, RY_TO_CM, ELECTRON_MASS_UMA, MASS_RY_TO_UMA, HBAR, K_B, RY_TO_EV +import spglib +from scipy import stats +import warnings + +import time + + +try: + from mpi4py import MPI + __MPI__ = True +except: + __MPI__ = False + +try: + import spglib + __SPGLIB__ = True +except: + __SPGLIB__ = False + +__EPSILON__ = 1e-5 +__EPSILON_W__ = 3e-9 +HBAR_JS = 1.054571817e-34 +HPLANCK = HBAR_JS*2.0*np.pi +RY_TO_J = 2.1798741e-18 +HBAR_RY = HBAR_JS/RY_TO_J +AU = 1.66053906660e-27 +EV_TO_J = 1.602176634e-19 +RY_TO_THZ = RY_TO_CM/0.0299792458 +SSCHA_TO_THZ = np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM/100.0/2.0/np.pi +SSCHA_TO_MS = np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM +KB = 1.380649e-23 +STR_FMT = '<15' + +# Abundance of isotopes in nature taken from https://www.chem.ualberta.ca/~massspec/atomic_mass_abund.pdf +natural_isotopes = {\ + 'H' :[[0.9999, 1.0078], [0.0001, 2.0141]],\ + 'He':[[1.0000, 4.0026]],\ + 'Li':[[0.0759, 6.0151], [0.9241, 7.0160]],\ + 'Be':[[1.0000, 9.0122]],\ + 'B' :[[0.1990, 10.0129], [0.8010, 11.0093]],\ + 'C' :[[0.9893, 12.0000], [0.0107, 13.0033]],\ + 'N' :[[0.9963, 14.0030], [0.0037, 15.0001]],\ + 'O' :[[0.9976, 15.9949], [0.0003, 16.9991], [0.0021, 17.9991]],\ + 'F' :[[1.0000, 18.9984]],\ + 'Ne':[[0.9048, 19.9924], [0.0027, 20.9938], [0.0925, 21.9913]],\ + 'Na':[[1.0000, 22.9898]],\ + 'Mg':[[0.7899, 23.9850], [0.1000, 24.9858], [0.1101, 25.9825]],\ + 'Al':[[1.0000, 26.9815]],\ + 'Si':[[0.9223, 27.9769], [0.0468, 28.9764], [0.0309, 29.9737]],\ + 'P' :[[1.0000, 30.9737]],\ + 'S' :[[0.9493, 31.9720], [0.0076, 32.9714], [0.0429, 33.9679], [0.0002, 35.9671]],\ + 'Cl':[[0.7578, 34.9688], [0.2422, 36.9659]],\ + 'Ar':[[0.0034, 35.9675], [0.0006, 37.9627], [0.9960, 39.9624]],\ + 'K' :[[0.9326, 38.9637], [0.0001, 39.9640], [0.0672, 40.9618]],\ + 'Ca':[[0.9694, 39.9626], [0.0065, 41.9586], [0.0209, 43.9555], [0.0001, 42.9588], [0.0001, 47.9525]],\ + 'Sc':[[1.0000, 44.9559]],\ + 'Ti':[[0.0825, 45.9526], [0.0744, 46.9518], [0.7372, 47.9479], [0.0541, 48.9479], [0.0518, 49.9448]],\ + 'Va':[[0.0025, 49.9472], [0.9975, 50.9440]],\ + 'Cr':[[0.0435, 49.9460], [0.8379, 51.9405], [0.0950, 52.9406], [0.0236, 53.9389]],\ + 'Mn':[[1.0000, 54.9380]],\ + 'Fe':[[0.0585, 53.9396], [0.9175, 55.9349], [0.0212, 56.9354], [0.0028, 57.9332]],\ + 'Co':[[1.0000, 58.9332]],\ + 'Ni':[[0.6808, 57.9353], [0.2622, 59.9308], [0.0114, 60.9311], [0.0363, 61.9283], [0.0093, 63.9279]],\ + 'Cu':[[0.6917, 62.9296], [0.3083, 64.9278]],\ + 'Zn':[[0.4863, 63.9291], [0.2790, 65.9260], [0.0410, 66.9271], [0.1875, 67.9248], [0.0062, 69.9253]],\ + 'Ga':[[0.6011, 68.9256], [0.3989, 70.9247]],\ + 'Ge':[[0.2084, 69.9242], [0.2754, 71.9220], [0.0773, 72.9234], [0.3628, 73.9211], [0.0761, 75.9214]],\ + 'As':[[1.0000, 74.9216]],\ + 'Se':[[0.0089, 73.9224], [0.0937, 75.9192], [0.0763, 76.9199], [0.2377, 77.9173], [0.4961, 79.9165], [0.0873, 81.9167]],\ + 'Br':[[0.5069, 78.9183], [0.4931, 80.9163]],\ + 'Kr':[[0.0035, 77.9204], [0.0228, 79.9164], [0.1158, 81.9135], [0.1149, 82.9141], [0.5700, 83.9115], [0.1730, 85.9106]],\ + 'Rb':[[0.7217, 84.9118], [0.2783, 86.9092]],\ + 'Sr':[[0.0056, 83.9134], [0.0986, 85.9093], [0.0700, 86.9089], [0.8258, 87.9056]],\ + 'Y' :[[1.0000, 88.9058]],\ + 'Zr':[[0.5145, 89.9047], [0.1122, 90.9056], [0.1715, 91.9050], [0.1738, 93.9063], [0.0280, 95.9083]],\ + 'Nb':[[1.0000, 92.9064]],\ + 'Mo':[[0.1484, 91.9068], [0.0925, 93.9050], [0.1592, 94.9058], [0.1668, 95.9046], [0.0955, 96.9060], [0.2413, 97.9054], [0.0963, 99.9075]],\ + 'Tc':[[1.0000, 97.9072]],\ + 'Ru':[[0.0554, 95.9076], [0.0187, 97.9053], [0.1276, 98.9059], [0.1260, 99.9042], [0.1706, 100.9056], [0.3155, 101.9043], [0.1862, 103.9054]],\ + 'Rh':[[1.0000, 102.9055]],\ + 'Pd':[[0.0102, 101.9056], [0.1114, 103.9040], [0.2233, 104.9051], [0.2733, 105.9035], [0.2646, 107.9040], [0.1172, 109.9052]],\ + 'Ag':[[0.5184, 106.9051], [0.4816, 108.9048]],\ + 'Cd':[[0.0125, 105.9066], [0.0089, 107.9042], [0.1249, 109.9030], [0.1280, 110.9042], [0.2413, 111.9028], [0.1222, 112.9044], [0.2873, 113.9033], [0.0749, 115.9048]],\ + 'In':[[0.0429, 112.9041], [0.9571, 114.9039]],\ + 'Sn':[[0.0097, 111.9048], [0.0066, 113.9028], [0.0034, 114.9033], [0.1454, 115.9017], [0.0768, 116.9029], [0.2422, 117.9016], [0.0859, 118.9033], [0.3258, 119.9022], [0.0463, 121.9034], [0.0579, 123.9053]],\ + 'Sb':[[0.5721, 120.9038], [0.4279, 122.9042]],\ + 'Te':[[0.0009, 119.9040], [0.0255, 121.9030], [0.0089, 122.9042], [0.0474, 123.9028], [0.0707, 124.9044], [0.1884, 125.9033], [0.3174, 127.9045], [0.3408, 129.9062]],\ + 'I' :[[1.0000, 126.9045]],} +# This should be continued! + +def get_spglib_cell(dyn): + + """ + + Get spglib cell from Cellconstructor.Phonons() + + """ + + pos = np.dot(dyn.structure.coords, np.linalg.inv(dyn.structure.unit_cell)) + numbers = [0 for x in range(len(pos))] + symbols_unique = np.unique(dyn.structure.atoms) + for iat in range(len(dyn.structure.atoms)): + for jat in range(len(symbols_unique)): + if(dyn.structure.atoms[iat] == symbols_unique[jat]): + numbers[iat] == jat + return (dyn.structure.unit_cell, pos, numbers) + + ######################################################################################################################################## + +def check_if_rotation(rot, thr): + + """ + + Check if rot matrix is rotation + + """ + + if(np.abs(np.linalg.det(rot)) - 1.0 > thr): + print('Magnitude of the determinant of the rotation matrix larger than 1.0! Should not happen!') + print(np.abs(np.linalg.det(rot))) + try: + if(np.any(np.linalg.inv(rot) - rot.T > 1.0e-4)): + print('Transpose and inverse of rotation matrix are not the same! Should not happen!') + print(np.linalg.inv(rot)) + print(rot.T) + except: + print('Something wrong when trying to calculate inverse of rotation matrix. Possibly singular!') + print(rot) + raise RuntimeError('Exit!') + + ####################################################################################################################################### + +def gaussian(x, x0, sigma): + + """ + + Definition of gaussian function + + x0 - location + sigma - square root of variance + + """ + + return np.exp(-0.5*(x-x0)**2/sigma**2)/np.sqrt(2.0*np.pi)/sigma + + #################################################################################################################################### + +def heat_capacity(freqs, temperature, hbar1, kb1): + + """ + + Calculate mode heat capacity + + freqs - frequency of the phonon mode + temperature - temperature at which to calculate heat capacity + hbar1 - reduced Planck's constant in appropriate units + kb1 - Boltzmann constant in appropriate units + + """ + + if(freqs > 0.0): + x1 = np.exp(hbar1*freqs/kb1/temperature) + return (hbar1*freqs)**2*x1/kb1/temperature**2/(x1-1.0)**2 + else: + return 0.0 + + ##################################################################################################################################### + +def same_vector(vec1, vec2, cell): + + """ + + Check if two vectors are the same. PBC rules apply + + vec1, vec2 - two vectors to compare + cell - lattice vectors for which PBC must hold + + """ + + + invcell = np.linalg.inv(cell) + rvec1 = np.dot(vec1, invcell) + rvec2 = np.dot(vec2, invcell) + res = False + + if(np.linalg.norm(rvec1 - rvec2) < 1.0e-4): + res = True + + if(not res): + for i in range(-1, 2): + if(not res): + for j in range(-1, 2): + if(not res): + for k in range(-1, 2): + rvec21 = rvec2 + np.array([float(i), float(j), float(k)]) + if(np.linalg.norm(rvec1 - rvec21) < 1.0e-4): + res = True + break + return res + + ###################################################################################################################################### + + def check_degeneracy(x, tol): + + """ + + Simple check if there are degenerate phonon modes for a given k - point. + + x - frequencies at the given k - point + tol - tolerance to be satisfied + + """ + + x1 = x.copy() + x1 = x1.tolist() + degs = [] + for i in range(len(x1)): + if(not any(i in sl for sl in degs)): + curr_degs = [] + curr_degs.append(i) + for j in range(i+1, len(x1)): + if(np.abs(x1[i]-x1[j]) < tol): + curr_degs.append(j) + degs.append(curr_degs) + return degs + +class ThermalConductivity: + + def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearing_type = 'adaptive', off_diag = False): + + """ + + This class contains necesary routines to calculate lattice thermal conductivity using SSCHA auxiliary 2nd and 3rd order force constants. + + Parameters: + + Necesary: + + dyn: SSCHA dynamical matrix object + tensor3: SSCHA 3rd order force constants + + kpoint_grid: Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and + the calculation of the phonon lifetimes. Default is 10. + smearing_scale: Scale for the smearing constant if adaptive smearing is used. Default value is 2.0 + smearing_type: Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). + off_diag: Boolean parameter for the calculation of the off-diagonal elements of group velocity. + + """ + + self.dyn = dyn + self.fc3 = tensor3 + if(isinstance(kpoint_grid, int)): + self.kpoint_grid = np.array([kpoint_grid for x in range(3)]) + else: + self.kpoint_grid = np.array(kpoint_grid).astype(int) + self.smearing_scale = smearing_scale + self.unitcell = self.dyn.structure.unit_cell + print('Primitive cell: ') + print(self.unitcell) + self.supercell = self.dyn.structure.generate_supercell(dyn.GetSupercell()).unit_cell + print('Supercell: ') + print(self.supercell) + self.smearing_type = smearing_type + self.off_diag = off_diag + self.volume = self.dyn.structure.get_volume() + + self.reciprocal_lattice = np.linalg.inv(self.unitcell).T + self.force_constants = [] + self.ruc = [] + self.set_force_constants(dyn) # uncentered force constants ! + self.nuc = len(self.ruc) + + self.symmetry = symmetries.QE_Symmetry(self.dyn.structure) + + self.set_kpoints_alternative() + self.nband = 3*self.dyn.structure.N_atoms + self.delta_omega = 0.0 + + self.freqs = np.zeros((self.nkpt, self.nband)) + self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) + if(self.off_diag): + self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) + else: + self.gvels = np.zeros((self.nkpt, self.nband, 3)) + self.sigmas = np.zeros_like(self.freqs) + # Lifetimes, frequency shifts, lineshapes, heat_capacities and thermal conductivities are stored in dictionaries + # Dictionary key is the temperature at which property is calculated on + self.lifetimes = {} + self.freqs_shifts = {} + self.lineshapes = {} + self.cp = {} + self.kappa = {} + self.got_scattering_rates_isotopes = False + + ################################################################################################################################## + + def set_kpoints(self): + + """ + Sets up the k point grid. Finds irreducible points and their map to the full Brillouin zone. + + """ + + time0 = time.time() + time_init = time.time() + self.k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.kpoint_grid) + self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) + print('Generated grid in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.irr_k_points = self.symmetry.SelectIrreducibleQ(self.k_points) + print('Generated irreducible grid in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.qstar = [] + for iqpt in range(len(self.irr_k_points)): + self.qstar.append(self.symmetry.GetQStar(self.irr_k_points[iqpt])) + print('Generated q stars in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.qstar_list = [] + for iqstar in range(len(self.qstar)): + curr_qstar_list = [] + for iqpt in range(len(self.qstar[iqstar])): + found = False + for jqpt in range(len(self.k_points)): + if(same_vector(np.array(self.qstar[iqstar][iqpt]), np.array(self.k_points[jqpt]), self.reciprocal_lattice)): + found = True + curr_qstar_list.append(jqpt) + break + if(not found): + print('Could not find this q point in self.k_points!') + self.qstar_list.append(curr_qstar_list) + print('Generated g star list in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + #print(self.qstar_list) + + self.nkpt = np.shape(self.k_points)[0] + self.nirrkpt = np.shape(self.irr_k_points)[0] + self.weights = np.zeros(self.nirrkpt, dtype = int) + for iqpt in range(self.nirrkpt): + self.weights[iqpt] = len(self.qstar_list[iqpt]) + print('Found ' + str(self.nkpt) + ' q points in the grid!') + print('Found ' + str(self.nirrkpt) + ' q points in irreducible grid!') + print('Setting up q points took ' + format(time.time() - time_init, '.2e') + ' seconds!') + + ################################################################################################################################## + + def set_kpoints_alternative(self): + + """ + Faster version of setting up of k points. Still too slow. Should try fortran version. + + """ + + time0 = time.time() + time_init = time.time() + + aux_kgrid = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.kpoint_grid) + print('Generated grid in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.irr_k_points = self.symmetry.SelectIrreducibleQ(aux_kgrid) #self.symmetry.SetupQStar(self.k_points) + print('Generated irreducible grid in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.qstar = [] + for iqpt in range(len(self.irr_k_points)): + self.qstar.append(self.symmetry.GetQStar(self.irr_k_points[iqpt])) + print('Generated q star in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + k_points = [] + self.qstar_list = [] + qpt_index = 0 + for iqpt in range(len(self.qstar)): + curr_qstar_list = [] + for jqpt in range(len(self.qstar[iqpt])): + curr_qstar_list.append(qpt_index) + qpt_index += 1 + k_points.append(self.qstar[iqpt][jqpt]) + self.qstar_list.append(curr_qstar_list) + print('Generated q star list in ' + format(time.time() - time0, '.2e') + ' seconds.') + time0 = time.time() + self.k_points = np.array(k_points) + self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) + self.nkpt = np.shape(self.k_points)[0] + self.nirrkpt = np.shape(self.irr_k_points)[0] + self.weights = np.zeros(self.nirrkpt, dtype = int) + for iqpt in range(self.nirrkpt): + self.weights[iqpt] = len(self.qstar_list[iqpt]) + self.set_up_scattering_grids = False + print('Found ' + str(self.nkpt) + ' q points in the grid!') + print('Found ' + str(self.nirrkpt) + ' q points in irreducible grid!') + print('Setting up q points took ' + format(time.time() - time_init, '.2e') + ' seconds!') + + ################################################################################################################################### + + def set_scattering_grids(self): + + """ + + Setup scattering grids for each k - point. Only permutation symmetry is found to be stable. Python version - very slow. + + """ + + start_time = time.time() + cell = get_spglib_cell(self.dyn) + tot_r = spglib.get_symmetry_dataset(cell)['rotations'] + nsym = len(tot_r) + + scatt_grids = [] + weights = [] + for iqpt in range(self.nirrkpt): + curr_grid = [] + curr_w = [] + rot_q = [] + q1 = self.qpoints[self.qstar_list[iqpt][0]] + for isym in range(nsym): + if(same_vector(q1, np.dot(tot_r[isym], q1), np.eye(3))): + rot_q.append(tot_r[isym]) + curr_nsym = len(rot_q) + print('Small group of ' + str(iqpt) + '. q point is ' + str(curr_nsym) + ' size!') + for jqpt in range(self.nkpt): + q2 = self.qpoints[jqpt] + q3 = -1.0*q1 - q2 + pair_found = False + for i in range(len(curr_grid)): + if(not pair_found): + #if(same_vector(q3, curr_grid[i][0], self.reciprocal_lattice) and same_vector(q2, curr_grid[i][1], self.reciprocal_lattice)): + if(same_vector(q3, curr_grid[i][0], np.eye(3)) and same_vector(q2, curr_grid[i][1], np.eye(3))): + pair_found = True + curr_w[i] += 1 + break + else: + for isym in range(curr_nsym): + #if(same_vector(q3, np.dot(rot_q[isym], curr_grid[i][0]), self.reciprocal_lattice) and\ + # same_vector(q2, np.dot(rot_q[isym], curr_grid[i][1]), self.reciprocal_lattice)): + if(same_vector(q3, np.dot(rot_q[isym], curr_grid[i][0]), np.eye(3)) and\ + same_vector(q2, np.dot(rot_q[isym], curr_grid[i][1]), np.eye(3))): + pair_found = True + curr_w[i] += 1 + break + elif(same_vector(q3, np.dot(rot_q[isym], curr_grid[i][1]), np.eye(3)) and\ + same_vector(q2, np.dot(rot_q[isym], curr_grid[i][0]), np.eye(3))): + pair_found = True + curr_w[i] += 1 + break + if(not pair_found): + curr_grid.append([q2, q3]) + curr_w.append(1) + scatt_grids.append(curr_grid) + weights.append(curr_w) + self.scattering_grids = [] + self.scattering_weights = [] + for iqpt in range(self.nirrkpt): + if(sum(weights[iqpt]) != self.nkpt): + print('WARNING! Sum of weights for ' + str(iqpt) + '. q point does not match total number of q points!') + print(sum(weights[iqpt]), self.nkpt) + curr_grid = np.array(scatt_grids[iqpt]) + self.scattering_grids.append(np.dot(curr_grid[:,0,:], self.reciprocal_lattice)) + self.scattering_weights.append(weights[iqpt]) + print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') + self.set_up_scattering_grids = True + print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') + + ################################################################################################################################### + + def set_scattering_grids_fortran(self): + + """ + + Setup scattering grids by calling fortran routine. Much faster. + + """ + + start_time = time.time() + cell = get_spglib_cell(self.dyn) + tot_r = spglib.get_symmetry_dataset(cell)['rotations'] + tot_t = spglib.get_symmetry_dataset(cell)['translations'] + rotations = [] + for i in range(len(tot_r)): + # print(tot_t[i]) + if(np.all(tot_t[i] < 1.0e-6)): + rotations.append(tot_r[i]) + rotations = np.asfortranarray(rotations) + nsym = len(rotations) + # print(nsym) + + irrgrid = [] + for iqpt in range(self.nirrkpt): + irrgrid.append(self.qpoints[self.qstar_list[iqpt][0]]) + irrgrid = np.asfortranarray(irrgrid) + (scattering_grid, scattering_weight) = thermal_conductivity.scattering_grids.get_scattering_q_grid(rotations, irrgrid, self.qpoints, \ + self.nirrkpt, self.nkpt, nsym) + self.scattering_grids = [] + self.scattering_weights = [] + for iqpt in range(self.nirrkpt): + curr_grid = [] + curr_w = [] + for jqpt in range(self.nkpt): + if(scattering_weight[iqpt][jqpt] > 0): + curr_grid.append(np.dot(scattering_grid[iqpt][jqpt], self.reciprocal_lattice)) + curr_w.append(scattering_weight[iqpt][jqpt]) + else: + break + self.scattering_grids.append(curr_grid) + self.scattering_weights.append(curr_w) + if(sum(curr_w) != self.nkpt): + print('WARNING! Sum of weights for ' + str(iqpt + 1) + '. q point does not match total number of q points!') + print(sum(curr_w), self.nkpt) + print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') + self.set_up_scattering_grids = True + print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') + + ################################################################################################################################### + + def set_scattering_grids_simple(self): + + """ + + Set scattering grids to be all points in the Brillouin zone. + + """ + + self.scattering_grids = [] + self.scattering_weights = [] + start_time = time.time() + for iqpt in range(self.nirrkpt): + self.scattering_grids.append(self.k_points) + self.scattering_weights.append(np.ones(self.nkpt)) + if(sum(self.scattering_weights[-1]) != self.nkpt): + print('WARNING! Sum of weights for ' + str(iqpt + 1) + '. q point does not match total number of q points!') + print(sum(self.scattering_weights[-1]), self.nkpt) + print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') + self.set_up_scattering_grids = True + print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') + + + #################################################################################################################################### + + def set_force_constants(self, dyn): + + """ + Translates the SSCHA second order tensor in a local version which is used for calculation of harmonic properties. + + dyn : Cellconstructor.Phonons() object + """ + + dyn.Symmetrize() + self.fc2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + self.fc2.SetupFromPhonons(self.dyn) + self.fc2.Center() + self.fc2.Apply_ASR() + + self.force_constants = self.fc2.tensor.copy() + self.ruc = self.fc2.r_vector2.T + invcell = np.linalg.inv(self.supercell) + + + ################################################################################################################################### + + def setup_smearings(self, smearing_value = 0.00005): + + """ + Sets up smearing factor for each phonon mode. + + if type == adaptive : smearing for each phonon mode is unique and depends on the group velocity of the mode and the k point density. + For modes with zero velocity, take value 10 times smaller than the average smearing. + if type == constant : smearing is same for all of the modes + + smearing_value : value of the smearing in case type == "constant" + + """ + + if(self.smearing_type == 'adaptive'): + if(np.all(self.freqs == 0.0) or np.all(self.gvels == 0.0)): + print('Harmonic properties are all zero! Try reruning the harmonic calculation! ') + return 1 + delta_q = 0.0 + for i in range(len(self.reciprocal_lattice)): + if(np.linalg.norm(self.reciprocal_lattice[i]/float(self.kpoint_grid[i])) > delta_q): + delta_q = np.linalg.norm(self.reciprocal_lattice[i]/float(self.kpoint_grid[i])) + + for ikpt in range(self.nkpt): + for iband in range(self.nband): + delta_v = np.linalg.norm(self.gvels[ikpt,iband]) + self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale + min_smear = np.average(np.average(self.sigmas))/10.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) + print(min_smear) + self.sigmas[self.sigmas < min_smear] = min_smear + #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 + if(self.smearing_type == 'constant'): + self.sigmas[:,:] = smearing_value + + ################################################################################################################################## + + def what_temperatures(self): + + """ + Routine to print which temperatures have already been calculated. + + """ + + print('Heat capacities are calculated for: ') + print(self.cp.keys()) + print('Phonon lifetimes are calculated for: ') + print(self.lifetimes.keys()) + print('Phonon lineshapes are calculated for: ') + print(self.lineshapes.keys()) + + ################################################################################################################################### + + def get_spectral_kappa(self, temperature, ne = 100, prefered = 'lineshape'): + + """ + Routine to calculate frequency resolved lattice thermal conductivity $\kappa (\omega)$ + ne : number of frequency points in case we calculate spectral kappa from phonon lifetimes (in case of lineshapes we use energies defined for the calculation of lineshapes) + prefered : in case both lifetimes and lineshapes are calculated defines which method to use to calculate spectral kappa + """ + + if(not self.off_diag): + temp_key = format(temperature, '.1f') + if(temp_key in self.lifetimes.keys() and temp_key in self.lineshapes.keys()): + if(prefered == 'lineshape'): + print('Both lineshapes and lifetimes are calculated. Calculating spectral kappa from lineshapes!') + spec_kappa = self.calc_spectral_kappa_gk_diag(self, temperature) + else: + print('Both lineshapes and lifetimes are calculated. Calculating spectral kappa from lifetimes!') + spec_kappa = self.calc_spectral_kappa_srta_diag(self, temperature, ne) + elif(temp_key in self.lifetimes.keys()): + spec_kappa = self.calc_spectral_kappa_srta_diag(self, temperature, ne) + elif(temp_key in self.lineshapes.keys()): + spec_kappa = self.calc_spectral_kappa_gk_diag(self, temperature) + else: + print('You have not calculated phonon lifetimes or lineshapes for this temperature. Can not calculate spectral kappa!') + spec_kappa = (np.zeros(ne), np.zeros(ne)) + else: + print('Calculation with offdiagonal elements have been initialized. Not possible to calculate spectral kappa! ') + spec_kappa = (np.zeros(ne), np.zeros(ne)) + + return spec_kappa + + ################################################################################################################################### + + def calc_spectral_kappa_gk_diag(self, temperature): + + """ + Calculate spectral kappa from lineshapes. + + temperature : temperature at which to calculate spectral kappa. Lineshapes should already been calculated. + """ + + ls_key = format(temperature, '.1f') + spec_kappa = np.zeros((3,3,self.lineshapes[ls_key].shape[-1])) + energies = np.arange(spec_kappa.shape[-1], dtype=float)*self.delta_omega + self.delta_omega + exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + exponents = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + integrands = (integrands_plus + integrands_minus) + + if(self.off_diag): + spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + else: + spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + spec_kappa = spec_kappa*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*self.delta_omega + print('Total kappa is: ', np.diag(tot_kappa)) + + return energies*SSCHA_TO_THZ, spec_kappa/SSCHA_TO_THZ + + ################################################################################################################################## + + def calc_spectral_kappa_srta_diag(self, temperature, ne): + + """ + Calculate spectral kappa from lifetimes. + + temperature : temperature at which spectral kappa should be calculated. + ne : number of frequency points for spectal kappa to be calculated on. + + """ + + key = format(temperature, '.1f') + delta_en = np.amax(self.freqs)/float(ne) + energies = np.arange(ne, dtype=float)*delta_en + delta_en + spec_kappa = np.zeros((3,3,ne)) + for ien in range(ne): + for iqpt in range(self.nkpt): + for iband in range(self.nband): + weight = gaussian(energies[ien], self.freqs[iqpt, iband], self.sigmas[iqpt, iband]) + if(self.off_diag): + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband], self.gvels[iqpt,iband, iband]) + else: + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband], self.gvels[iqpt,iband]) + spec_kappa = spec_kappa*SSCHA_TO_MS**2/self.volume/float(self.nkpt)*1.0e30#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*delta_en + print('Total kappa is: ', np.diag(tot_kappa)) + + return energies*SSCHA_TO_THZ, spec_kappa/SSCHA_TO_THZ + + #################################################################################################################################### + + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', isotope_scattering = True, isotopes = None, \ + write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): + + """ + Main function that calculates lattice thermal conductivity. + + temperatures : list of temperatures to be calculated in K. Warning: Code does not recognize difference in temperatures smaller than 0.1 K. + write_lifetimes : Boolean parameter for writing lifetimes as they are being calculated. + mode : Method to calculate lattice thermal conductivity: + SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation + GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) + write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. + ne : Number of frequency points to calculate phonon lineshapes on. Less anharmonic materials \ + and lower temperatures will need more points. + kappa_filename : Name of the file to write the results to. + """ + + start_time = time.time() + ntemp = len(temperatures) + if(ntemp == 0): + print('The temperature is not specified!') + return 1 + + kappa_file = open(kappa_filename, 'w+') + tot_kappa = [] + if(not self.off_diag): + kappa_file.write('# ' + format('Temperature (K)', STR_FMT)) + kappa_file.write(' ' + format('Kappa xx (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa yy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa zz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa xy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa yz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa zx (W/mK)', STR_FMT)) + kappa_file.write('\n') + else: + kappa_file.write('# ' + format('Temperature (K)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag xx (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag yy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag zz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag xy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag yz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_diag zx (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag xx (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag yy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag zz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag xy (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag yz (W/mK)', STR_FMT)) + kappa_file.write(' ' + format('Kappa_offdiag zx (W/mK)', STR_FMT)) + kappa_file.write('\n') + + for itemp in range(ntemp): + tc_key = format(temperatures[itemp], '.1f') + if(mode == 'SRTA'): + if(not self.off_diag): + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes) + kappa = kappa/self.volume/float(self.nkpt)*1.0e30 + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa[2][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa + else: + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes) + kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 + kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa_diag[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[2][0], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa_nondiag[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa_diag + kappa_nondiag + elif(mode == 'GK'): + self.delta_omega = np.amax(self.freqs)*2.0/float(ne) + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + if(not self.off_diag): + kappa = self.calculate_kappa_gk_diag(temperatures[itemp], write_lineshapes, energies) + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa[2][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa + else: + kappa_diag, kappa_nondiag = self.calculate_kappa_gk_offdiag(temperatures[itemp], write_lifetimes, energies) + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa_diag[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa_diag[2][0], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa_nondiag[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa_diag + kappa_nondiag + else: + print('Can not recognize this method of calculating kappa! ') + print(mode) + kappa_file.close() + return 1 + + kappa_file.close() + print('Calculated lattice thermal conductivity in ', time.time() - start_time, ' seconds!') + + ################################################################################################################################## + + def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies): + + """ + + Calculation of lattice thermal conductivity using Green-Kubo method if only diagonal group velocities are available. + + temperature : temperature at which kappa should be calculated. + write_lineshapes : Boolean noting should we write phonon lineshapes on a file + energies : frequency points at which phonon lineshapes should be calculated + + """ + + ls_key = format(temperature, '.1f') + if(ls_key in self.lineshapes.keys()): + print('Lineshapes for this temperature have already been calculated. Continuing ...') + else: + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran') + kappa = 0.0 + exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + exponents = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 +# print(integrands_plus.shape) + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + kappa = np.einsum('ijk,ijl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa += kappa.T + kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + return kappa + + ################################################################################################################################## + + def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies): + + """ + Calculation of lattice thermal conductivity using Green-Kubo method if both diagonal and off-diagonal group velocities are available. + + temperature : temperature at which kappa should be calculated. + write_lineshapes : Boolean noting should we write phonon lineshapes on a file + energies : frequency points at which phonon lineshapes should be calculated + + """ + + ls_key = format(temperature, '.1f') + if(ls_key in self.lineshapes.keys()): + print('Lineshapes for this temperature have already been calculated. Continuing ...') + else: + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran') + kappa_diag = np.zeros((3,3)) + exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 + exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + kappa_diag = np.einsum('ijjk,ijjl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag += kappa_diag.T + kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + kappa_nondiag = np.zeros_like(kappa_diag) + for iqpt in range(self.nkpt): + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): + if(iband != jband and self.freqs[iqpt, jband] != 0.0): + integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*energies**2*exponents_plus/(exponents_plus - 1.0)**2 + integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*energies**2*exponents_minus/(exponents_minus - 1.0)**2 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]**2*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])\ + *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_nondiag += kappa_nondiag.T + kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + return kappa_diag, kappa_nondiag + + ################################################################################################################################# + + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran'): + + """ + Calculate phonon lineshapes in full Brillouin zone. + + temperature : temperature to calculate lineshapes on. + write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. + energies : the list of frequencies for which lineshapes are calculated. + method : practically only determines how many times fortran routines are called. "fortran" should be much faster. + """ + + start_time = time.time() + if(self.delta_omega == 0.0 and energies is not None): + self.delta_omega = energies[1] - energies[0] + ls_key = format(temperature, '.1f') + + if(method == 'python'): + + lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) + for ikpt in range(self.nirrkpt): + jkpt = self.qstar_list[ikpt][0] + print('Calculating lineshapes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') + curr_ls = self.get_diag_dynamic_bubble(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], energies, temperature) + print('Normalization of lineshapes (should be 0.5): ') + print(np.sum(curr_ls, axis=1)*energies[0]) + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): + for iband in range(self.nband): + if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): + curr_ls[iband] = 0.0 + + if(write_lineshapes): + filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') + self.write_lineshape(filename, curr_ls, jkpt, energies) + + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lineshapes[jqpt,:] = curr_ls*2.0 + print('Shape of lineshapes', lineshapes.shape) + self.lineshapes[ls_key] = lineshapes + + elif(method == 'fortran'): + + lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) + if(not self.set_up_scattering_grids): + self.set_scattering_grids_fortran() + + irrqgrid = np.zeros((3, self.nirrkpt)) + scattering_events = np.zeros(self.nirrkpt, dtype=int) + for ikpt in range(self.nirrkpt): + irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + irrqgrid = np.asfortranarray(irrqgrid) + + scattering_grids = [] + weights = [] + for ikpt in range(self.nirrkpt): + for jkpt in range(len(self.scattering_grids[ikpt])): + scattering_grids.append(self.scattering_grids[ikpt][jkpt]) + weights.append(self.scattering_weights[ikpt][jkpt]) + num_scattering_events = len(scattering_grids) + if(sum(scattering_events) != num_scattering_events): + print('Difference in number of scattering events!') + if(sum(weights) != self.nkpt*self.nirrkpt): + print('Unexpected number of weights!') + scattering_grids = np.asfortranarray(scattering_grids).T + weights = np.asfortranarray(weights) + + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, energies, len(energies), self.nirrkpt, \ + self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + for ikpt in range(self.nirrkpt): + jkpt = self.qstar_list[ikpt][0] + print('Normalization of lineshapes (should be 0.5): ') + print(np.sum(curr_ls[ikpt], axis=1)*energies[0]) + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): + for iband in range(self.nband): + if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): + curr_ls[ikpt, iband] = 0.0 + if(write_lineshapes): + filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') + self.write_lineshape(filename, curr_ls[ikpt], jkpt, energies) + + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 + print('Shape of lineshapes', lineshapes.shape) + self.lineshapes[ls_key] = lineshapes + + print('Calculated SSCHA lineshapes in: ', time.time() - start_time) + + ################################################################################################################################## + + def write_lineshape(self, filename, curr_ls, jkpt, energies): + + """ + + Function to write phonon lineshapes onto a file. + + filename : title of the file at which lineshape is to be written. + curr_ls : lineshape to be written + jkpt : the index of the k point for which lineshapes are to be written + energies : frequencies at which lineshapes have been calculated + + """ + + with open(filename, 'w+') as outfile: + outfile.write('# SSCHA frequencies (THz) \n') + outfile.write('#' + 15*' ') + for iband in range(self.nband): + outfile.write(3*' ' + format(self.freqs[jkpt, iband]*SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + outfile.write('# ' + format('Omega (THz)', STR_FMT)) + outfile.write(' ' + format('Spectral function (1/THz)', STR_FMT)) + outfile.write('\n') + for ien in range(len(energies)): + outfile.write(3*' ' + format(energies[ien]*SSCHA_TO_THZ, '.12e')) + for iband in range(self.nband): + outfile.write(3*' ' + format(curr_ls[iband, ien]/SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + + ################################################################################################################################## + + def get_heat_capacity(self, temperature): + + """ + Calculate phonon mode heat capacity at temperature. + + """ + + cp_key = format(temperature, '.1f') + cp = np.zeros_like(self.freqs) + for ikpt in range(self.nkpt): + for iband in range(self.nband): + cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB) + self.cp[cp_key] = cp + + + ################################################################################################################################## + + def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None): + + """ + Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. + + """ + + lf_key = format(temperature, '.1f') + cp_key = format(temperature, '.1f') + if(lf_key in self.lifetimes.keys()): + print('Lifetimes for this temperature have already been calculated. Continuing ...') + else: + print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') + self.get_lifetimes(temperature, isotope_scattering, isotopes) + if(cp_key in self.cp.keys()): + print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') + else: + print('Calculating phonon mode heat capacities for ' + format(temperature, '.1f') + ' K temperature!') + self.get_heat_capacity(temperature) + + if(write_lifetimes): + self.write_transport_properties_to_file(temperature) + + kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + kappa += kappa.T + kappa = kappa/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + + return kappa + + ################################################################################################################################## + + def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None): + + """ + Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). + Quite slow! + + """ + + lf_key = format(temperature, '.1f') + cp_key = format(temperature, '.1f') + if(lf_key in self.lifetimes.keys()): + print('Lifetimes for this temperature have already been calculated. Continuing ...') + else: + self.get_lifetimes(temperature, isotope_scattering, isotopes) + if(cp_key in self.cp.keys()): + print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') + else: + self.get_heat_capacity(temperature) + scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) +# scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) + if(write_lifetimes): + self.write_transport_properties_to_file(temperature) + kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + + kappa_nondiag = np.zeros_like(kappa_diag) + for iqpt in range(self.nkpt): + for iband in range(self.nband - 1): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(iband + 1, self.nband): + if(self.freqs[iqpt, jband] != 0.0): + kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ + (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])/\ + self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) + kappa_nondiag = 2.0*kappa_nondiag*np.sqrt(AU*MASS_RY_TO_UMA*BOHR_TO_ANGSTROM**2*1.0e-20/RY_TO_J) + + kappa_diag += kappa_diag.T + kappa_nondiag += kappa_nondiag.T + kappa_diag = kappa_diag/2.0*SSCHA_TO_MS**2#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_nondiag = kappa_nondiag/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + + return kappa_diag, kappa_nondiag + + #################################################################################################################################### + + def get_frequencies(self): + + """ + Get frequencies on a grid which is used for Brillouin zone integration (in THz). + + """ + + return self.freqs*SSCHA_TO_THZ + + #################################################################################################################################### + + def get_scattering_rates_isotope(self, isotopes = None): + + + start_time = time.time() + self.scattering_rates_isotope = np.zeros((self.nkpt, self.nband)) + if(isotopes is None): + isotopes = [] + for i in range(len(self.dyn.structure.atoms)): + isotopes.append(natural_isotopes[self.dyn.structure.atoms[i]]) + for i in range(len(isotopes)): + tot_w = 0.0 + for j in range(len(isotopes[i])): + tot_w += isotopes[i][j][0] + if(abs(tot_w - 1.0) > 1.0e-3): + print('Sum of the isotopes percentages is not one!') + + av_mass = np.zeros(len(isotopes)) + for i in range(len(isotopes)): + for j in range(len(isotopes[i])): + av_mass[i] += isotopes[i][j][0]*isotopes[i][j][1] + print('Average mass of the ' + self.dyn.structure.atoms[i] + ' is ' + format(av_mass[i], '.4f') + '.') + + g_factor = np.zeros(len(isotopes)) + for i in range(len(isotopes)): + for j in range(len(isotopes[i])): + g_factor[i] += isotopes[i][j][0]*(1.0 - isotopes[i][j][1]/av_mass[i])**2 + print('G factor of ' + self.dyn.structure.atoms[i] + ' is ' + format(g_factor[i], '.4f') + '.') + + for ikpt in range(self.nirrkpt): + jkpt = self.qstar_list[ikpt][0] + curr_scatt_rate = self.get_scattering_rates_isotope_at_q(jkpt, g_factor, av_mass) + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + self.scattering_rates_isotope[jqpt,:] = curr_scatt_rate + + self.got_scattering_rates_isotopes = True + print('Calculated scattering rates due to the isotope scattering in ' + format(time.time() - start_time, '.2e'), ' seconds!') + + #################################################################################################################################### + + def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): + + scatt_rate = np.zeros(self.nband) + for iband in range(self.nband): + for jqpt in range(self.nkpt): + for jband in range(self.nband): + factor = 0.0 + for iat in range(len(self.dyn.structure.atoms)): + factor += g_factor[iat]*np.dot(self.eigvecs[iqpt,iband,3*iat:3*(iat+1)].conj(), self.eigvecs[jqpt,jband,3*iat:3*(iat+1)])**2 + scatt_rate[iband] += gaussian(self.freqs[iqpt,iband], self.freqs[jqpt,jband], self.sigmas[iqpt, iband])*factor + if(np.isnan(scatt_rate[iband])): + print(gaussian(self.freqs[iqpt,iband], self.freqs[jqpt,jband], self.sigmas[iqpt, iband]), factor) + print(g_factor[iat]) + raise RuntimeError('NAN!') + scatt_rate[iband] = np.pi*scatt_rate[iband]/2.0/float(self.nkpt)*self.freqs[iqpt, iband]**2 + return scatt_rate + + #################################################################################################################################### + + def get_lifetimes(self, temperature, method = 'fortran-LA', isotope_scattering = True, isotopes = None): + + """ + Get phonon lifetimes in the full Brillouin zone at temperature. + + method : Method by which phonon lifetimes are to be calculated. + fortran/python : practically means only how many times fortran routine is being called. "fortran" much faster. + LA/P : Approximation used for the lifetimes. + LA means lorentzian approximation (gives the value for which Lorentzian function with that value would \ + best approximate phonon lineshape). Default value. + P means perturbative approximation. The one used by most other codes! + """ + + if(not self.set_up_scattering_grids): + self.set_scattering_grids_fortran() + + if(isotope_scattering and not self.got_scattering_rates_isotopes): + self.get_scattering_rates_isotope(isotopes) + + start_time = time.time() + lf_key = format(temperature, '.1f') + + if(method == 'python-LA'): + + lifetimes = np.zeros((self.nkpt, self.nband)) + shifts = np.zeros((self.nkpt, self.nband)) + for ikpt in range(self.nirrkpt): + jkpt = self.qstar_list[ikpt][0] + print('Calculating lifetimes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') + curr_freq, curr_shift, curr_lw = self.get_lifetimes_at_q(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], temperature) + curr_lf = np.divide(np.ones_like(curr_lw, dtype=float), curr_lw, out=np.zeros_like(curr_lw), where=curr_lw!=0.0)/2.0 + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): + for iband in range(self.nband): + if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): + curr_lf[iband] = 0.0 + curr_shift[iband] = 0.0 + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lifetimes[jqpt,:] = curr_lf + shifts[jqpt,:] = curr_shift + print('Shape of lifetimes', lifetimes.shape) + self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + self.freqs_shifts[lf_key] = shifts + + elif(method == 'python-P'): + + lifetimes = np.zeros((self.nkpt, self.nband)) + shifts = np.zeros((self.nkpt, self.nband)) + for ikpt in range(self.nirrkpt): + jkpt = self.qstar_list[ikpt][0] + print('Calculating lifetimes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') + selfnrg = np.diag(self.get_just_diag_dynamic_bubble(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], self.freqs[jkpt], temperature)) + curr_lf = -1.0*np.divide(selfnrg.imag, self.freqs[jkpt], out=np.zeros_like(self.freqs[jkpt]), where=self.freqs[jkpt]!=0.0)/2.0 + curr_shifts = selfnrg.real + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): + for iband in range(self.nband): + if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): + curr_lf[iband] = 0.0 + curr_shifts[iband] = 0.0 + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lifetimes[jqpt,:] = np.divide(np.ones_like(curr_lf, dtype=float), curr_lf, out=np.zeros_like(curr_lf), where=curr_lf!=0.0)/2.0 + shifts[jqpt,:] = curr_shifts + print('Shape of lifetimes', lifetimes.shape) + self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + self.freqs_shifts[lf_key] = shifts + + elif(method == 'fortran-LA'): + + irrqgrid = np.zeros((3, self.nirrkpt)) + scattering_events = np.zeros(self.nirrkpt, dtype=int) + for ikpt in range(self.nirrkpt): + irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + irrqgrid = np.asfortranarray(irrqgrid) + lifetimes = np.zeros((self.nkpt, self.nband)) + shifts = np.zeros((self.nkpt, self.nband)) + + scattering_grids = [] + weights = [] + for ikpt in range(self.nirrkpt): + for jkpt in range(len(self.scattering_grids[ikpt])): + scattering_grids.append(self.scattering_grids[ikpt][jkpt]) + weights.append(self.scattering_weights[ikpt][jkpt]) + num_scattering_events = len(scattering_grids) + if(sum(scattering_events) != num_scattering_events): + print('Difference in number of scattering events!') + if(sum(weights) != self.nkpt*self.nirrkpt): + print('Unexpected number of weights!') + scattering_grids = np.asfortranarray(scattering_grids).T + weights = np.asfortranarray(weights) + + selfengs = thermal_conductivity.get_lf.calculate_lifetimes(irrqgrid, scattering_grids, weights, scattering_events, \ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ + self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ + self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ + num_scattering_events) + + for ikpt in range(self.nirrkpt): + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 + shifts[jqpt, :] = selfengs[ikpt].real + self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + self.freqs_shifts[lf_key] = shifts + + elif(method == 'fortran-P'): + + irrqgrid = np.zeros((3, self.nirrkpt)) + scattering_events = np.zeros(self.nirrkpt, dtype=int) + for ikpt in range(self.nirrkpt): + irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + irrqgrid = np.asfortranarray(irrqgrid) + lifetimes = np.zeros((self.nkpt, self.nband)) + shifts = np.zeros((self.nkpt, self.nband)) + + scattering_grids = [] + weights = [] + for ikpt in range(self.nirrkpt): + for jkpt in range(len(self.scattering_grids[ikpt])): + scattering_grids.append(self.scattering_grids[ikpt][jkpt]) + weights.append(self.scattering_weights[ikpt][jkpt]) + num_scattering_events = len(scattering_grids) + if(sum(scattering_events) != num_scattering_events): + print('Difference in number of scattering events!') + if(sum(weights) != self.nkpt*self.nirrkpt): + print('Unexpected number of weights!') + scattering_grids = np.asfortranarray(scattering_grids).T + weights = np.asfortranarray(weights) + + selfengs = thermal_conductivity.get_lf.calculate_lifetimes_perturbative(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ + self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ + self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + + for ikpt in range(self.nirrkpt): + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 + shifts[jqpt,:] = selfengs[ikpt].real + + self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + self.freqs_shifts[lf_key] = shifts + + print('Calculated SSCHA lifetimes in: ', time.time() - start_time) + + #################################################################################################################################### + + def setup_harmonic_properties(self, smearing_value = 0.00005): + + """ + + Sets up harmonic properties (calculates frequencies, group velocities and smearing parameters.) + + smearing_value : Value of the smearing in case smearing_method == "constant" + """ + + for ikpt, kpt in enumerate(self.k_points): + self.freqs[ikpt], self.eigvecs[ikpt] = self.get_frequency_at_q(kpt) + self.gvels[ikpt] = self.get_group_velocity(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) + + self.symmetrize_group_velocities_over_star() + #self.check_group_velocities() + #self.check_frequencies() + self.setup_smearings(smearing_value) + + ################################################################################################################################# + + def check_frequencies(self): + + """ + + Routine to check whether the frequencies in q star are all the same + + """ + + for istar in range(self.nirrkpt): + freqs0 = self.freqs[self.qstar_list[istar][0]] + for jqpt in range(1, len(self.qstar_list[istar])): + freqs1 = self.freqs[self.qstar_list[istar][jqpt]] + if(np.any(np.abs(freqs0 - freqs1) > 1.0e-6*np.amax(freqs0))): + print('WARNING! Frequencies in star not the same. ', istar, jqpt) + print(freqs0) + print(freqs1) + + ################################################################################################################################# + + def check_group_velocities(self): + + """ + + Check whether the group velocities for wave vectors in q star are all the same. + + """ + + tot_r = self.symmetry.QE_s[:,:,:self.symmetry.QE_nsymq] + nsym = np.shape(tot_r)[-1] + print('Total number of symmetry operations: ', nsym) + + + for istar in range(self.nirrkpt): + q0 = np.dot(self.k_points[self.qstar_list[istar][0]], np.linalg.inv(self.reciprocal_lattice)) + vel0 = self.gvels[self.qstar_list[istar][0]].copy() + for jqpt in range(1, len(self.qstar_list[istar])): + q1 = np.dot(self.k_points[self.qstar_list[istar][jqpt]], np.linalg.inv(self.reciprocal_lattice)) + rotation = np.zeros((3,3)) + found_rot = False + for ir in range(0, nsym): + q2 = np.dot(tot_r[:,:,ir], q0) + q3 = np.dot(np.dot(-1.0*np.eye(3), tot_r[:,:,ir]), q0) + if(same_vector(q2, q1, np.eye(3))): + print('Pure rotation') + rotation = np.dot(np.linalg.inv(self.unitcell.T), np.dot(tot_r[:,:,ir], self.unitcell.T)) + found_rot = True + break + elif(same_vector(q3, q1, np.eye(3))): + print('Inverse and rotation') + rotation = np.dot(np.linalg.inv(self.unitcell.T), np.dot(np.dot(-1.0*np.eye(3),tot_r[:,:,ir]), self.unitcell.T)) + found_rot = True + break + if(found_rot): + check_if_rotation(rotation, self.symmetry.threshold) + if(self.off_diag): + vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + else: + vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + if(np.any(vel0 - vel1) > 1.0e-4): + print('Velocities in star not agreeing!', istar, jqpt) + print(vel0) + print(vel1) + else: + print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) + + ################################################################################################################################# + + def get_group_velocity(self, q, freqs, eigvecs): + + """ + Calculate group velocity. Using analytical formula. + + q : wave vector in real space (without 2pi factor) + freqs : frequencies for this wave vector + eigvecs : eigenvectors for this wave vector + + """ + + uc_positions = self.dyn.structure.coords.copy() + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) + if(self.off_diag): + tmp_gvel = np.zeros((self.nband, self.nband, 3)) + gvel = np.zeros((self.nband, self.nband, 3)) + else: + tmp_gvel = np.zeros((self.nband, 3)) + gvel = np.zeros((self.nband, 3)) + #rq = np.dot(q, self.reciprocal_lattice) + phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi + exponents = np.exp(1j*phases) + m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1.0 / mm_mat + + for icart in range(3): + auxfc = np.einsum('ijk,i->ijk', self.force_constants, self.ruc[:,icart])*complex(0.0, 1.0) + ddynmat = np.einsum('ijk,i->jk', auxfc, exponents) * mm_inv_mat + for iat in range(len(uc_positions)): + for jat in range(len(uc_positions)): + if(iat != jat): + extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi + ddynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + if(is_q_gamma): + if(self.off_diag): + for iband in range(self.nband): + if(freqs[iband] != 0.0): + for jband in range(self.nband): + if(freqs[jband] != 0.0): + gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + else: + for iband in range(self.nband): + if(freqs[iband] != 0.0): + tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + else: + if(self.off_diag): + for iband in range(self.nband): + for jband in range(self.nband): + tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + else: + for iband in range(self.nband): + tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + + gvel = self.symmetrize_group_velocity(tmp_gvel, q) + + return gvel + + + ################################################################################################################################## + + def symmetrize_group_velocity(self, vels, q): + + """ + + Symmetrize group velocites according to the little group of wave vector. + + vels : group velocities at this wave vector + q : wave vector in question! + + """ + + qred = np.dot(q, np.linalg.inv(self.reciprocal_lattice)) + qred -= np.rint(qred) + cell = get_spglib_cell(self.dyn) + tot_r = spglib.get_symmetry_dataset(cell)['rotations'] + nsym = len(tot_r) + for i in range(nsym): + tot_r[i] = tot_r[i].T + + rot_q = [] + for i in range(nsym): + diff = qred- np.dot(tot_r[i,:,:], qred) + if (np.all(np.abs(diff) < self.symmetry.threshold)): + rot_q.append(tot_r[i,:,:]) + if(len(rot_q) > 0): + rot_vels = np.zeros_like(vels) + for i in range(len(rot_q)): + rot_q[i] = np.dot(self.reciprocal_lattice.T, np.dot(rot_q[i], np.linalg.inv(self.reciprocal_lattice.T))) + check_if_rotation(rot_q[i], self.symmetry.threshold) + if(self.off_diag): + rot_vels += np.einsum('ij,klj->kli', rot_q[i], vels) + else: + rot_vels += np.einsum('ij,kj->ki', rot_q[i], vels) + rot_vels /= float(len(rot_q)) + else: + rot_vels = vels.copy() + + return rot_vels + + ################################################################################################################################# + + def symmetrize_group_velocities_over_star(self): + + """ + + Symmetrize group velocities over q star. + + """ + + cell = get_spglib_cell(self.dyn) + tot_r = spglib.get_symmetry_dataset(cell)['rotations'] + nsym = len(tot_r) + for i in range(nsym): + tot_r[i] = tot_r[i].T + + + for istar in range(self.nirrkpt): + q0 = np.dot(self.k_points[self.qstar_list[istar][0]], np.linalg.inv(self.reciprocal_lattice)) + vel0 = self.gvels[self.qstar_list[istar][0]].copy() + rotations = [] + rotations.append(np.eye(3)) + for jqpt in range(1, len(self.qstar_list[istar])): + q1 = np.dot(self.k_points[self.qstar_list[istar][jqpt]], np.linalg.inv(self.reciprocal_lattice)) + rotation = np.zeros((3,3)) + found_rot = False + for ir in range(0, nsym): + q2 = np.dot(tot_r[ir,:,:], q1) + if(same_vector(q2, q0, np.eye(3))): + rotation = np.dot(self.reciprocal_lattice.T, np.dot(tot_r[ir,:,:], np.linalg.inv(self.reciprocal_lattice.T))) + found_rot = True + break + if(found_rot): + check_if_rotation(rotation, self.symmetry.threshold) + rotations.append(rotation) + if(self.off_diag): + vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + else: + vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + vel0 += vel1 + else: + print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) + if(len(rotations) != len(self.qstar_list[istar])): + print('Number of rotations does not match number of q points in the star: ', len(rotations) + 1, len(self.qstar_list[istar])) + vel0 = vel0/float(len(rotations)) + for jqpt in range(len(self.qstar_list[istar])): + if(self.off_diag): + self.gvels[self.qstar_list[istar][jqpt]] = np.einsum('ij,klj->kli', np.linalg.inv(rotations[jqpt]), vel0) + else: + self.gvels[self.qstar_list[istar][jqpt]] = np.einsum('ij,kj->ki', np.linalg.inv(rotations[jqpt]), vel0) + + ################################################################################################################################# + + def get_frequency_at_q(self, q): + + """ + + Get phonon frequencies and eigenvectors at wave vector q. + + q: wave vector in real space (no 2pi factor) + + """ + + uc_positions = self.dyn.structure.coords.copy() + m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1.0 / mm_mat + #rq = np.dot(q, self.reciprocal_lattice) + phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi + exponents = np.exp(1j*phases) + dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat + for iat in range(len(uc_positions)): + for jat in range(len(uc_positions)): + if(iat != jat): + extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi + dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + dynmat = (dynmat + dynmat.conj().T)/2.0 + w2_q, pols_q = np.linalg.eigh(dynmat) + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) + if(is_q_gamma): + for iband in range(self.nband): + if(w2_q[iband] < np.amax(w2_q)*1.0e-6): + w2_q[iband] = 0.0 + if(np.any(w2_q < 0.0)): + print('At q: ') + print(q) + print(w2_q) + raise RuntimeError('SSCHA frequency imaginary. Stopping now.') + else: + w_q = np.sqrt(w2_q) + + return w_q, pols_q.T + + ################################################################################################################################### + + def get_dynamical_matrix(self, q): + + """ + + Get dynamical matrix at wave vector. + + q : wave vector without 2pi factor + + """ + + uc_positions = self.dyn.structure.coords.copy() + m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1.0 / mm_mat + phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi + exponents = np.exp(1j*phases) + dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat + + return dynmat + + #################################################################################################################################### + + def get_dos(self, de = 0.1): + + """ + Calculate phonon DOS using gaussian smearing. + + de : the distance between two frequency points is sampling of DOS (in THz) + + """ + + de = de /(np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM/100.0/2.0/np.pi) + if(np.all(self.freqs == 0)): + print('All frequencies are zero. Be sure that the harmonic properties are initialized!') + else: + frequencies = self.freqs.flatten() + smearing = self.sigmas.flatten() + nsamples = int(np.amax(self.freqs)*1.1/de) + samples = np.arange(nsamples).astype(float)*de + deltas = np.zeros((nsamples, len(frequencies))) + for i in range(nsamples): + for j in range(len(frequencies)): + deltas[i,j] = gaussian(frequencies[j], samples[i], smearing[j]) + dos = np.sum(deltas, axis = 1) + + dos = dos/float(len(self.freqs)) + + return samples*SSCHA_TO_THZ, dos/SSCHA_TO_THZ + + ######################################################################################################################################## + + def get_dos_from_lineshapes(self, temperature, de = 0.1): + + """ + Calculates phonon DOS from lineshapes at temperature. + + temperature : temperature in K. + de : sampling spacing of energies after convolution (in THz) + + """ + + de = de/SSCHA_TO_THZ + key = format(temperature, '.1f') + if(key in self.lineshapes.keys()): + ne = self.lineshapes[key].shape[-1] + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + dos = np.sum(np.sum(self.lineshapes[key], axis = 0), axis = 0) + dos = dos/float(self.nkpt) + print('Total DOS is (should be number of bands): ', np.sum(dos)*self.delta_omega) + else: + print('Lineshapes not calculated for this temperature! Can not calculate DOS! ') + dos = 0 + energies = 0 + + ne = int(np.amax(energies)/de) + energies_smoothed = np.arange(ne, dtype=float)*de + de + dos_smoothed = np.zeros(ne, dtype=float) + for ien in range(ne): + for jen in range(len(dos)): + dos_smoothed[ien] += gaussian(energies_smoothed[ien], energies[jen], de/2.0)*dos[jen] + int_dos = np.sum(dos_smoothed)*de + dos_smoothed = dos_smoothed/int_dos*np.sum(dos)*self.delta_omega + + return energies*SSCHA_TO_THZ, dos/SSCHA_TO_THZ, energies_smoothed*SSCHA_TO_THZ, dos_smoothed/SSCHA_TO_THZ + + ######################################################################################################################################## + + def get_mean_square_displacement_from_lineshapes(self, temperature = 300.0): + + """ + Calculates mean square displacement factor from phonon lineshapes. () + + temperature : temperature in K. + + """ + + key = format(temperature, '.1f') + if(key in self.lineshapes.keys()): + ne = self.lineshapes[key].shape[-1] + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + msd = np.sum(self.lineshapes[key]*(1.0/(exponents_plus - 1.0) - 1.0/(exponents_minus - 1.0)), axis = len(self.lineshapes[key].shape) - 1)*self.delta_omega + with open('Phonon_MSD_from_lineshapes', 'w+') as outfile: + outfile.write('# ' + format('Frequency (THz)', STR_FMT)) + outfile.write(' ' + format('MSD anharmonic', STR_FMT)) + outfile.write(' ' + format('MSD harmonic', STR_FMT)) + outfile.write('\n') + for iqpt in range(self.nkpt): + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + outfile.write(3*' ' + format(self.freqs[iqpt][iband]*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(msd[iqpt][iband], '.12e')) + outfile.write(3*' ' + format(2.0/(np.exp(self.freqs[iqpt][iband]*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - 1.0) + 1.0, '.12e')) + outfile.write('\n') + else: + print('Lineshapes not calculated for this temperature! Can not calculate mean square displacements! ') + dos = 0 + energies = 0 + + #################################################################################################################################### + + def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properties'): + + """ + Write harmonic properties (frequency, group velocity, smearing parameters) from second order SSCHA tensor to file. + + """ + + with open(filename, 'w+') as outfile: + outfile.write('# ' + format('Frequencies (THz)', STR_FMT)) + outfile.write(' ' + format('Group velocity x (m/s)', STR_FMT)) + outfile.write(' ' + format('Group velocity y (m/s)', STR_FMT)) + outfile.write(' ' + format('Group velocity z (m/s)', STR_FMT)) + outfile.write(' ' + format('Smearing par (THz)', STR_FMT)) + outfile.write('\n') + for ikpt in range(self.nkpt): + for iband in range(self.nband): + outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) + for icart in range(3): + if(self.off_diag): + outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart]*SSCHA_TO_MS, '.12e')) + else: + outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart]*SSCHA_TO_MS, '.12e')) + outfile.write(3*' ' + format(self.sigmas[ikpt][iband]*SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + + ###################################################################################################################################### + + def write_transport_properties_to_file(self, temperature, filename = 'Phonon_transport_properties_'): + """ + Write transport properties (frequencies, lifetimes, heat capacities) from SSCHA tensors to file. + + """ + + lf_key = format(temperature, '.1f') + if(lf_key in self.lifetimes.keys()): + with open(filename + lf_key, 'w+') as outfile: + outfile.write('# ' + format('Frequency (THz)', STR_FMT)) + outfile.write(' ' + format('Lifetime (ps)', STR_FMT)) + outfile.write(' ' + format('Freq. shift (THz)', STR_FMT)) + outfile.write(' ' + format('Isotope scatt. rate (THz)', STR_FMT)) + outfile.write(' ' + format('Mode heat capacity (J/K)', STR_FMT)) + outfile.write('\n') + for iqpt in range(self.nkpt): + for iband in range(self.nband): + outfile.write(3*' ' + format(self.freqs[iqpt, iband]*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self.lifetimes[lf_key][iqpt, iband]*1.0e12, '.12e')) + outfile.write(3*' ' + format(self.freqs_shifts[lf_key][iqpt, iband]*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self.scattering_rates_isotope[iqpt, iband]*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self.cp[lf_key][iqpt, iband], '.12e')) + outfile.write('\n') + else: + print('Lifetimes have not been calculated for this temperature! ') + ##################################################################################################################################### + + def get_lifetimes_at_q(self, k_grid, q, smear, T): + + """ + + Get lifetime at a specific wave vector q. Will also give phonon shift. + + k_grid : k_grid to sum scattering events over + q : wave vector in question + smear : smearing factors for this wave vectors (dimension = (nband)) + T : temperature in K + + """ + + + structure = self.fc2.unitcell_structure + + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + + + # Get the phi2 in q + phi2_q = self.fc2.Interpolate(q, asr = False) + + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # + d2_q = phi2_q * mm_inv_mat + + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + + if is_q_gamma: + w2_q[0:3]=0.0 + if not (w2_q >= 0.0).all(): + print('q= ',q, ' (2pi/A)') + print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_q=np.sqrt(w2_q) + + def compute_k(k): + # phi3 in q, k, -q - k + phi3=self.fc3.Interpolate(k,-q-k, asr = False) + #print(phi3) + # phi2 in k + phi2_k = self.fc2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + #print(d3) + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_q, pols_k, pols_mq_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + #print(d3_pols) + + n_mod=3*structure.N_atoms + # Fortran duty ==== + + selfnrg = thermal_conductivity.third_order_cond.compute_perturb_selfnrg_single(smear,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,n_mod) + return selfnrg + + CC.Settings.SetupParallel() + + selfnrg =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + # divide by the N_k factor + selfnrg /= len(k_points) # (n_mod,nsigma) + + #w_q_ext=w_q[...,None] + + shift=np.divide(selfnrg.real, 2*w_q, out=np.zeros_like(selfnrg.real), where=w_q!=0) + hwhm=np.divide(-selfnrg.imag, 2*w_q, out=np.zeros_like(selfnrg.imag), where=w_q!=0) + + return w_q, shift,hwhm + + ###################################################################################################################################### + + def get_diag_dynamic_bubble(self, k_grid, q, smear, energies, T): + + """ + Get lineshape at a specific wave vector q. + + k_grid : k_grid to sum scattering events over + q : wave vector in question + smear : smearing factors for this wave vectors (dimension = (nband)) + T : temperature in K + + """ + + structure = self.fc2.unitcell_structure + + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + + + # Get the phi2 in q + phi2_q = self.fc2.Interpolate(q, asr = False) + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # + d2_q = phi2_q * mm_inv_mat + + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + + if is_q_gamma: + w2_q[0:3]=0.0 + if not (w2_q >= 0.0).all(): + print('q= ',q, ' (2pi/A)') + print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_q=np.sqrt(w2_q) + + # Allocate the memory for the bubble + ne=energies.shape[0] + nat=structure.N_atoms + tmp_bubble = np.zeros((ne,self.nband), dtype = np.complex128, order = "F") + + def compute_k(k): + # phi3 in q, k, -q - k + phi3=self.fc3.Interpolate(k,-q-k, asr = False) + # phi2 in k + phi2_k = self.fc2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + + # Fortran duty ==== + + # + tmp_bubble = thermal_conductivity.third_order_cond.compute_diag_dynamic_bubble_single(energies,smear,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,ne,n_mod=self.nband) + + return tmp_bubble + + CC.Settings.SetupParallel() + + d_bubble_mod =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + + # divide by the N_k factor + d_bubble_mod /= len(k_points) # (ne,nsmear,n_mod) + # + spectralf=thermal_conductivity.third_order_cond.compute_spectralf_diag_single(np.zeros_like(w_q),energies,w_q, + d_bubble_mod, + nat,ne) + + + return spectralf.T + + ###################################################################################################################################### + + def get_just_diag_dynamic_bubble(self, k_grid, q, smear, energies, T): + + """ + Get lineshape at a specific wave vector q. + + k_grid : k_grid to sum scattering events over + q : wave vector in question + smear : smearing factors for this wave vectors (dimension = (nband)) + T : temperature in K + + """ + + structure = self.fc2.unitcell_structure + + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + + + # Get the phi2 in q + phi2_q = self.fc2.Interpolate(q, asr = False) + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # + d2_q = phi2_q * mm_inv_mat + + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + + if is_q_gamma: + w2_q[0:3]=0.0 + if not (w2_q >= 0.0).all(): + print('q= ',q, ' (2pi/A)') + print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_q=np.sqrt(w2_q) + + # Allocate the memory for the bubble + ne=energies.shape[0] + nat=structure.N_atoms + tmp_bubble = np.zeros((ne,self.nband), dtype = np.complex128, order = "F") + + def compute_k(k): + # phi3 in q, k, -q - k + phi3=self.fc3.Interpolate(k,-q-k, asr = False) + # phi2 in k + phi2_k = self.fc2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + + # Fortran duty ==== + + # + tmp_bubble = thermal_conductivity.third_order_cond.compute_diag_dynamic_bubble_single(energies,smear,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,ne,n_mod=self.nband) + + return tmp_bubble + + CC.Settings.SetupParallel() + + d_bubble_mod =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + + # divide by the N_k factor + d_bubble_mod /= len(k_points) # (ne,nsmear,n_mod) + # + return d_bubble_mod.T + + ##################################################################################################################################### + + def get_lifetimes_at_q_smaller_grid(self, k_grid, weights, q, smear, T): + + """ + + Get lifetime at a specific wave vector q calculated on a smaller grid. Will also give phonon shift. + k_grid : k_grid to sum scattering events over + q : wave vector in question + smear : smearing factors for this wave vectors (dimension = (nband)) + T : temperature in K + + """ + + + structure = self.fc2.unitcell_structure + + # Get the integration points + #k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + + + # Get the phi2 in q + phi2_q = self.fc2.Interpolate(q, asr = False) + + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # + d2_q = phi2_q * mm_inv_mat + + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + + if is_q_gamma: + w2_q[0:3]=0.0 + if not (w2_q >= 0.0).all(): + print('q= ',q, ' (2pi/A)') + print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_q=np.sqrt(w2_q) + + def compute_k(inputs): + k = inputs[0] + weight = inputs[1] + # phi3 in q, k, -q - k + phi3=self.fc3.Interpolate(k,-q-k, asr = False) + #print(phi3) + # phi2 in k + phi2_k = self.fc2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + #print(d3) + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_q, pols_k, pols_mq_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + #print(d3_pols) + + n_mod=3*structure.N_atoms + # Fortran duty ==== + + selfnrg = thermal_conductivity.third_order_cond.compute_perturb_selfnrg_single(smear,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,n_mod) + return selfnrg*float(weight) + + CC.Settings.SetupParallel() + + input_list = [] + for i in range(len(weights)): + input_list.append([k_grid[i], weights[i]]) + selfnrg =CC.Settings.GoParallel(compute_k, input_list, reduce_op = "+") + # divide by the N_k factor + selfnrg /= float(sum(weights)) # (n_mod,nsigma) + + #w_q_ext=w_q[...,None] + + shift=np.divide(selfnrg.real, 2*w_q, out=np.zeros_like(selfnrg.real), where=w_q!=0) + hwhm=np.divide(-selfnrg.imag, 2*w_q, out=np.zeros_like(selfnrg.imag), where=w_q!=0) + + return w_q, shift,hwhm + + ###################################################################################################################################### From 52a3bd3981d8fe47f9b873f6df8739254729d6c2 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 13 Jan 2022 11:58:09 +0100 Subject: [PATCH 002/204] 2nd commit --- cellconstructor/ThermalConductivity.py | 14 ++++++++++---- setup.py | 11 ++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 4c4cae00..7b5d2935 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -772,7 +772,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering=isotope_scattering, isotopes= isotopes) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -1068,7 +1068,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, isotope_scattering, isotopes) + self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1099,7 +1099,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_sca if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, isotope_scattering, isotopes) + self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1200,7 +1200,7 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): #################################################################################################################################### - def get_lifetimes(self, temperature, method = 'fortran-LA', isotope_scattering = True, isotopes = None): + def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): """ Get phonon lifetimes in the full Brillouin zone at temperature. @@ -1221,6 +1221,7 @@ def get_lifetimes(self, temperature, method = 'fortran-LA', isotope_scattering = start_time = time.time() lf_key = format(temperature, '.1f') + print('Calculating lifetimes at: ' + lf_key + ' K.') if(method == 'python-LA'): @@ -1269,6 +1270,7 @@ def get_lifetimes(self, temperature, method = 'fortran-LA', isotope_scattering = elif(method == 'fortran-LA'): + print('Calculating lifetimes in fortran!') irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) for ikpt in range(self.nirrkpt): @@ -1345,6 +1347,10 @@ def get_lifetimes(self, temperature, method = 'fortran-LA', isotope_scattering = self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) self.freqs_shifts[lf_key] = shifts + else: + print('Unrecognized method! Exit!') + raise RuntimeError('No such method for calculating phonon lifetimes!') + print('Calculated SSCHA lifetimes in: ', time.time() - start_time) #################################################################################################################################### diff --git a/setup.py b/setup.py index 63dddbbe..5fa4079d 100644 --- a/setup.py +++ b/setup.py @@ -45,6 +45,15 @@ extra_f90_compile_args = ["-cpp"] ) +cond_ext = Extension(name = "thermal_conductivity", + sources = ["FModules/get_scattering_q_grid.f90", + "FModules/third_order_cond.f90", + "FModules/get_lf.f90"], + libraries= ["lapack", "blas"], + extra_f90_compile_args = ["-cpp", "-fcheck=all", "-fopenmp", "-lgomp"], + extra_link_args = ["-fopenmp"] + ) + # The C module extension actually depeds on the python version @@ -72,7 +81,7 @@ license = "MIT", include_package_data = True, scripts = ["scripts/symmetrize_dynmat.py", "scripts/cellconstructor_test.py", "scripts/view_scf_atoms.py"], - ext_modules = [symph_ext, cc_modules_ext, thirdorder_ext, secondorder_ext] + ext_modules = [symph_ext, cc_modules_ext, thirdorder_ext, secondorder_ext, cond_ext] ) def readme(): From 38871b81ec102538fe35e714abe76e8547768cf1 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 28 Jan 2022 09:45:31 +0100 Subject: [PATCH 003/204] Some changes to the parsing functions... --- FModules/third_order_cond.f90 | 15 ++++++------ cellconstructor/SSCHA_phonopy_parser.py | 32 +++++++++++++++++++++---- cellconstructor/ThermalConductivity.py | 29 ++++++++++++---------- 3 files changed, 51 insertions(+), 25 deletions(-) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 1df43120..70c54a88 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -24,13 +24,14 @@ subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) phase = CMPLX(Cos(arg),Sin(arg), kind=DP) ! - DO c = 1,3*nat - DO b = 1,3*nat - DO a = 1,3*nat - fc_interp(a,b,c) = fc_interp(a,b,c) + phase*fc(i_block,a,b,c) - ENDDO - ENDDO - ENDDO +! DO c = 1,3*nat +! DO b = 1,3*nat +! DO a = 1,3*nat +! fc_interp(a,b,c) = fc_interp(a,b,c) + phase*fc(i_block,a,b,c) +! ENDDO +! ENDDO +! ENDDO + fc_interp = fc_interp + phase*fc(i_block,:,:,:) ! END DO diff --git a/cellconstructor/SSCHA_phonopy_parser.py b/cellconstructor/SSCHA_phonopy_parser.py index c7d88a30..bc905016 100644 --- a/cellconstructor/SSCHA_phonopy_parser.py +++ b/cellconstructor/SSCHA_phonopy_parser.py @@ -178,19 +178,41 @@ def phonopy_fc3_to_tensor3(tc): permutations = tc.symmetry.atomic_permutations distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) - tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell, np.diag(tc.supercell_matrix)) + supercell_matrix = np.diag(tc.supercell_matrix).astype(int) + supercell_structure = unitcell.generate_supercell(supercell_matrix) +# print(supercell.coords) +# print(supercell_structure.coords) + atom_mapping = np.zeros(len(supercell.coords), dtype=int) + for iat in range(len(supercell.coords)): + found_atom = False + for jat in range(len(supercell.coords)): + if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5): + atom_mapping[iat] = jat + found_atom = True + break + if(not found_atom): + print('Could not find ' + str(iat + 1) + ' atom in the structure!') +# print(atom_mapping) + tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) for iat in range(sc_nat): + iat1 = atom_mapping[iat] for jat in range(sc_nat): + jat1 = atom_mapping[jat] for kat in range(sc_nat): + kat1 = atom_mapping[kat] for i in range(3): for j in range(3): for k in range(3): - aux_tensor[iat*3+i, jat*3+j, kat*3+k] = tc.fc3[iat,jat,kat,i,j,k] - - aux_tensor *= BOHR_TO_ANGSTROM**3/RY_TO_EV - tensor3.SetupFromTensor(aux_tensor) + aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] + d3 = np.asfortranarray(aux_tensor) + qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) + qe_sym.SetupFromSPGLIB() + qe_sym.ApplySymmetryToTensor3(d3) + d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV + tensor3.SetupFromTensor(d3) + np.save("d3_realspace_sym.npy", d3) return tensor3 diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 7b5d2935..89226f52 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -718,7 +718,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### - def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', isotope_scattering = True, isotopes = None, \ + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): """ @@ -729,6 +729,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = mode : Method to calculate lattice thermal conductivity: SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) + lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. ne : Number of frequency points to calculate phonon lineshapes on. Less anharmonic materials \ and lower temperatures will need more points. @@ -772,7 +773,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering=isotope_scattering, isotopes= isotopes) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -783,7 +784,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes) + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -813,7 +814,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_gk_offdiag(temperatures[itemp], write_lifetimes, energies) + kappa_diag, kappa_nondiag = self.calculate_kappa_gk_offdiag(temperatures[itemp], write_lineshapes, energies) kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): kappa_file.write(3*' ' + format(kappa_diag[icart][icart], '.12e')) @@ -1055,7 +1056,7 @@ def get_heat_capacity(self, temperature): ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None): + def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1068,7 +1069,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes) + self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1076,7 +1077,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte self.get_heat_capacity(temperature) if(write_lifetimes): - self.write_transport_properties_to_file(temperature) + self.write_transport_properties_to_file(temperature, isotope_scattering) kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) kappa += kappa.T @@ -1086,7 +1087,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte ################################################################################################################################## - def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None): + def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). @@ -1099,7 +1100,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_sca if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes) + self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1107,7 +1108,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_sca scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) # scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): - self.write_transport_properties_to_file(temperature) + self.write_transport_properties_to_file(temperature, isotope_scattering) kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) kappa_nondiag = np.zeros_like(kappa_diag) @@ -1786,7 +1787,7 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti ###################################################################################################################################### - def write_transport_properties_to_file(self, temperature, filename = 'Phonon_transport_properties_'): + def write_transport_properties_to_file(self, temperature, isotope_scattering, filename = 'Phonon_transport_properties_'): """ Write transport properties (frequencies, lifetimes, heat capacities) from SSCHA tensors to file. @@ -1798,7 +1799,8 @@ def write_transport_properties_to_file(self, temperature, filename = 'Phonon_tra outfile.write('# ' + format('Frequency (THz)', STR_FMT)) outfile.write(' ' + format('Lifetime (ps)', STR_FMT)) outfile.write(' ' + format('Freq. shift (THz)', STR_FMT)) - outfile.write(' ' + format('Isotope scatt. rate (THz)', STR_FMT)) + if(isotope_scattering): + outfile.write(' ' + format('Isotope scatt. rate (THz)', STR_FMT)) outfile.write(' ' + format('Mode heat capacity (J/K)', STR_FMT)) outfile.write('\n') for iqpt in range(self.nkpt): @@ -1806,7 +1808,8 @@ def write_transport_properties_to_file(self, temperature, filename = 'Phonon_tra outfile.write(3*' ' + format(self.freqs[iqpt, iband]*SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(self.lifetimes[lf_key][iqpt, iband]*1.0e12, '.12e')) outfile.write(3*' ' + format(self.freqs_shifts[lf_key][iqpt, iband]*SSCHA_TO_THZ, '.12e')) - outfile.write(3*' ' + format(self.scattering_rates_isotope[iqpt, iband]*SSCHA_TO_THZ, '.12e')) + if(isotope_scattering): + outfile.write(3*' ' + format(self.scattering_rates_isotope[iqpt, iband]*SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(self.cp[lf_key][iqpt, iband], '.12e')) outfile.write('\n') else: From aef7eabea4d65c7c2e1726b47e795d624e1b24bf Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 24 Feb 2022 16:14:38 +0100 Subject: [PATCH 004/204] Gaussian smearing --- FModules/get_lf.f90 | 220 +++++++++++++++++-------- FModules/third_order_cond.f90 | 94 ++++++++--- FModules/third_order_dynbubble.f90 | 2 +- FModules/third_order_interpol.f90 | 2 +- cellconstructor/ThermalConductivity.py | 49 +++--- 5 files changed, 252 insertions(+), 115 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 27c18078..f841d4a3 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -3,7 +3,7 @@ module get_lf contains subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & - fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & energies, ne, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, lineshapes) use omp_lib @@ -27,14 +27,17 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ real(kind=DP), intent(in) :: masses(nat), energies(ne) real(kind=DP), intent(in) :: smear(3*nat, nqpt), smear_id(3*nat, nqpt) real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian real(kind=DP), dimension(nirrqpt, 3*nat, ne), intent(out) :: lineshapes integer :: iqpt, i, jqpt, tot_qpt, prev_events, nthreads real(kind=DP), dimension(3) :: qpt real(kind=DP), dimension(3,3) :: kprim real(kind=DP), dimension(3*nat) :: w2_q, w_q - real(kind=DP), dimension(ne, 3*nat) :: lineshape - complex(kind=DP), dimension(ne, 3*nat) :: self_energy +! real(kind=DP), dimension(ne, 3*nat) :: lineshape + real(kind=DP), allocatable, dimension(:, :) :: lineshape + complex(kind=DP), allocatable, dimension(:, :) :: self_energy +! complex(kind=DP), dimension(ne, 3*nat) :: self_energy complex(kind=DP), dimension(3*nat,3*nat) :: pols_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w @@ -50,13 +53,17 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ if(nirrqpt <= nthreads) then parallelize = .False. endif +! print*, 'Got parallelize' - !$OMP PARALLEL DO IF(parallelize) & - !$OMP DEFAULT(SHARED) & + !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & - !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, lineshape) + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, lineshape) & + !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & + !$OMP nfc3, ne, fc3, r3_2, r3_3, smear, T, energies, parallelize, smear_id, lineshapes, & + !$OMP irrqgrid, qgrid, weights, gaussian) do iqpt = 1, nirrqpt - + allocate(lineshape(ne, 3*nat), self_energy(ne, 3*nat)) +! print*, iqpt w_neg_freqs = .False. print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' lineshape(:,:) = 0.0_DP @@ -68,7 +75,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ print*, 'Negative eigenvalue of dynamical matrix!' w_neg_freqs = .True. endif - +! print*, 'Interpolate frequency' if(.not. w_neg_freqs) then w_q = sqrt(w2_q) self_energy(:,:) = complex(0.0_DP, 0.0_DP) @@ -83,9 +90,10 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo +! print*, 'Got grids' call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, .not. parallelize, self_energy) + r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, .not. parallelize, gaussian, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) deallocate(curr_w) @@ -103,6 +111,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ else lineshapes(iqpt,:,:) = 0.0_DP endif + deallocate(lineshape, self_energy) enddo !$OMP END PARALLEL DO @@ -113,7 +122,7 @@ end subroutine calculate_lineshapes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & - fc3, r3_2, r3_3, rprim, pos, masses, smear, T, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, & nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) use omp_lib @@ -135,6 +144,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat, nqpt) real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies integer :: iqpt, i, tot_qpt, jqpt, prev_events, nthreads @@ -142,6 +152,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even real(kind=DP), dimension(3,3) :: kprim real(kind=DP), dimension(3*nat) :: w2_q, w_q complex(kind=DP), dimension(3*nat, 3*nat) :: self_energy +! complex(kind=DP), allocatable, dimension(:,:) :: self_energy complex(kind=DP), dimension(3*nat,3*nat) :: pols_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w @@ -192,7 +203,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even enddo call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, 3*nat, curr_grid, curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, w_q, .not. parallelize, self_energy) + r2_2, r3_2, r3_3, kprim, masses, smear, T, w_q, .not. parallelize, gaussian, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) @@ -219,7 +230,8 @@ end subroutine calculate_lifetimes_perturbative !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & - fc3, r3_2, r3_3, rprim, pos, masses, smear, T, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) + fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, nirrqpt, & + nqpt, nat, nfc2, nfc3, n_events, self_energies) use omp_lib implicit none @@ -240,6 +252,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat, nqpt) real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies integer :: iqpt, i, prev_events, jqpt, tot_qpt, nthreads @@ -279,6 +292,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 qpt = irrqgrid(:, iqpt) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + ! print*, 'Got frequencies' if(any(w2_q < 0.0_DP)) then print*, 'Negative eigenvalue of dynamical matrix! Exit!' w_neg_freqs = .True. @@ -300,7 +314,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 enddo call calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, nfc3, curr_grid, & curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear(:,iqpt), T, .not. parallelize, self_energy) + r2_2, r3_2, r3_3, kprim, masses, smear(:,iqpt), T, .not. parallelize, gaussian, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) @@ -328,7 +342,7 @@ end subroutine calculate_lifetimes subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, & qgrid, weights, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, parallelize, self_energy) + r2_2, r3_2, r3_3, kprim, masses, smear, T, parallelize, gaussian, self_energy) use omp_lib use third_order_cond @@ -348,29 +362,43 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc real(kind=DP), intent(in) :: smear(3*nat) real(kind=DP), intent(in) :: T complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) - logical, intent(in) :: is_q_gamma, parallelize + logical, intent(in) :: is_q_gamma, parallelize, gaussian complex(kind=DP), intent(out) :: self_energy(3*nat) integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 real(kind=DP), dimension(3) :: kpt, mkpt real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq + real(kind=DP), allocatable, dimension(:,:,:) :: mass_array real(kind=DP), dimension(3*nat, 3) :: freqs_array complex(kind=DP), dimension(3*nat) :: selfnrg complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq - complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols +! complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas self_energy = complex(0.0_DP, 0.0_DP) + allocate(mass_array(3*nat, 3*nat, 3*nat)) + do iat = 1, nat + do jat = 1, nat + do kat = 1, nat + mass_array(3*(kat - 1) + 1:3*kat, 3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) = & + 1.0_DP/sqrt(masses(iat)*masses(jat)*masses(kat)) + enddo + enddo + enddo + ! print*, 'Calculating self-energy!' !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, iat, jat, kat, freqs_array, if_gammas, is_k_neg, is_mk_mq_neg, selfnrg) & !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & - !$OMP r2_2, w_q, pols_q) & + !$OMP r2_2, w_q, pols_q, mass_array, gaussian) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt +! print*, jqpt + allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) is_k_neg = .False. is_mk_mq_neg = .False. ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) @@ -398,35 +426,44 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc w_k = sqrt(w2_k) w_mk_mq = sqrt(w2_mk_mq) - do iat = 1, nat - do i = 1, 3 - do jat = 1, nat - do j = 1, 3 - do kat = 1, nat - do k = 1, 3 - d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & - ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& - /sqrt(masses(iat)*masses(jat)*masses(kat)) - enddo - enddo - enddo - enddo - enddo - enddo +! do iat = 1, nat +! do i = 1, 3 +! do jat = 1, nat +! do j = 1, 3 +! do kat = 1, nat +! do k = 1, 3 +! d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & +! ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& +! /sqrt(masses(iat)*masses(jat)*masses(kat)) +! enddo +! enddo +! enddo +! enddo +! enddo +! enddo + + d3 = ifc3*mass_array + +! do i = 1, 3*nat +! do j = 1, 3*nat +! do k = 1, 3*nat +! do i1 = 1, 3*nat +! do j1 = 1, 3*nat +! do k1 = 1, 3*nat +! d3_pols(k,j,i) = d3_pols(k,j,i) + & +! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) +! enddo +! enddo +! enddo +! enddo +! enddo +! enddo do i = 1, 3*nat - do j = 1, 3*nat - do k = 1, 3*nat - do i1 = 1, 3*nat - do j1 = 1, 3*nat - do k1 = 1, 3*nat - d3_pols(k,j,i) = d3_pols(k,j,i) + & - d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) - enddo - enddo - enddo - enddo - enddo + do i1 = 1, 3*nat + d3_pols(:,:,i) = d3_pols(:,:,i) + & + matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + enddo enddo freqs_array(:, 1) = w_q @@ -439,9 +476,10 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc selfnrg = complex(0.0_DP,0.0_DP) call compute_perturb_selfnrg_single(smear,T, & - freqs_array, if_gammas, d3_pols, 3*nat, selfnrg) + freqs_array, if_gammas, d3_pols, 3*nat, gaussian, selfnrg) self_energy = self_energy + selfnrg*dble(weights(jqpt)) endif + deallocate(ifc3, d3, d3_pols) enddo !$OMP END PARALLEL DO @@ -451,7 +489,7 @@ end subroutine calculate_self_energy_LA subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, ne, qgrid, & weights, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, parallelize, self_energy) + r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, parallelize, gaussian, self_energy) use omp_lib use third_order_cond @@ -471,30 +509,53 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 real(kind=DP), intent(in) :: smear(3*nat), energies(ne) real(kind=DP), intent(in) :: T complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) - logical, intent(in) :: is_q_gamma, parallelize + logical, intent(in) :: is_q_gamma, parallelize, gaussian complex(kind=DP), intent(out) :: self_energy(ne, 3*nat) integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 - real(kind=DP), dimension(3) :: kpt, mkpt - real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq - real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq - real(kind=DP), dimension(3*nat, 3) :: freqs_array - complex(kind=DP), dimension(ne, 3*nat) :: selfnrg - complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq - complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols +! real(kind=DP), dimension(3) :: kpt, mkpt +! real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq +! real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq + real(kind=DP), allocatable, dimension(:) :: kpt, mkpt, w2_k, w2_mk_mq, w_k, w_mk_mq +! real(kind=DP), dimension(3*nat, 3) :: freqs_array + real(kind=DP), allocatable, dimension(:, :) :: freqs_array + real(kind=DP), allocatable, dimension(:, :, :) :: mass_array + !complex(kind=DP), dimension(ne, 3*nat) :: selfnrg + complex(kind=DP), allocatable, dimension(:, :) :: selfnrg +! complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq + complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas +! allocate(self_energy(ne, 3*nat)) self_energy = complex(0.0_DP, 0.0_DP) - +! allocate(mass_array(3*nat, 3*nat, 3*nat)) +! do iat = 1, nat +! do jat = 1, nat +! do kat = 1, nat +! mass_array(3*(kat - 1) + 1:3*kat, 3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) = & +! 1.0_DP/sqrt(masses(iat)*masses(jat)*masses(kat)) +! enddo +! enddo +! enddo + +! print*, 'Starting with self energy!' !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & - !$OMP T, energies, ne, w_q, pols_q,weights, kprim) & + !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt +! print*, jqpt + allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) + allocate(selfnrg(ne, 3*nat)) + allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) + allocate(kpt(3), mkpt(3)) + allocate(w2_k(3*nat), w2_mk_mq(3*nat), w_k(3*nat), w_mk_mq(3*nat)) + allocate(freqs_array(3*nat, 3)) is_k_neg = .False. is_mk_mq_neg = .False. ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) @@ -517,7 +578,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 print*, 'Negative eigenvalue of dynamical matrix! Exit!' is_mk_mq_neg = .True. endif - +! print*, 'Calculated frequencies! ' if(.not. is_k_neg .and. .not. is_mk_mq_neg) then w_k = sqrt(w2_k) w_mk_mq = sqrt(w2_mk_mq) @@ -537,21 +598,30 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 enddo enddo enddo +! d3 = ifc3*mass_array + +! do i = 1, 3*nat +! do j = 1, 3*nat +! do k = 1, 3*nat +! do i1 = 1, 3*nat +! do j1 = 1, 3*nat +! do k1 = 1, 3*nat +! d3_pols(k,j,i) = d3_pols(k,j,i) + & +! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) +! enddo +! enddo +! enddo +! enddo +! enddo +! enddo do i = 1, 3*nat - do j = 1, 3*nat - do k = 1, 3*nat - do i1 = 1, 3*nat - do j1 = 1, 3*nat - do k1 = 1, 3*nat - d3_pols(k,j,i) = d3_pols(k,j,i) + & - d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) - enddo - enddo - enddo - enddo - enddo + do i1 = 1, 3*nat + d3_pols(:,:,i) = d3_pols(:,:,i) + & + matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + enddo enddo +! print*, 'Got d3pols' freqs_array(:, 1) = w_q freqs_array(:, 2) = w_k @@ -562,13 +632,19 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 if_gammas(3) = is_mk_mq_gamma selfnrg = complex(0.0_DP,0.0_DP) - call compute_diag_dynamic_bubble_single(energies, smear, T, freqs_array, if_gammas, d3_pols, ne, 3*nat, selfnrg) - + call compute_diag_dynamic_bubble_single(energies, smear, T, freqs_array, if_gammas, & + d3_pols, ne, 3*nat, gaussian, selfnrg) +! print*, 'Got selfnrg!' self_energy = self_energy + selfnrg*dble(weights(jqpt)) + deallocate(ifc3, d3, d3_pols, selfnrg) + deallocate(pols_k, pols_mk_mq) + deallocate(kpt, mkpt) + deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) + deallocate(freqs_array) endif enddo !$OMP END PARALLEL DO - +! print*, 'Finished with self energy!' end subroutine calculate_self_energy_P !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 70c54a88..9e12c2ea 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -37,7 +37,7 @@ subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) end subroutine interpol_v2 - subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod,bubble) + subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, bubble) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -47,7 +47,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, real(kind=DP), intent(IN) :: sigma(n_mod) real(kind=DP), intent(IN) :: T real(kind=DP), intent(IN) :: freq(n_mod,3) - logical , intent(IN) :: is_gamma(3) + logical , intent(IN) :: is_gamma(3), gaussian complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 integer, intent(IN) :: n_mod, ne @@ -79,7 +79,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, ! DO mu = 1,n_mod ! - call Lambda_dynamic_single(ne,energies,sigma(mu),T,static_limit,q2(rho2,:),q3(rho3,:),Lambda_23) + call Lambda_dynamic_single(ne,energies,sigma(mu),T,static_limit,q2(rho2,:),q3(rho3,:), gaussian, Lambda_23) ! ! bubble(:,mu) = bubble(:,mu) + & @@ -92,7 +92,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, ! end subroutine compute_diag_dynamic_bubble_single - subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod,selfnrg) + subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussian, selfnrg) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -102,7 +102,7 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod,selfnrg real(kind=DP), intent(IN) :: sigma(n_mod) real(kind=DP), intent(IN) :: T real(kind=DP), intent(IN) :: freq(n_mod,3) - logical , intent(IN) :: is_gamma(3) + logical , intent(IN) :: is_gamma(3), gaussian complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 integer, intent(IN) :: n_mod @@ -132,7 +132,7 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod,selfnrg !if(abs(freq(mu, 1)**2 - (q2(rho2,1) + q3(rho3,1)**2)) < (3.0_DP*sigma(mu))**2 .or. & ! abs(freq(mu, 1)**2 - (q2(rho2,1) - q3(rho3,1)**2)) < (3.0_DP*sigma(mu))**2) then - call Lambda_dynamic_value_single(n_mod,freq(mu,1),sigma(mu),T,q2(rho2,:),q3(rho3,:),Lambda_23_freq) + call Lambda_dynamic_value_single(n_mod,freq(mu,1),sigma(mu),T,q2(rho2,:),q3(rho3,:), gaussian, Lambda_23_freq) ! selfnrg(mu) = selfnrg(mu) + CONJG(D3(mu,rho2,rho3))*Lambda_23_freq*D3(mu,rho2,rho3) @@ -182,17 +182,17 @@ subroutine compute_spectralf_diag_single(sigma,ener,d2_freq,selfnrg,nat,ne,spect ! end subroutine compute_spectralf_diag_single - subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,Lambda_out) + subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaussian,Lambda_out) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) complex(kind=DP), intent(out) :: Lambda_out(ne) integer, intent(in) :: ne - logical, intent(in) :: static_limit + logical, intent(in) :: static_limit, gaussian real(kind=DP), intent(in) :: energies(ne), sigma real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& - omega_M,omega_M2 + omega_M,omega_M2, re_p, im_p complex(kind=DP) :: reg, ctm_P, ctm_M, ctm(ne) integer :: ie ! @@ -231,28 +231,51 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,Lamb ! ctm = ctm_P - ctm_M ELSE - DO ie = 1,ne - reg = CMPLX(energies(ie), sigma, kind=DP)**2 - ctm_P = bose_P *omega_P/(omega_P2-reg) - ctm_M = bose_M *omega_M/(omega_M2-reg) - ctm(ie) = ctm_P - ctm_M - END DO + IF(gaussian) then + DO ie = 1,ne + if(omega_P2-energies(ie)**2 .ne. 0.0_DP) then + re_p = bose_P *omega_P/(omega_P2-energies(ie)**2) + im_p = bose_P *omega_P*gaussian_function(omega_P2-energies(ie)**2, sigma) + else + re_p = 0.0_DP + im_p = bose_P *omega_P*gaussian_function(omega_P2-energies(ie)**2, sigma) + endif + ctm_P = CMPLX(re_p, im_p, kind=DP) + if(omega_M2-energies(ie)**2 .ne. 0.0_DP) then + re_p = bose_M *omega_M/(omega_M2-energies(ie)**2) + im_p = bose_M *omega_M*gaussian_function(omega_M2-energies(ie)**2, sigma) + else + re_p = 0.0_DP + im_p = bose_M *omega_M*gaussian_function(omega_M2-energies(ie)**2, sigma) + endif + ctm_M = CMPLX(re_p, im_p, kind=DP) + ctm(ie) = ctm_P - ctm_M + ENDDO + ELSE + DO ie = 1,ne + reg = CMPLX(energies(ie), sigma, kind=DP)**2 + ctm_P = bose_P *omega_P/(omega_P2-reg) + ctm_M = bose_M *omega_M/(omega_M2-reg) + ctm(ie) = ctm_P - ctm_M + END DO + ENDIF END IF ! lambda_out=-ctm * w2m1*w3m1/4.0_dp ! end subroutine Lambda_dynamic_single - subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,Lambda_out) + subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,Lambda_out) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) complex(kind=DP), intent(out) :: Lambda_out integer, intent(in) :: n_mod + logical, intent(in) :: gaussian real(kind=DP), intent(in) :: sigma, value real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& - omega_M,omega_M2 + omega_M,omega_M2, re_p, im_p complex(kind=DP) :: reg, ctm_P, ctm_M, ctm integer :: ie, isigma,mu ! @@ -271,9 +294,28 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,Lambda_out) omega_M = w3-w2 omega_M2 = (omega_M)**2 ! - reg = CMPLX(value, sigma, kind=DP)**2 - ctm_P = bose_P *omega_P/(omega_P2-reg) - ctm_M = bose_M *omega_M/(omega_M2-reg) + if(gaussian) then + if(omega_P2-value**2 .ne. 0.0_DP) then + re_p = bose_P *omega_P/(omega_P2-value**2) + im_p = bose_P *omega_P*gaussian_function(omega_P2-value**2, sigma) + else + re_p = 0.0_DP + im_p = bose_P *omega_P*gaussian_function(omega_P2-value**2, sigma) + endif + ctm_P = CMPLX(re_p, im_p, kind=DP) + if(omega_M2-value**2 .ne. 0.0_DP) then + re_p = bose_M *omega_M/(omega_M2-value**2) + im_p = bose_M *omega_M*gaussian_function(omega_M2-value**2, sigma) + else + re_p = 0.0_DP + im_p = bose_M *omega_M*gaussian_function(omega_M2-value**2, sigma) + endif + ctm_M = CMPLX(re_p, im_p, kind=DP) + else + reg = CMPLX(value, sigma, kind=DP)**2 + ctm_P = bose_P *omega_P/(omega_P2-reg) + ctm_M = bose_M *omega_M/(omega_M2-reg) + endif ctm = ctm_P - ctm_M ! lambda_out=-ctm * w2m1*w3m1/4.0_dp @@ -338,4 +380,16 @@ FUNCTION df_bose(freq,T) ! d bose(freq,T)/d freq ! END FUNCTION df_bose + FUNCTION gaussian_function(x,sigma) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + REAL(DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875_DP + ! + REAL(DP) :: gaussian_function + REAL(DP), intent(in) :: x, sigma + + gaussian_function = exp(-0.5_DP*x**2/sigma**2)/sqrt(2.0_DP*sigma**2/PI) + + END FUNCTION + end module diff --git a/FModules/third_order_dynbubble.f90 b/FModules/third_order_dynbubble.f90 index 191ba1a3..b2677c4e 100644 --- a/FModules/third_order_dynbubble.f90 +++ b/FModules/third_order_dynbubble.f90 @@ -205,7 +205,6 @@ subroutine compute_diag_dynamic_bubble(ne,energies,nsig,sigma,T,freq,is_gamma,D3 end subroutine compute_diag_dynamic_bubble ! ! -! subroutine compute_perturb_selfnrg(nsig,sigma,T,freq,is_gamma,D3,n_mod,selfnrg) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -513,6 +512,7 @@ subroutine Lambda_dynamic_value(n_mod,value,nsigma,sigma,T,w_q2,w_q3,Lambda_out) ! end subroutine Lambda_dynamic_value ! +! ! ======================== accessory routines ======================================== ! SUBROUTINE bose_freq(T, n_mod, freq, bose) diff --git a/FModules/third_order_interpol.f90 b/FModules/third_order_interpol.f90 index 3ce37d63..f9b61a7e 100644 --- a/FModules/third_order_interpol.f90 +++ b/FModules/third_order_interpol.f90 @@ -35,4 +35,4 @@ subroutine interpol(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) END DO end subroutine interpol ! -end module third_order_interpol \ No newline at end of file +end module third_order_interpol diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 89226f52..3f7ef54b 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -718,7 +718,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### - def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): """ @@ -729,6 +729,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = mode : Method to calculate lattice thermal conductivity: SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) + gauss_smearing : If true will use the Gaussian function to satisfy energy conservation insted of Lorentzian lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. ne : Number of frequency points to calculate phonon lineshapes on. Less anharmonic materials \ @@ -773,7 +774,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -784,7 +785,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, isotope_scattering, isotopes, lf_method = lf_method) + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -804,7 +805,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega if(not self.off_diag): - kappa = self.calculate_kappa_gk_diag(temperatures[itemp], write_lineshapes, energies) + kappa = self.calculate_kappa_gk_diag(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): kappa_file.write(3*' ' + format(kappa[icart][icart], '.12e')) @@ -814,7 +815,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_gk_offdiag(temperatures[itemp], write_lineshapes, energies) + kappa_diag, kappa_nondiag = self.calculate_kappa_gk_offdiag(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): kappa_file.write(3*' ' + format(kappa_diag[icart][icart], '.12e')) @@ -839,7 +840,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = ################################################################################################################################## - def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies): + def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss_smearing = False): """ @@ -855,7 +856,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies): if(ls_key in self.lineshapes.keys()): print('Lineshapes for this temperature have already been calculated. Continuing ...') else: - self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran') + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) kappa = 0.0 exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 @@ -871,7 +872,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies): ################################################################################################################################## - def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies): + def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, gauss_smearing = False): """ Calculation of lattice thermal conductivity using Green-Kubo method if both diagonal and off-diagonal group velocities are available. @@ -886,7 +887,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies): if(ls_key in self.lineshapes.keys()): print('Lineshapes for this temperature have already been calculated. Continuing ...') else: - self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran') + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) kappa_diag = np.zeros((3,3)) exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 @@ -915,7 +916,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies): ################################################################################################################################# - def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran'): + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = False): """ Calculate phonon lineshapes in full Brillouin zone. @@ -985,7 +986,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, energies, len(energies), self.nirrkpt, \ + self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, gauss_smearing, energies, len(energies), self.nirrkpt, \ self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): jkpt = self.qstar_list[ikpt][0] @@ -1056,7 +1057,7 @@ def get_heat_capacity(self, temperature): ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1069,7 +1070,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1087,7 +1088,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, isotope_scatte ################################################################################################################################## - def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). @@ -1100,7 +1101,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_sca if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1117,8 +1118,9 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, isotope_sca if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband + 1, self.nband): if(self.freqs[iqpt, jband] != 0.0): + vel_fact = np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ - (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])/\ + (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*vel_fact**2/\ self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) kappa_nondiag = 2.0*kappa_nondiag*np.sqrt(AU*MASS_RY_TO_UMA*BOHR_TO_ANGSTROM**2*1.0e-20/RY_TO_J) @@ -1201,12 +1203,15 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): #################################################################################################################################### - def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): + def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): """ Get phonon lifetimes in the full Brillouin zone at temperature. - method : Method by which phonon lifetimes are to be calculated. + gauss_smearing : If true will use the Gaussian function to satisfy conservation laws, instead Lorentzian (only fortran) + isotope_scattering : If true will calculate the scattering rates due to isotope concentration + isotopes : The relative concentration and masses of isotopes + method : Method by which phonon lifetimes are to be calculated. fortran/python : practically means only how many times fortran routine is being called. "fortran" much faster. LA/P : Approximation used for the lifetimes. LA means lorentzian approximation (gives the value for which Lorentzian function with that value would \ @@ -1271,7 +1276,7 @@ def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, elif(method == 'fortran-LA'): - print('Calculating lifetimes in fortran!') + print('Calculating lifetimes in fortran, lorentzian approximation!') irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) for ikpt in range(self.nirrkpt): @@ -1298,7 +1303,7 @@ def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, selfengs = thermal_conductivity.get_lf.calculate_lifetimes(irrqgrid, scattering_grids, weights, scattering_events, \ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ + gauss_smearing, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ num_scattering_events) for ikpt in range(self.nirrkpt): @@ -1311,6 +1316,7 @@ def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, elif(method == 'fortran-P'): + print('Calculating lifetimes in fortran, perturbative approximation!') irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) for ikpt in range(self.nirrkpt): @@ -1337,7 +1343,7 @@ def get_lifetimes(self, temperature, isotope_scattering = True, isotopes = None, selfengs = thermal_conductivity.get_lf.calculate_lifetimes_perturbative(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + gauss_smearing, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): for iqpt in range(len(self.qstar_list[ikpt])): @@ -1373,6 +1379,7 @@ def setup_harmonic_properties(self, smearing_value = 0.00005): #self.check_group_velocities() #self.check_frequencies() self.setup_smearings(smearing_value) + print('Harmonic properties are set up!') ################################################################################################################################# From ee0ab52b2104d04abcbba75d7f9045717fad78b3 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 20 Apr 2022 15:50:03 +0200 Subject: [PATCH 005/204] Correctly added gaussian approximation for the phonon-phonon interaction --- FModules/third_order_cond.f90 | 154 ++++++++++++++++++++----- cellconstructor/ThermalConductivity.py | 102 ++++++++++++---- 2 files changed, 208 insertions(+), 48 deletions(-) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 9e12c2ea..9f197350 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -17,7 +17,7 @@ subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) COMPLEX(DP) :: phase INTEGER :: i_block, a,b,c ! - fc_interp = (0._dp, 0._dp) + fc_interp = cmplx(0._dp, 0._dp) ! DO i_block = 1, n_blocks @@ -37,6 +37,44 @@ subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) end subroutine interpol_v2 + subroutine interpol_v3(fc,pos,R2,R3,q1,q2,q3,fc_interp,n_blocks,nat) + IMPLICIT NONE + ! + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + INTEGER, intent(IN) :: nat, n_blocks + REAL(DP), intent(IN) :: R2(3,n_blocks),R3(3,n_blocks), pos(3,nat) + REAL(DP),INTENT(in) :: fc(n_blocks,3*nat,3*nat,3*nat) + REAL(DP),INTENT(in) :: q2(3), q3(3), q1(3) + COMPLEX(DP),INTENT(out) :: fc_interp(3*nat, 3*nat, 3*nat) + ! + REAL(DP), parameter :: tpi=3.14159265358979323846_DP*2.0_DP + REAL(DP) :: arg, arg2 + COMPLEX(DP) :: phase, extra_phase + INTEGER :: i_block, a,b,c, at1, at2, at3 + ! + fc_interp = (0._dp, 0._dp) + ! + + DO i_block = 1, n_blocks + arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) + ! + DO c = 1,3*nat + DO b = 1,3*nat + DO a = 1,3*nat + at1 = ceiling(dble(a)/3.0_DP) + at2 = ceiling(dble(b)/3.0_DP) + at3 = ceiling(dble(c)/3.0_DP) + arg2 = tpi * (dot_product(pos(:,at1), q1) + dot_product(pos(:,at2), q2) + dot_product(pos(:,at3), q3)) + phase = CMPLX(Cos(arg2 + arg),Sin(arg2 + arg), kind=DP) + fc_interp(a,b,c) = fc_interp(a,b,c) + phase*fc(i_block,a,b,c) + ENDDO + ENDDO + ENDDO + ! + END DO + + end subroutine interpol_v3 + subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, bubble) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -55,7 +93,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, complex(kind=DP) :: Lambda_23(ne) integer :: i, rho2, rho3, nu,mu logical, parameter :: static_limit = .false. - + q2(:,1)=freq(:,2) q3(:,1)=freq(:,3) @@ -92,7 +130,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, ! end subroutine compute_diag_dynamic_bubble_single - subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussian, selfnrg) + subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussian, classical, selfnrg) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -102,14 +140,14 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussi real(kind=DP), intent(IN) :: sigma(n_mod) real(kind=DP), intent(IN) :: T real(kind=DP), intent(IN) :: freq(n_mod,3) - logical , intent(IN) :: is_gamma(3), gaussian + logical , intent(IN) :: is_gamma(3), gaussian, classical complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 integer, intent(IN) :: n_mod real(kind=DP) :: q2(n_mod,3),q3(n_mod,3) complex(kind=DP) :: Lambda_23_freq integer :: i, rho2, rho3, nu,mu - + q2(:,1)=freq(:,2) q3(:,1)=freq(:,3) @@ -120,8 +158,13 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussi if (.not. is_gamma(3) .or. i > 3) q3(i,2)=1.0_dp/freq(i,3) end do - call bose_freq(T, n_mod, freq(:,2), q2(:,3)) - call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + if(classical) then + call eq_freq(T, n_mod, freq(:,2), q2(:,3)) + call eq_freq(T, n_mod, freq(:,3), q3(:,3)) + else + call bose_freq(T, n_mod, freq(:,2), q2(:,3)) + call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + endif selfnrg=(0.0_dp,0.0_dp) @@ -192,10 +235,10 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& - omega_M,omega_M2, re_p, im_p + omega_M,omega_M2, re_p, im_p, re_p1, im_p1 complex(kind=DP) :: reg, ctm_P, ctm_M, ctm(ne) integer :: ie - ! + ! w2=w_q2(1) w3=w_q3(1) w2m1=w_q2(2) @@ -235,20 +278,30 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus DO ie = 1,ne if(omega_P2-energies(ie)**2 .ne. 0.0_DP) then re_p = bose_P *omega_P/(omega_P2-energies(ie)**2) - im_p = bose_P *omega_P*gaussian_function(omega_P2-energies(ie)**2, sigma) + im_p = bose_P *gaussian_function(omega_P-energies(ie), sigma) else re_p = 0.0_DP - im_p = bose_P *omega_P*gaussian_function(omega_P2-energies(ie)**2, sigma) + im_p = bose_P *gaussian_function(omega_P-energies(ie), sigma) endif ctm_P = CMPLX(re_p, im_p, kind=DP) if(omega_M2-energies(ie)**2 .ne. 0.0_DP) then - re_p = bose_M *omega_M/(omega_M2-energies(ie)**2) - im_p = bose_M *omega_M*gaussian_function(omega_M2-energies(ie)**2, sigma) + !if(omega_M > 0.0_DP) then + re_p = bose_M *omega_M/(omega_M2-energies(ie)**2) + im_p = bose_M *gaussian_function(omega_M-energies(ie), sigma) + !else + re_p1 = bose_M *omega_M/(omega_M2-energies(ie)**2) + im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-energies(ie), sigma) + !endif else - re_p = 0.0_DP - im_p = bose_M *omega_M*gaussian_function(omega_M2-energies(ie)**2, sigma) + !if(omega_M > 0.0_DP) then + re_p = 0.0_DP + im_p = bose_M *gaussian_function(omega_M-energies(ie), sigma) + !else + re_p1 = 0.0_DP + im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-energies(ie), sigma) + !endif endif - ctm_M = CMPLX(re_p, im_p, kind=DP) + ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) ctm(ie) = ctm_P - ctm_M ENDDO ELSE @@ -261,7 +314,12 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus ENDIF END IF ! - lambda_out=-ctm * w2m1*w3m1/4.0_dp + IF(gaussian) then + !lambda_out=-ctm/16.0_DP*sqrt(w2m1*w3m1) + lambda_out=-ctm * w2m1*w3m1/8.0_dp + ELSE + lambda_out=-ctm * w2m1*w3m1/4.0_dp + ENDIF ! end subroutine Lambda_dynamic_single @@ -275,7 +333,7 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La real(kind=DP), intent(in) :: T,w_q2(3),w_q3(3) real(kind=DP) :: w2,w3,n2,n3,w2m1,w3m1 real(kind=DP) :: bose_P, bose_M, omega_P, omega_P2 ,& - omega_M,omega_M2, re_p, im_p + omega_M,omega_M2, re_p, im_p, re_p1, im_p1 complex(kind=DP) :: reg, ctm_P, ctm_M, ctm integer :: ie, isigma,mu ! @@ -297,28 +355,44 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La if(gaussian) then if(omega_P2-value**2 .ne. 0.0_DP) then re_p = bose_P *omega_P/(omega_P2-value**2) - im_p = bose_P *omega_P*gaussian_function(omega_P2-value**2, sigma) + im_p = bose_P *gaussian_function(omega_P-value, sigma) else re_p = 0.0_DP - im_p = bose_P *omega_P*gaussian_function(omega_P2-value**2, sigma) + im_p = bose_P *gaussian_function(omega_P-value, sigma) endif ctm_P = CMPLX(re_p, im_p, kind=DP) if(omega_M2-value**2 .ne. 0.0_DP) then - re_p = bose_M *omega_M/(omega_M2-value**2) - im_p = bose_M *omega_M*gaussian_function(omega_M2-value**2, sigma) + !if(omega_M > 0.0_DP) then + re_p = bose_M *omega_M/(omega_M2-value**2) + im_p = bose_M *gaussian_function(omega_M-value, sigma) + !else + re_p1 = bose_M *omega_M/(omega_M2-value**2) + im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-value, sigma) + !endif else - re_p = 0.0_DP - im_p = bose_M *omega_M*gaussian_function(omega_M2-value**2, sigma) + !if(omega_M > 0.0_DP) then + re_p = 0.0_DP + im_p = bose_M *gaussian_function(omega_M-value, sigma) + !else + re_p1 = 0.0_DP + im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-value, sigma) + !endif endif - ctm_M = CMPLX(re_p, im_p, kind=DP) + ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) else reg = CMPLX(value, sigma, kind=DP)**2 ctm_P = bose_P *omega_P/(omega_P2-reg) ctm_M = bose_M *omega_M/(omega_M2-reg) endif - ctm = ctm_P - ctm_M ! - lambda_out=-ctm * w2m1*w3m1/4.0_dp + IF(gaussian) then + ctm = ctm_P - ctm_M + lambda_out=-ctm/8.0_DP* w2m1*w3m1 + !lambda_out=-ctm * w2m1*w3m1/4.0_dp + ELSE + ctm = ctm_P - ctm_M + lambda_out=-ctm * w2m1*w3m1/4.0_dp + ENDIF ! end subroutine Lambda_dynamic_value_single ! @@ -346,16 +420,40 @@ SUBROUTINE bose_freq(T, n_mod, freq, bose) ENDWHERE ! END SUBROUTINE bose_freq + ! + SUBROUTINE eq_freq(T, n_mod, freq, bose) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + REAL(DP), parameter :: K_BOLTZMANN_RY= 1.3806504E-23_DP /(4.35974394E-18_DP/2) !K_BOLTZMANN_SI / (HARTREE_SI/2) + ! + REAL(DP),INTENT(out) :: bose(n_mod) + ! + REAL(DP),INTENT(in) :: T + INTEGER,INTENT(in) :: n_mod + REAL(DP),INTENT(in) :: freq(n_mod) + ! + IF(T==0._dp)THEN + bose = 0._dp + RETURN + ENDIF + ! + WHERE (freq > 0._dp) + bose = (T*K_BOLTZMANN_RY)/freq + ELSEWHERE + bose = 0._dp + ENDWHERE + ! + END SUBROUTINE eq_freq ! ELEMENTAL FUNCTION f_bose(freq,T) ! bose (freq,T) IMPLICIT NONE INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + REAL(DP), parameter :: K_BOLTZMANN_RY= 1.3806504E-23_DP /(4.35974394E-18_DP/2) !K_BOLTZMANN_SI / (HARTREE_SI/2) ! REAL(DP) :: f_bose ! REAL(DP),INTENT(in) :: freq,T ! - REAL(DP), parameter :: K_BOLTZMANN_RY= 1.3806504E-23_DP /(4.35974394E-18_DP/2) !K_BOLTZMANN_SI / (HARTREE_SI/2) REAL(DP) :: Tm1 ! Tm1 = 1/(T*K_BOLTZMANN_RY) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 3f7ef54b..f17dd65e 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -167,7 +167,7 @@ def gaussian(x, x0, sigma): #################################################################################################################################### -def heat_capacity(freqs, temperature, hbar1, kb1): +def heat_capacity(freqs, temperature, hbar1, kb1, cp_mode = 'quantum'): """ @@ -177,14 +177,18 @@ def heat_capacity(freqs, temperature, hbar1, kb1): temperature - temperature at which to calculate heat capacity hbar1 - reduced Planck's constant in appropriate units kb1 - Boltzmann constant in appropriate units + mode - how to treat phonon populations, quantum - bose einstein, classical - kbT/hbar\omega """ - - if(freqs > 0.0): - x1 = np.exp(hbar1*freqs/kb1/temperature) - return (hbar1*freqs)**2*x1/kb1/temperature**2/(x1-1.0)**2 - else: - return 0.0 + if(cp_mode == 'quantum'): + if(freqs > 0.0): + x1 = np.exp(hbar1*freqs/kb1/temperature) + return (hbar1*freqs)**2*x1/kb1/temperature**2/(x1-1.0)**2 + else: + return 0.0 + elif(cp_mode == 'classical'): + return kb1 + ##################################################################################################################################### @@ -202,7 +206,9 @@ def same_vector(vec1, vec2, cell): invcell = np.linalg.inv(cell) rvec1 = np.dot(vec1, invcell) + rvec1 -= np.rint(rvec1) rvec2 = np.dot(vec2, invcell) + rvec2 -= np.rint(rvec2) res = False if(np.linalg.norm(rvec1 - rvec2) < 1.0e-4): @@ -246,6 +252,51 @@ def check_degeneracy(x, tol): degs.append(curr_degs) return degs +def stupid_centering_fc3(tensor3): + + rprim = tensor3.unitcell_structure.unit_cell.copy() + print(rprim) + positions = tensor3.unitcell_structure.coords.copy() + xpos = np.dot(positions, np.linalg.inv(rprim)) + natom = len(xpos) + print(xpos) + symbols = tensor3.unitcell_structure.atoms + unique_symbols = np.unique(symbols) + unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 + numbers = np.zeros(len(symbols)) + for iat in range(len(symbols)): + for jat in range(len(unique_symbols)): + if(symbols[iat] == unique_symbols[jat]): + numbers[iat] = unique_numbers[jat] + print(numbers) + cell = (rprim, xpos, numbers) + + if(tensor3.n_R == tensor3.n_sup**2): + print('Not previously centered. Stupid centering!') + for ir in range(tensor3.n_R): + xvec2 = tensor3.x_r_vector2[:,ir] + xvec3 = tensor3.x_r_vector3[:,ir] + xvec2_old = xvec2.copy() + xvec3_old = xvec3.copy() + rvec2 = np.dot(xvec2, cell[0]) + rvec3 = np.dot(xvec3, cell[0]) + for i in range(3): + if(xvec2[i] > float(tensor3.supercell_size[i])/2.0): + xvec2[i] -= tensor3.supercell_size[i] + elif(xvec2[i] <= -1.0*float(tensor3.supercell_size[i])/2.0): + xvec2[i] += tensor3.supercell_size[i] + if(xvec3[i] > float(tensor3.supercell_size[i])/2.0): + xvec3[i] -= tensor3.supercell_size[i] + elif(xvec3[i] <= -1.0*float(tensor3.supercell_size[i])/2.0): + xvec3[i] += tensor3.supercell_size[i] + tensor3.x_r_vector2[:,ir] = xvec2 + tensor3.x_r_vector3[:,ir] = xvec3 + tensor3.r_vector2[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector2[:,ir]) + tensor3.r_vector3[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector3[:,ir]) + else: + print('Probably already centered! Nothing to do!') + return tensor3 + class ThermalConductivity: def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearing_type = 'adaptive', off_diag = False): @@ -718,7 +769,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### - def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', cp_mode = 'quantum', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): """ @@ -729,6 +780,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = mode : Method to calculate lattice thermal conductivity: SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) + cp_mode : How to handle phonon populations (quantum or classical) gauss_smearing : If true will use the Gaussian function to satisfy energy conservation insted of Lorentzian lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. @@ -774,7 +826,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, cp_mode = cp_mode, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -785,7 +837,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, cp_mode = cp_mode, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -960,6 +1012,9 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) if(not self.set_up_scattering_grids): + #if(gauss_smearing): + # self.set_scattering_grids_simple() + #else: self.set_scattering_grids_fortran() irrqgrid = np.zeros((3, self.nirrkpt)) @@ -1040,7 +1095,7 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies): ################################################################################################################################## - def get_heat_capacity(self, temperature): + def get_heat_capacity(self, temperature, cp_mode = 'quantum'): """ Calculate phonon mode heat capacity at temperature. @@ -1051,13 +1106,13 @@ def get_heat_capacity(self, temperature): cp = np.zeros_like(self.freqs) for ikpt in range(self.nkpt): for iband in range(self.nband): - cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB) + cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = cp_mode) self.cp[cp_key] = cp ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_diag(self, temperature, write_lifetimes, cp_mode = 'quantum', gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1070,12 +1125,12 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method, cp_mode = cp_mode) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon mode heat capacities for ' + format(temperature, '.1f') + ' K temperature!') - self.get_heat_capacity(temperature) + self.get_heat_capacity(temperature, cp_mode = cp_mode) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) @@ -1088,7 +1143,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing ################################################################################################################################## - def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, cp_mode = 'quantum', gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). @@ -1101,11 +1156,11 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smear if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method, cp_mode = cp_mode) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: - self.get_heat_capacity(temperature) + self.get_heat_capacity(temperature, cp_mode = cp_mode) scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) # scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): @@ -1203,7 +1258,7 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): #################################################################################################################################### - def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): + def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA', cp_mode = 'quantum'): """ Get phonon lifetimes in the full Brillouin zone at temperature. @@ -1220,6 +1275,9 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering """ if(not self.set_up_scattering_grids): + #if(gauss_smearing): + # self.set_scattering_grids_simple() + #else: self.set_scattering_grids_fortran() if(isotope_scattering and not self.got_scattering_rates_isotopes): @@ -1300,10 +1358,14 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering scattering_grids = np.asfortranarray(scattering_grids).T weights = np.asfortranarray(weights) + classical = False + if(cp_mode == 'classical'): + classical = True + selfengs = thermal_conductivity.get_lf.calculate_lifetimes(irrqgrid, scattering_grids, weights, scattering_events, \ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - gauss_smearing, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ + gauss_smearing, classical, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ num_scattering_events) for ikpt in range(self.nirrkpt): From 221aea3ca4f488c6577a152f388f65f1a4b076b2 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 20 Apr 2022 15:53:54 +0200 Subject: [PATCH 006/204] Add classical approximation for lifetimes --- FModules/get_lf.f90 | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index f841d4a3..9dd39234 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -158,7 +158,6 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize - self_energies(:,:) = 0.0_DP kprim = transpose(inv(rprim)) print*, 'Calculating phonon lifetimes in perturbative regime!' @@ -230,7 +229,7 @@ end subroutine calculate_lifetimes_perturbative !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & - fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, nirrqpt, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, classical, nirrqpt, & nqpt, nat, nfc2, nfc3, n_events, self_energies) use omp_lib @@ -252,7 +251,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat, nqpt) real(kind=DP), intent(in) :: T - logical, intent(in) :: gaussian + logical, intent(in) :: gaussian, classical complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies integer :: iqpt, i, prev_events, jqpt, tot_qpt, nthreads @@ -313,8 +312,8 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 curr_w(jqpt) = weights(prev_events + jqpt) enddo call calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, nfc3, curr_grid, & - curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear(:,iqpt), T, .not. parallelize, gaussian, self_energy) + curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, & + masses, smear(:,iqpt), T, .not. parallelize, gaussian, classical, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) @@ -342,7 +341,7 @@ end subroutine calculate_lifetimes subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, & qgrid, weights, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, parallelize, gaussian, self_energy) + r2_2, r3_2, r3_3, pos, kprim, masses, smear, T, parallelize, gaussian, classical, self_energy) use omp_lib use third_order_cond @@ -356,13 +355,13 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc real(kind=DP), intent(in) :: w_q(3*nat), qpt(3), qgrid(3,nqpt) real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat), kprim(3,3) real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) - real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r2_2(3, nfc2), pos(3, nat) real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat) real(kind=DP), intent(in) :: T complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) - logical, intent(in) :: is_q_gamma, parallelize, gaussian + logical, intent(in) :: is_q_gamma, parallelize, gaussian, classical complex(kind=DP), intent(out) :: self_energy(3*nat) integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 @@ -393,8 +392,8 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, iat, jat, kat, freqs_array, if_gammas, is_k_neg, is_mk_mq_neg, selfnrg) & - !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & - !$OMP r2_2, w_q, pols_q, mass_array, gaussian) & + !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, pos, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & + !$OMP r2_2, w_q, pols_q, mass_array, gaussian, classical) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt ! print*, jqpt @@ -408,6 +407,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt call interpol_v2(fc3, r3_2, r3_3, kpt, mkpt, ifc3, nfc3, nat) + ! call interpol_v3(fc3, pos, r3_2, r3_3, qpt, kpt, mkpt, ifc3, nfc3, nat) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) @@ -476,7 +476,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc selfnrg = complex(0.0_DP,0.0_DP) call compute_perturb_selfnrg_single(smear,T, & - freqs_array, if_gammas, d3_pols, 3*nat, gaussian, selfnrg) + freqs_array, if_gammas, d3_pols, 3*nat, gaussian, classical, selfnrg) self_energy = self_energy + selfnrg*dble(weights(jqpt)) endif deallocate(ifc3, d3, d3_pols) @@ -528,6 +528,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas + ! allocate(self_energy(ne, 3*nat)) self_energy = complex(0.0_DP, 0.0_DP) ! allocate(mass_array(3*nat, 3*nat, 3*nat)) From 557e64cbba5058f313f6fbedf06107ffda7c0b17 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 10 May 2022 10:56:26 +0200 Subject: [PATCH 007/204] Added new functions with multiprocess "get_static_correction_along_path_multiprocessing" --- cellconstructor/Spectral.py | 1299 ++++++++++++++++++++--------------- 1 file changed, 744 insertions(+), 555 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 8949cd27..1fb1cd90 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1,8 +1,8 @@ from __future__ import print_function from __future__ import division -import cellconstructor.Phonons as Phonons -import cellconstructor.Methods as Methods +import cellconstructor.Phonons as Phonons +import cellconstructor.Methods as Methods import cellconstructor.symmetries as symmetries import numpy as np @@ -15,16 +15,17 @@ import cellconstructor as CC import cellconstructor.symmetries import cellconstructor.Settings -import cellconstructor.Methods as Methods +import cellconstructor.Methods as Methods import time -from cellconstructor.Settings import ParallelPrint as print - +from cellconstructor.Settings import ParallelPrint as print +from multiprocessing import Pool +import itertool """ -In this module we compute the Spectral function +In this module we compute the Spectral function using the interpolation on the third order force constant matrix """ @@ -34,11 +35,11 @@ def get_static_bubble(tensor2, tensor3, k_grid, q, T , verbose = False): """ COMPUTE THE STATIC BUBBLE ========================= - + This function computes the static bubble for a given dynamical matrix, the third order force constant tensor by using the Fourier interpolation - - + + Parameters ---------- tensor2 : ForceTensor.Tensor2() @@ -53,7 +54,7 @@ def get_static_bubble(tensor2, tensor3, k_grid, q, T , verbose = False): The tempearture of the calculation (default 0 K) verbose : bool If true print debugging and timing info - + Results ------- dynq : ndarray( size = (3*nat, 3*nat), dtype = np.complex128) @@ -61,28 +62,28 @@ def get_static_bubble(tensor2, tensor3, k_grid, q, T , verbose = False): """ structure = tensor2.unitcell_structure - - # Get the integration points + + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = tensor2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -90,36 +91,36 @@ def get_static_bubble(tensor2, tensor3, k_grid, q, T , verbose = False): print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) - + w_q=np.sqrt(w2_q) + # Allocate the memory for the bubble n_mod=3*structure.N_atoms tmp_bubble = np.zeros((n_mod, n_mod), dtype = np.complex128, order = "F") - + def compute_k(k): - + # phi3 in q, k, -q-k - t1 = time.time() + t1 = time.time() phi3=tensor3.Interpolate(k,-q-k, asr = False) t2 = time.time() - + # phi2 in k - phi2_k = tensor2.Interpolate(k, asr = False) + phi2_k = tensor2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = tensor2.Interpolate(-q-k, asr = False) t3 = time.time() - + # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) @@ -131,7 +132,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_k=np.sqrt(w2_k) - + if is_mq_mk_gamma: w2_mq_mk[0:3]=0.0 if not (w2_mq_mk >= 0.0).all(): @@ -140,7 +141,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) @@ -149,44 +150,44 @@ def compute_k(k): d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) d3_pols = np.einsum("ibc, bj -> ijc", d3_pols, pols_k) d3_pols = np.einsum("ijc, ck -> ijk", d3_pols, pols_mq_mk) - + t4 = time.time() - + # Fortran duty ==== tmp_bubble = thirdorder.third_order_bubble.compute_static_bubble(T,np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), d3_pols, - n_mod=n_mod) - + n_mod=n_mod) + t5 = time.time() - + if verbose: print("Time to interpolate the third order: {} s".format(t2 - t1)) print("Time to interpolate the second order: {} s".format(t3 - t2)) print("Time to transform the tensors: {} s".format(t4 - t3)) print("Time to compute the bubble: {} s".format(t5 - t4)) - + return tmp_bubble - - + + CC.Settings.SetupParallel() tmp_bubble = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") # divide by the N_k factor - tmp_bubble /= len(k_points) - # bubble in cartesian + tmp_bubble /= len(k_points) + # bubble in cartesian #d_bubble = np.einsum("ab, ia, jb -> ij", tmp_bubble, pols_q, np.conj(pols_q)) - + d_bubble = np.einsum("ij, ai -> aj", tmp_bubble, pols_q) d_bubble = np.einsum("aj, bj -> ab", d_bubble, np.conj(pols_q)) # add to the SSCHA dynamical matrix in q - d2_final_q = d2_q + d_bubble + d2_final_q = d2_q + d_bubble # and mutiply by the masses ( -> FC) phi2_final_q = d2_final_q * mm_mat - + return phi2_final_q, w_q - + def get_static_correction(dyn, tensor3, k_grid, list_of_q_points, T): """ Get the dyn + static bubble correction for the list of q points @@ -197,7 +198,7 @@ def get_static_correction(dyn, tensor3, k_grid, list_of_q_points, T): tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) tensor2.Center() - + for iq, q in enumerate(list_of_q_points): dynq[iq, :, :] = get_static_bubble(tensor2, tensor3, k_grid, np.array(q),T)[0] @@ -215,7 +216,7 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): tensor3 : Tensor3() The third order force constant matrix T : float - The temperature + The temperature new_supercell : list(len = 3) The new supercell on which you want to interpolate the results k_grid : list(len = 3) @@ -232,7 +233,7 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): q_tot = symmetries.GetQGrid(dyn.structure.unit_cell, new_supercell) # Prepare the q points for the new dynamical matrix - new_dyn.q_tot = q_tot + new_dyn.q_tot = q_tot # For now we fill all the q point in the same star (we will adjust them later) new_dyn.q_stars = [ [x.copy() for x in q_tot] ] @@ -248,94 +249,94 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): return new_dyn -def get_static_correction_along_path(dyn, - tensor3, +def get_static_correction_along_path(dyn, + tensor3, k_grid, T=0, - q_path=[0.0,0.0,0.0], + q_path=[0.0,0.0,0.0], q_path_file=None, - print_path = True, + print_path = True, filename_st="v2+d3static_freq.dat", print_dyn = False, name_dyn = "sscha_plus_odd_dyn", d3_scale_factor = None, tensor2 = None): """ - Get the dyn + static bubble correction along a given path and prints the SSCHA and the + Get the dyn + static bubble correction along a given path and prints the SSCHA and the corrected frequencies in the file filename_st (path length in 2pi/Angstrom, SSCHA frequencies (cm-1), SSCHA+static odd correction frequencies (cm-1)). If print_dyn = True, the dyn+static bubble dynamical matrices are printed in QE format. - + Parameters ---------- - + dyn : Phonons() The harmonic / SSCHA dynamical matrix tensor3 : Tensor3() The third order force constant matrix k_grid : list(len = 3) The integration grid on the Brillouin zone - + Optional -------- - + T : float - The temperature + The temperature (default: 0 K) q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, - where the caculation is performed - (defualt: [0.0,0.0,0.0]) + where the caculation is performed + (defualt: [0.0,0.0,0.0]) q_path_file : string - Name of the file where the q_path can be read. + Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom If the name of the file is present, it has the - priority over the q_path value + priority over the q_path value (default: None) print_path : logical - If True (and the path is composed of more then one q-point), + If True (and the path is composed of more then one q-point), a file 'path_len.dat' is printed. - Format: column of 4 values, coordinates of + Format: column of 4 values, coordinates of the q-point and path length (in 2pi/Angstrom) . - (default: True) - filename_st : string - File where the result is written. - Format: length of the path (in 2pi/Alat), + (default: True) + filename_st : string + File where the result is written. + Format: length of the path (in 2pi/Alat), SSCHA freq (cm-1),SSCHA+static bubble freq. (cm-1) - (default: "v2+d3static_freq.dat") - print_dyn : logical + (default: "v2+d3static_freq.dat") + print_dyn : logical If True, the dyn+odd dynamical matrices are printed for the q-points of the path (in QE format) - (default: False) + (default: False) name_dyn : string Prefix of the name of the dyn+odd dynamical matrix printed name: prefix#q(progressive_number) (default: "sscha_plus_odd_dyn") - d3_scale_factor : float + d3_scale_factor : float If present, the 3rd order FC is multiplied by this factor (e.g. it can be used to make tests about the perturbative limit) (default: None) tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) - If present, this 2nd order FC overwrites the one + If present, this 2nd order FC overwrites the one obtained from dyn. - (default: None) - + (default: None) + """ - - print(" ") - print(" ====================================" ) - print(" Bubble static correction " ) + + print(" ") + print(" ====================================" ) + print(" Bubble static correction " ) print(" ====================================" ) - print(" ") + print(" ") print(" T= {:>5.1f} K".format(T)) - print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) - print(" ") - - if ( tensor2 == None ): + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" ") + + if ( tensor2 == None ): # Prepare the tensor2 tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) - tensor2.Center() + tensor2.Center() # Scale the FC3 =========================================================================== if d3_scale_factor != None : @@ -343,103 +344,293 @@ def get_static_correction_along_path(dyn, print(" d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) print(" ") tensor3.tensor=tensor3.tensor*d3_scale_factor - # ================================== q-PATH =============================================== + # ================================== q-PATH =============================================== if q_path_file == None: q_path=np.array(q_path) else: print(" ") print(" q_path read from "+q_path_file) - print(" ") + print(" ") q_path=np.loadtxt(q_path_file) - if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) # Get the length of the q path - x_length = np.zeros(len(q_path)) + x_length = np.zeros(len(q_path)) q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) x_length[1:] = q_tot x_length=np.cumsum(x_length) - x_length_exp=np.expand_dims(x_length,axis=0) + x_length_exp=np.expand_dims(x_length,axis=0) # print the path q-points and length if print_path and (q_path.shape[0] > 1) : fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] - result=np.hstack((q_path,x_length_exp.T)) + result=np.hstack((q_path,x_length_exp.T)) np.savetxt('path_len.dat',result,fmt=fmt_txt) print(" ") print(" Path printed in path_len.dat ") - print(" ") - # ========================================================================================== - + print(" ") + # ========================================================================================== + # Mass matrix m = np.tile(dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) - + # Allocate frequencies array nat=dyn.structure.N_atoms n_mod=3 * nat frequencies = np.zeros((len(q_path), n_mod), dtype = np.float64 ) # SSCHA+odd freq v2_wq = np.zeros( (len(q_path), n_mod), dtype = np.float64 ) # pure SSCHA freq - + # =============== core calculation =========================================== if print_dyn: print(" ") print(" dyn+odd dynamical matrices printed in "+name_dyn+"#q") - print(" ") + print(" ") for iq, q in enumerate(q_path): - dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, - k_grid=k_grid, q=np.array(q), + dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, + k_grid=k_grid, q=np.array(q), T=T, verbose = False) w2, pol = np.linalg.eigh(dynq / mm_mat) frequencies[iq,:] = np.sign(w2)*np.sqrt(np.abs(w2)) - - if print_dyn: + + if print_dyn: Methods.save_qe(dyn,q,dynq,frequencies[iq,:],pol,fname=name_dyn+str(iq+1)) - # ============================================================================ + # ============================================================================ # === print result ================================== frequencies *= CC.Units.RY_TO_CM v2_wq *= CC.Units.RY_TO_CM - result=np.hstack((x_length_exp.T,v2_wq,frequencies)) + result=np.hstack((x_length_exp.T,v2_wq,frequencies)) fmt_txt='%10.6f\t\t'+n_mod*'%11.7f\t'+'\t'+n_mod*'%11.7f\t' - + print(" ") print(" Results printed in "+filename_st) print(" ") head=("------------------------------------------------------------------------" - "\nlen (2pi/Angstrom), sscha freq (cm-1), sscha + static bubble freq (cm-1)" + "\nlen (2pi/Angstrom), sscha freq (cm-1), sscha + static bubble freq (cm-1)" "\n------------------------------------------------------------------------") - - np.savetxt(filename_st,result,fmt=fmt_txt,header=head) - # ================================================================================== + + np.savetxt(filename_st,result,fmt=fmt_txt,header=head) + # ================================================================================== + +def get_static_correction_along_path_multiprocessing(dyn, + tensor3, + k_grid, + T=0, + q_path=[0.0,0.0,0.0], + q_path_file=None, + print_path = True, + filename_st="v2+d3static_freq.dat", + print_dyn = False, + name_dyn = "sscha_plus_odd_dyn", + d3_scale_factor = None, + tensor2 = None): + """ + Get the dyn + static bubble correction along a given path and prints the SSCHA and the + corrected frequencies in the file filename_st (path length in 2pi/Angstrom, SSCHA frequencies (cm-1), + SSCHA+static odd correction frequencies (cm-1)). + If print_dyn = True, the dyn+static bubble dynamical matrices are printed in QE format. + + Parameters + ---------- + + dyn : Phonons() + The harmonic / SSCHA dynamical matrix + tensor3 : Tensor3() + The third order force constant matrix + k_grid : list(len = 3) + The integration grid on the Brillouin zone + + Optional + -------- + + T : float + The temperature + (default: 0 K) + q_path : list of triplets + Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, + where the caculation is performed + (default: [0.0,0.0,0.0]) + q_path_file : string + Name of the file where the q_path can be read. + Format: column of triples, q points in 2pi/Angstrom + If the name of the file is present, it has the + priority over the q_path value + (default: None) + print_path : logical + If True (and the path is composed of more then one q-point), + a file 'path_len.dat' is printed. + Format: column of 4 values, coordinates of + the q-point and path length (in 2pi/Angstrom) . + (default: True) + filename_st : string + File where the result is written. + Format: length of the path (in 2pi/Alat), + SSCHA freq (cm-1),SSCHA+static bubble freq. (cm-1) + (default: "v2+d3static_freq.dat") + print_dyn : logical + If True, the dyn+odd dynamical matrices are printed + for the q-points of the path (in QE format) + (default: False) + name_dyn : string + Prefix of the name of the dyn+odd dynamical matrix printed + name: prefix#q(progressive_number) + (default: "sscha_plus_odd_dyn") + d3_scale_factor : float + If present, the 3rd order FC is multiplied by this factor + (e.g. it can be used to make tests about the perturbative limit) + (default: None) + tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) + If present, this 2nd order FC overwrites the one + obtained from dyn. + (default: None) + + """ + + print(" ") + print(" ====================================" ) + print(" Bubble static correction " ) + print(" ====================================" ) + print(" ") + print(" T= {:>5.1f} K".format(T)) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" ") + + if ( tensor2 == None ): + # Prepare the tensor2 + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + + # Scale the FC3 =========================================================================== + if d3_scale_factor != None : + print(" ") + print(" d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) + print(" ") + tensor3.tensor=tensor3.tensor*d3_scale_factor + # ================================== q-PATH =============================================== + if q_path_file == None: + q_path=np.array(q_path) + else: + print(" ") + print(" q_path read from "+q_path_file) + print(" ") + q_path=np.loadtxt(q_path_file) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + # Get the length of the q path + x_length = np.zeros(len(q_path)) + q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) + x_length[1:] = q_tot + x_length=np.cumsum(x_length) + x_length_exp=np.expand_dims(x_length,axis=0) + # print the path q-points and length + if print_path and (q_path.shape[0] > 1) : + fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] + result=np.hstack((q_path,x_length_exp.T)) + np.savetxt('path_len.dat',result,fmt=fmt_txt) + print(" ") + print(" Path printed in path_len.dat ") + print(" ") + # ========================================================================================== + + # Mass matrix + m = np.tile(dyn.structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + + # Allocate frequencies array + nat=dyn.structure.N_atoms + n_mod=3 * nat + frequencies = np.zeros((len(q_path), n_mod), dtype = np.float64 ) # SSCHA+odd freq + v2_wq = np.zeros( (len(q_path), n_mod), dtype = np.float64 ) # pure SSCHA freq + + # =============== core calculation =========================================== + if print_dyn: + print(" ") + print(" dyn+odd dynamical matrices printed in "+name_dyn+"#q") + print(" ") + + #for iq, q in enumerate(q_path): + # dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, + # k_grid=k_grid, q=np.array(q), + # T=T, verbose = False) + # + # w2, pol = np.linalg.eigh(dynq / mm_mat) + # frequencies[iq,:] = np.sign(w2)*np.sqrt(np.abs(w2)) + # + # if print_dyn: + # Methods.save_qe(dyn,q,dynq,frequencies[iq,:],pol,fname=name_dyn+str(iq+1)) + iq_list = [] + q_list = [] + for iq, q in enumerate(q_path): + iq_list.append(iq) #yes I know this is stupid, is just range(q_path) + q_list.append(q) + + with Pool() as plwork: # diegom test 6 cores with Pool(6)************ + parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), + itertools.repeat(k_grid),itertools.repeat(T), + itertools.repeat(mm_mat),itertools.repeat(name_dyn), + itertools.repeat(frequencies),itertools.repeat(v2_wq), + itertools.repeat(print_dyn)) + plwork.starmap(multiprocessing_work1,parameters) + # ============================================================================ + + # === print result ================================== + frequencies *= CC.Units.RY_TO_CM + v2_wq *= CC.Units.RY_TO_CM + result=np.hstack((x_length_exp.T,v2_wq,frequencies)) + fmt_txt='%10.6f\t\t'+n_mod*'%11.7f\t'+'\t'+n_mod*'%11.7f\t' + + print(" ") + print(" Results printed in "+filename_st) + print(" ") + head=("------------------------------------------------------------------------" + "\nlen (2pi/Angstrom), sscha freq (cm-1), sscha + static bubble freq (cm-1)" + "\n------------------------------------------------------------------------") + + np.savetxt(filename_st,result,fmt=fmt_txt,header=head) + # ================================================================================== + +def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): + print("Diegom_test,iq=",iq) + dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, + k_grid=k_grid, q=np.array(q), + T=T, verbose = False) + + w2, pol = np.linalg.eigh(dynq / mm_mat) + frequencies[iq,:] = np.sign(w2)*np.sqrt(np.abs(w2)) + if print_dyn: + Methods.save_qe(dyn,q,dynq,frequencies[iq,:],pol,fname=name_dyn+str(iq+1)) + + + + - - # ========================= FULL DYNAMIC ========================= -def get_full_dynamic_bubble(tensor2, tensor3, k_grid, q, +def get_full_dynamic_bubble(tensor2, tensor3, k_grid, q, smear_id, smear, energies, T, - static_limit, + static_limit, notransl, diag_approx, verbose = False ): - + """ COMPUTE THE FULL DYNAMIC BUBBLE ========================= - + This function computes the dynamic bubble for a given dynamical matrix, the third order force constant tensor by using the Fourier interpolation - - + + Parameters ---------- tensor2 : ForceTensor.Tensor2() @@ -456,36 +647,36 @@ def get_full_dynamic_bubble(tensor2, tensor3, k_grid, q, If true, impose the acoustic sum rule during the Fourier transform verbose : bool If true print debugging and timing info - + Results ------- dynq : ndarray( size = (3*nat, 3*nat), dtype = np.complex128) The bubble matrix at the specified q point (only bubble). """ - + structure = tensor2.unitcell_structure - - # Get the integration points + + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = tensor2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -493,40 +684,40 @@ def get_full_dynamic_bubble(tensor2, tensor3, k_grid, q, print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) - + w_q=np.sqrt(w2_q) + # Allocate the memory for the bubble ne=energies.shape[0] nsm=smear.shape[0] tmp_bubble = np.zeros((ne,nsm,3*structure.N_atoms, 3*structure.N_atoms), dtype = np.complex128, order = "F") - + def compute_k(k): # phi3 in q, k, -q - k - t1 = time.time() + t1 = time.time() phi3=tensor3.Interpolate(k,-q-k, asr = False) t2 = time.time() # phi2 in k - phi2_k = tensor2.Interpolate(k, asr = False) + phi2_k = tensor2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) t3 = time.time() - + # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - + if is_k_gamma: w2_k[0:3]=0.0 if not (w2_k >= 0.0).all(): @@ -544,7 +735,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) @@ -553,26 +744,26 @@ def compute_k(k): d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) - + t4 = time.time() - + # Fortran duty ==== tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), - d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) - + d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) + t5 = time.time() - + if verbose: print("Time to interpolate the third order: {} s".format(t2 - t1)) print("Time to interpolate the second order: {} s".format(t3 - t2)) print("Time to transform the tensors: {} s".format(t4 - t3)) print("Time to compute the bubble: {} s".format(t5 - t4)) - + return tmp_bubble - - + + CC.Settings.SetupParallel() d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") # divide by the N_k factor @@ -586,86 +777,86 @@ def compute_k(k): print(" ") print(" The acoustic pick in Gamma is discarded ") print(" ") - # - # + # + # spectral_func=thirdorder.third_order_bubble.compute_spectralf(smear_id, energies, d2_q, d_bubble_cart, no_gamma_pick, structure.get_masses_array(), - structure.N_atoms,ne,nsm) - + structure.N_atoms,ne,nsm) + return spectral_func -def get_full_dynamic_correction_along_path(dyn, - tensor3, - k_grid, +def get_full_dynamic_correction_along_path(dyn, + tensor3, + k_grid, e1, de, e0, - sm1, sm0, + sm1, sm0, sm1_id, sm0_id, nsm=1, T=0, - q_path=[0.0,0.0,0.0], + q_path=[0.0,0.0,0.0], q_path_file=None, - print_path = True, - static_limit = False, - notransl = True, - diag_approx = False, + print_path = True, + static_limit = False, + notransl = True, + diag_approx = False, filename_sp='full_spectral_func', d3_scale_factor=None, tensor2 = None): - + """ Get the spectral function for a list of energies, and several q along a given path. The calculations are performed for several values of smearings to calculate the self-energy and the Green function. The resuls is printed in the file filename_sp_[id_smear]_[smear].dat (path length in 2pi/Angstrom, energies (cm-1), spectral function (1/cm-1)). - + Parameters ---------- - + dyn : Phonons() The harmonic / SSCHA dynamical matrix tensor3 : Tensor3() The third order force constant matrix k_grid : list(len = 3) - The integration grid on the Brillouin zone + The integration grid on the Brillouin zone e1, de ,e0: float The list of energies considered (cm-1), from e0 to e1, with interval de - sm0, sm1 : float - Minimum and maximum value of the smearing (cm-1) to compute the self-energy - sm0_id, sm1_id : float - Minimum and maximum value of the smearing (cm-1) for the term of the Green function - proportional to the identity + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy + sm0_id, sm1_id : float + Minimum and maximum value of the smearing (cm-1) for the term of the Green function + proportional to the identity Optional -------- nsm : integer - Number of smearings to consider + Number of smearings to consider (default = 1) T : float - The temperature + The temperature (default: 0 K) q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, - where the caculation is performed - (defualt: [0.0,0.0,0.0]) + where the caculation is performed + (defualt: [0.0,0.0,0.0]) q_path_file : string - Name of the file where the q_path can be read. + Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom If the name of the file is present, it has the - priority over the q_path value + priority over the q_path value (default: None) print_path : logical - If True (and the path is composed of more then one q-point), + If True (and the path is composed of more then one q-point), a file 'path_len.dat' is printed. - Format: column of 4 values, coordinates of + Format: column of 4 values, coordinates of the q-point and path length (in 2pi/Angstrom) . - (default: True) + (default: True) static limit : logical If True the self-energy is evaluated at E=0. The spectral function is given by delta peaks in correspondence @@ -677,33 +868,33 @@ def get_full_dynamic_correction_along_path(dyn, (defaul = True) diag approx : logical If True, the off-diagonal terms of the slef-energy are discarded - (the same result can be obtained in a cheaper way by using the + (the same result can be obtained in a cheaper way by using the corresponding function) (default : False) - filename_sp : string + filename_sp : string filename_sp_[id_smear]_[smear].dat - is the file where the result is written. - Format: length of the path (in 2pi/Alat), + is the file where the result is written. + Format: length of the path (in 2pi/Alat), energy (cm-1),spectral function (1/cm-1) - (default: "full_spectral_func") - d3_scale_factor : float + (default: "full_spectral_func") + d3_scale_factor : float If present, the 3rd order FC is multiplied by this factor (e.g. it can be used to make tests about the perturbative limit) (default: None) tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) - If present, this 2nd order FC overwrites the one + If present, this 2nd order FC overwrites the one obtained from dyn. - (default: None) - + (default: None) + """ - - print(" ") - print(" ===========================================" ) - print(" Bubble full dynamic correction " ) + + print(" ") print(" ===========================================" ) - print(" ") + print(" Bubble full dynamic correction " ) + print(" ===========================================" ) + print(" ") print(" T= {:>5.1f} K".format(T)) - print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) if static_limit : print(" ") print(" - The static limit is considered - ") @@ -711,48 +902,48 @@ def get_full_dynamic_correction_along_path(dyn, if diag_approx : print(" ") print(" - The off-diagonal terms of the self-energy are discarded - ") - print(" ") - - + print(" ") + + if ( tensor2 == None ): - + # Prepare the tensor2 tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) - tensor2.Center() - + tensor2.Center() + # Scale the FC3 =========================================================================== if d3_scale_factor != None : print(" ") print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) print(" ") tensor3.tensor=tensor3.tensor*d3_scale_factor - # ================================== q-PATH =============================================== + # ================================== q-PATH =============================================== if q_path_file == None: q_path=np.array(q_path) else: print(" ") print(" q_path read from "+q_path_file) - print(" ") + print(" ") q_path=np.loadtxt(q_path_file) - if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) # Get the length of the q path - x_length = np.zeros(len(q_path)) + x_length = np.zeros(len(q_path)) q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) x_length[1:] = q_tot x_length=np.cumsum(x_length) - x_length_exp=np.expand_dims(x_length,axis=0) + x_length_exp=np.expand_dims(x_length,axis=0) # print the path q-points and length if print_path and (q_path.shape[0] > 1) : fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] - result=np.hstack((q_path,x_length_exp.T)) + result=np.hstack((q_path,x_length_exp.T)) np.savetxt('path_len.dat',result,fmt=fmt_txt) print(" ") print(" Path printed in path_len.dat ") - print(" ") - # ========================================================================================== - - # ======================= Energy & Smearing ========================================== + print(" ") + # ========================================================================================== + + # ======================= Energy & Smearing ========================================== # energy in input is in cm-1 # smearing in input is in cm-1 # converto to Ry @@ -761,31 +952,31 @@ def get_full_dynamic_correction_along_path(dyn, energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM ne=energies.shape[0] # list of smearing - if nsm == 1 : + if nsm == 1 : sm1=sm0 sm1_id=sm0_id smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM - # ========================================================================================== - # + # ========================================================================================== + # # spectralf = np.zeros( (ne, nsm), dtype = np.float64 ) # - smear_cm = smear * CC.Units.RY_TO_CM - smear_id_cm = smear_id * CC.Units.RY_TO_CM - energies_cm = energies * CC.Units.RY_TO_CM + smear_cm = smear * CC.Units.RY_TO_CM + smear_id_cm = smear_id * CC.Units.RY_TO_CM + energies_cm = energies * CC.Units.RY_TO_CM for iq, q in enumerate(q_path): spectralf[:, :] = get_full_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), - smear_id, smear, energies, T, - static_limit, notransl , - diag_approx, verbose=False ) - + smear_id, smear, energies, T, + static_limit, notransl , + diag_approx, verbose=False ) + # convert from 1/Ry to 1/cm-1 spectralf /= CC.Units.RY_TO_CM - - # ================================================================================== - + + # ================================================================================== + # print the result for ism in range(nsm): # @@ -805,55 +996,55 @@ def get_full_dynamic_correction_along_path(dyn, for ie, ene in enumerate(energies_cm): f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) f.write("\n") - - - + + + print(" ") print(" Results printed in "+filename_sp+'_[id_smear]_[smear].dat') - print(" ") - - - + print(" ") + -# ========================= DIAGONAL SELF-ENERGY DYNAMIC CORRECTION ========================= -def get_diag_dynamic_bubble(tensor2, - tensor3, - k_grid, - q, - smear_id, - smear, + +# ========================= DIAGONAL SELF-ENERGY DYNAMIC CORRECTION ========================= + +def get_diag_dynamic_bubble(tensor2, + tensor3, + k_grid, + q, + smear_id, + smear, energies, T, verbose = False ): - - + + structure = tensor2.unitcell_structure - - # Get the integration points + + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = tensor2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -861,8 +1052,8 @@ def get_diag_dynamic_bubble(tensor2, print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) - + w_q=np.sqrt(w2_q) + # Allocate the memory for the bubble ne=energies.shape[0] nsm=smear.shape[0] @@ -871,32 +1062,32 @@ def get_diag_dynamic_bubble(tensor2, tmp_bubble = np.zeros((ne,nsm,n_mod), dtype = np.complex128, order = "F") - + def compute_k(k): # phi3 in q, k, -q - k - t1 = time.time() + t1 = time.time() phi3=tensor3.Interpolate(k,-q-k, asr = False) t2 = time.time() # phi2 in k - phi2_k = tensor2.Interpolate(k, asr = False) + phi2_k = tensor2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) t3 = time.time() - + # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - + if is_k_gamma: w2_k[0:3]=0.0 if not (w2_k >= 0.0).all(): @@ -914,7 +1105,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) @@ -923,32 +1114,32 @@ def compute_k(k): d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) - + t4 = time.time() - - + + # Fortran duty ==== - + # tmp_bubble = thirdorder.third_order_bubble.compute_diag_dynamic_bubble(energies,smear,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), - d3_pols,ne,nsm,n_mod=n_mod) + d3_pols,ne,nsm,n_mod=n_mod) t5 = time.time() - + if verbose: print("Time to interpolate the third order: {} s".format(t2 - t1)) print("Time to interpolate the second order: {} s".format(t3 - t2)) print("Time to transform the tensors: {} s".format(t4 - t3)) print("Time to compute the bubble: {} s".format(t5 - t4)) - - return tmp_bubble - + + return tmp_bubble + CC.Settings.SetupParallel() d_bubble_mod =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") - + # divide by the N_k factor d_bubble_mod /= len(k_points) # (ne,nsmear,n_mod) # @@ -956,7 +1147,7 @@ def compute_k(k): # spectralf=thirdorder.third_order_bubble.compute_spectralf_diag(smear_id,energies,w_q, d_bubble_mod, - nat,ne,nsm) + nat,ne,nsm) # (ne, n_mod, nsmear) w2_q_ext=w2_q[None,None,...] @@ -964,19 +1155,19 @@ def compute_k(k): w_q_ext=w_q[None,None,...] z_pert=w_q_ext+np.divide(d_bubble_mod, 2*w_q_ext, out=np.zeros_like(d_bubble_mod), where=w_q_ext!=0) - + return spectralf, z, z_pert, w_q -def get_diag_dynamic_correction_along_path(dyn, tensor3, - k_grid, +def get_diag_dynamic_correction_along_path(dyn, tensor3, + k_grid, e1, de, e0, sm1, sm0, sm1_id=None, sm0_id=None, nsm=1, q_path=[0.0,0.0,0.0], - q_path_file=None, - print_path = True, + q_path_file=None, + print_path = True, T=0.0, filename_sp = 'spectral_func', filename_z = None, @@ -984,10 +1175,10 @@ def get_diag_dynamic_correction_along_path(dyn, tensor3, filename_shift_lw = 'v2_freq_shift_hwhm', self_consist = False, iterative=False, - numiter=200, + numiter=200, d3_scale_factor=None, - tensor2 = None): - + tensor2 = None): + """ Get the spectral function for a list of energies, and several q along a given path, @@ -1001,126 +1192,126 @@ def get_diag_dynamic_correction_along_path(dyn, tensor3, (one optional). 1. One shot, evaluating the Z function in the SSCHA frequency value.2. Perturbative, evaluating the perturbative correction. 3. (optional) solving the self-consistent relation (details in [PRB 97 214101 (A21)]). The corresponding Lorenzian spectral functions are then printed. - + Parameters ---------- - + dyn : Phonons() The harmonic / SSCHA dynamical matrix tensor3 : Tensor3() The third order force constant matrix k_grid : list(len = 3) - The integration grid on the Brillouin zone + The integration grid on the Brillouin zone e1, de ,e0: float The list of energies considered (cm-1), from e0 to e1, with interval de - sm0, sm1 : float - Minimum and maximum value of the smearing (cm-1) to compute the self-energy - + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy + Optional -------- nsm : integer - Number of smearings to consider + Number of smearings to consider (default = 1) T : float - The temperature + The temperature (default: 0 K) - sm0_id, sm1_id : float - Minimum and maximum value of the smearing (cm-1) for the term of the Green function + sm0_id, sm1_id : float + Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity. If not present, it is sm0_id = sm1_id = 2.0 * de (default: None) q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, - where the caculation is performed - (defualt: [0.0,0.0,0.0]) + where the caculation is performed + (defualt: [0.0,0.0,0.0]) q_path_file : string - Name of the file where the q_path can be read. + Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom If the name of the file is present, it has the - priority over the q_path value + priority over the q_path value (default: None) print_path : logical - If True (and the path is composed of more then one q-point), + If True (and the path is composed of more then one q-point), a file 'path_len.dat' is printed. - Format: column of 4 values, coordinates of + Format: column of 4 values, coordinates of the q-point and path length (in 2pi/Angstrom) . - (default: True) - filename_sp : string + (default: True) + filename_sp : string filename_sp_[smear].dat - is the file where the spectral function is written. - Format: length of the path (in 2pi/Alat), + is the file where the spectral function is written. + Format: length of the path (in 2pi/Alat), energy (cm-1),spectral function (1/cm-1), single mode contributions to spectral function (1/cm-1) - (default: "spectral_func") - filename_z : string + (default: "spectral_func") + filename_z : string if present, the file filename_z_[smear].dat with the z function is written - Format: length of the path (in 2pi/Alat), + Format: length of the path (in 2pi/Alat), energy (cm-1), z function (cm-1), (default: None) - filename_shift_lw : string + filename_shift_lw : string filename_shift_lw_[method]_[smear].dat is the file where len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) - are printed. [method] are "one shot", "perturb" and "self-consist" + are printed. [method] are "one shot", "perturb" and "self-consist" (the last one optional) (default: "v2_freq_shift_hwhm") - filename_freq_dyn : string + filename_freq_dyn : string filename_freq_dyn_[method]_[smear].dat is the file where len (2pi/Angstrom), freq (cm-1) (sorted in ascending order), corresponding HWHM (cm-1) - are printed. [method] are "one shot", "perturb" and "self-consist" + are printed. [method] are "one shot", "perturb" and "self-consist" (the last one optional) - (default: "freq_dynamic") + (default: "freq_dynamic") self_consist : Logical - If True, the dynamical frequency is found solving the self-consistent + If True, the dynamical frequency is found solving the self-consistent relation [PRB 97 214101 (A21)] (default: False) iterative : Logical If True, the self-consistent relation is found iteratively - (default: False) + (default: False) numiter : integer - Number of maximum steps to find the self-consistency iteratively + Number of maximum steps to find the self-consistency iteratively (default : 200) - d3_scale_factor : float + d3_scale_factor : float If present, the 3rd order FC is multiplied by this factor (e.g. it can be used to make tests about the perturbative limit) (default: None) tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) - If present, this 2nd order FC overwrites the one + If present, this 2nd order FC overwrites the one obtained from dyn. - (default: None) - + (default: None) + """ - - print(" ") - print(" ===========================================" ) - print(" Bubble diagonal dynamic correction " ) + + print(" ") print(" ===========================================" ) - print(" ") + print(" Bubble diagonal dynamic correction " ) + print(" ===========================================" ) + print(" ") print(" T= {:>5.1f} K".format(T)) - print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) print(" ") print(" Smearing values: ") for sm in np.linspace(sm0,sm1,nsm): - print(" sm= {:>6.2f} cm-1".format(sm)) - print(" ") - print(" ===========================================" ) - print(" " ) + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") + print(" ===========================================" ) + print(" " ) if sm1_id != None and sm0_id != None: for sm in np.linspace(sm0_id,sm1_id,nsm): - print(" sm_id= {:>6.2f} cm-1".format(sm)) + print(" sm_id= {:>6.2f} cm-1".format(sm)) else: sm1_id=de*2.0 sm0_id=de*2.0 - + if ( tensor2 == None ): - + # Prepare the tensor2 tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) @@ -1135,62 +1326,62 @@ def get_diag_dynamic_correction_along_path(dyn, tensor3, print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) print(" ") tensor3.tensor=tensor3.tensor*d3_scale_factor - # ================================== q-PATH =============================================== + # ================================== q-PATH =============================================== if q_path_file == None: q_path=np.array(q_path) else: print(" ") print(" q_path read from "+q_path_file) - print(" ") + print(" ") q_path=np.loadtxt(q_path_file) - if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) # Get the length of the q path - x_length = np.zeros(len(q_path)) + x_length = np.zeros(len(q_path)) q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) x_length[1:] = q_tot x_length=np.cumsum(x_length) - x_length_exp=np.expand_dims(x_length,axis=0) + x_length_exp=np.expand_dims(x_length,axis=0) # print the path q-points and length if print_path and (q_path.shape[0] > 1) : fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] - result=np.hstack((q_path,x_length_exp.T)) + result=np.hstack((q_path,x_length_exp.T)) np.savetxt('path_len.dat',result,fmt=fmt_txt) print(" ") print(" Path printed in path_len.dat ") - print(" ") - # ======================= Energy & Smearing ========================================== + print(" ") + # ======================= Energy & Smearing ========================================== # # energy in input is in cm-1 # smearing in input is in cm-1 # converto to Ry - + # list of energies energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM ne=energies.shape[0] # list of smearing - if nsm == 1 : + if nsm == 1 : sm1=sm0 sm1_id=sm0_id smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM - # - # ========================================================================================== # - + # ========================================================================================== + # + def Lorenz(x,x0,G): return G/((x-x0)**2+G**2)/np.pi/2.0 def findne(val,e0,de): #return int( round( ((val-e0)/de)+1 ) ) - return int(round( (val-e0)/de ) ) + return int(round( (val-e0)/de ) ) # print(" ") #print(" Spectral function, in diagonal approximation, printed in "+filename_sp+"_[smear_id]_[smear].dat") - print(" Spectral function, in diagonal approximation, printed in "+filename_sp+"_[smear].dat") + print(" Spectral function, in diagonal approximation, printed in "+filename_sp+"_[smear].dat") print(" ") if filename_z != None: print(" ") print(" Z function [PRB 97 214101 (A21)], printed in "+filename_z+"_[smear].dat") - print(" ") + print(" ") print(" ========================================= ") print(" Frequncies shifts and widths calculations ") @@ -1198,44 +1389,44 @@ def findne(val,e0,de): print(" ") print(" Frequencies shifts and linewidths computed with perturbative approximation and one-shot calculation in: ") print(" ") - #print(" "+filename_shift_lw +"_perturb_[smear_id]_[smear].dat") - #print(" "+filename_shift_lw +"_one_shot_[smear_id]_[smear].dat") - print(" "+filename_shift_lw +"_perturb_[smear].dat") - print(" "+filename_shift_lw +"_one_shot_[smear].dat") + #print(" "+filename_shift_lw +"_perturb_[smear_id]_[smear].dat") + #print(" "+filename_shift_lw +"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_shift_lw +"_perturb_[smear].dat") + print(" "+filename_shift_lw +"_one_shot_[smear].dat") print(" ") print(" ") - print(" Dynamical frequencies sorted, with HWHM: ") + print(" Dynamical frequencies sorted, with HWHM: ") print(" ") - #print(" "+filename_freq_dyn +"_perturb_[smear_id]_[smear].dat") - #print(" "+filename_freq_dyn +"_one_shot_[smear_id]_[smear].dat") - print(" "+filename_freq_dyn +"_perturb_[smear].dat") - print(" "+filename_freq_dyn +"_one_shot_[smear].dat") + #print(" "+filename_freq_dyn +"_perturb_[smear_id]_[smear].dat") + #print(" "+filename_freq_dyn +"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_freq_dyn +"_perturb_[smear].dat") + print(" "+filename_freq_dyn +"_one_shot_[smear].dat") print(" ") print(" ") print(" Relative spectral functions in Lorentzian approximation: ") print(" ") - #print(" "+filename_sp+"_lorentz_perturb_[smear_id]_[smear].dat") - #print(" "+filename_sp+"_one_shot_[smear_id]_[smear].dat") - print(" "+filename_sp+"_lorentz_perturb_[smear].dat") - print(" "+filename_sp+"_one_shot_[smear].dat") + #print(" "+filename_sp+"_lorentz_perturb_[smear_id]_[smear].dat") + #print(" "+filename_sp+"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_sp+"_lorentz_perturb_[smear].dat") + print(" "+filename_sp+"_one_shot_[smear].dat") print(" ") if self_consist: print(" ************************************************ ") print(" Self-consistent search for dynamical frequencies ") print(" ************************************************ ") print(" ") - print(" Results printed in: ") + print(" Results printed in: ") + print(" ") + #print(" "+filename_shift_lw +"_[smear_id]_[smear].dat") + print(" "+filename_shift_lw +"_self-consist_[smear].dat") print(" ") - #print(" "+filename_shift_lw +"_[smear_id]_[smear].dat") - print(" "+filename_shift_lw +"_self-consist_[smear].dat") - print(" ") print(" ") - #print(" "+filename_freq_dyn +"_[smear_id]_[smear].dat") - print(" "+filename_freq_dyn +"_self-consist_[smear].dat") + #print(" "+filename_freq_dyn +"_[smear_id]_[smear].dat") + print(" "+filename_freq_dyn +"_self-consist_[smear].dat") print(" ") print(" ") - #print(" "+filename_sp+"_lorentz_[smear_id]_[smear].dat") - print(" "+filename_sp+"_lorentz_self-consist_[smear].dat") + #print(" "+filename_sp+"_lorentz_[smear_id]_[smear].dat") + print(" "+filename_sp+"_lorentz_self-consist_[smear].dat") print(" ") print(" ") # convert from Ry to cm-1 @@ -1245,31 +1436,31 @@ def findne(val,e0,de): n_mod=3*dyn.structure.N_atoms # - spectralf = np.zeros( (ne,n_mod,nsm), dtype=np.float64 ) - z = np.zeros( (ne,nsm,n_mod) , dtype=np.complex128 ) - z_pert = np.zeros( (ne,nsm,n_mod), dtype = np.complex128 ) - wq = np.zeros( n_mod, dtype = np.float64 ) + spectralf = np.zeros( (ne,n_mod,nsm), dtype=np.float64 ) + z = np.zeros( (ne,nsm,n_mod) , dtype=np.complex128 ) + z_pert = np.zeros( (ne,nsm,n_mod), dtype = np.complex128 ) + wq = np.zeros( n_mod, dtype = np.float64 ) # - + for iq, q in enumerate(q_path): spectralf, z , z_pert, wq = get_diag_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), smear_id, smear, energies, - T, verbose=False ) - - + T, verbose=False ) + + # z *= CC.Units.RY_TO_CM z_pert *= CC.Units.RY_TO_CM wq *= CC.Units.RY_TO_CM # convert from 1/Ry to 1/cm-1 - spectralf /= CC.Units.RY_TO_CM - - - - - + spectralf /= CC.Units.RY_TO_CM + + + + + for ism in range(nsm): # # pre-name for writing data @@ -1284,7 +1475,7 @@ def findne(val,e0,de): # ======= filename_new=filename_sp+'_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" - + if iq == 0: with open(filename_new,'w') as f: f.write("# ---------------------------------------------------------------------------------------------------------\n") @@ -1306,12 +1497,12 @@ def findne(val,e0,de): if filename_z != None: filename_new=filename_z+'_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod)+"\n" - + if iq == 0: with open(filename_new,'w') as f: f.write("# ---------------------------------------------------- \n") - f.write("# len (2pi/Angstrom), energy (cm-1), z function (cm-1) \n") - f.write("# ---------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), energy (cm-1), z function (cm-1) \n") + f.write("# ---------------------------------------------------- \n") for ie, ene in enumerate(energies_cm): out=z[ie,ism,:] f.write(fmt.format(x_length[iq],ene,*out)) @@ -1320,16 +1511,16 @@ def findne(val,e0,de): for ie, ene in enumerate(energies_cm): out=z[ie,ism,:] f.write(fmt.format(x_length[iq],ene,*out)) - + # ====================================== # compute frequency shift and linewidth # ====================================== - + if self_consist: - res=np.zeros((n_mod,2),dtype=np.float64) # self-consist shifted freq and linewidth - res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth - res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth - + res=np.zeros((n_mod,2),dtype=np.float64) # self-consist shifted freq and linewidth + res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth + res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q_path[iq]) for ifreq in range(n_mod): done=False @@ -1339,14 +1530,14 @@ def findne(val,e0,de): freqoldold=freqold for i in range(numiter): x=findne(freqold,e0,de) - if i==0: xtriv=x + if i==0: xtriv=x freqshifted=np.real(z[x-1,ism,ifreq]) # Re(z) is the shifted freq if abs(freqshifted-freqold)< 2*de: done=True break - else: + else: freqoldold=freqold - freqold=freqshifted + freqold=freqshifted # else: xtriv=findne(wq[ifreq],e0,de) @@ -1354,67 +1545,67 @@ def findne(val,e0,de): diff=np.infty for x in range(ne): value=np.real(z[x,ism,ifreq])-energies_cm[x] - if( abs(value ) < 2*de) : + if( abs(value ) < 2*de) : if ( 1.0 < abs(energies_cm[x]) or ( is_q_gamma and ifreq < 3 ) ): done=True if ( abs( energies_cm[x]-osval ) < diff ): diff=abs( energies_cm[x]-osval ) - freqshifted=energies_cm[x] - - - # - if done: + freqshifted=energies_cm[x] + + # - res[ifreq,0]=freqshifted + if done: + # + res[ifreq,0]=freqshifted x=findne(freqshifted,e0,de) res[ifreq,1]=-np.imag(z[x-1,ism,ifreq]) # else: - # + # print(" Self-consistency for the {:5d}-th mode of the {:5d}-th q-point not reached. " "One-shot approx. value used".format(ifreq+1,iq+1)) res[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) - res[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) - # - res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) - res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + res[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + # + res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) + res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) # - res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) + res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) res_pert[ifreq,1]=-np.imag(z_pert[xtriv-1,ism,ifreq]) else: - res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth - res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth - - for ifreq in range(n_mod): + res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth + res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth + + for ifreq in range(n_mod): xtriv=findne(wq[ifreq],e0,de) # - res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) - res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) + res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) # - res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) - res_pert[ifreq,1]=-np.imag(z_pert[xtriv-1,ism,ifreq]) - - - - + res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) + res_pert[ifreq,1]=-np.imag(z_pert[xtriv-1,ism,ifreq]) + + + + # ======================= # v2_freq, shift, hwhm - # ======================= + # ======================= if self_consist: filename_new=filename_shift_lw+'_self-consist_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" if iq == 0: with open(filename_new,'w') as f: f.write("# ----------------------------------------------------------------- \n") - f.write("# len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) \n") - f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") out=np.concatenate((wq[:],res[:,0]-wq[:], res[:,1])) f.write(fmt.format(x_length[iq],*out)) else: with open(filename_new,'a') as f: out=np.concatenate((wq[:],res[:,0]-wq[:], res[:,1])) f.write(fmt.format(x_length[iq],*out)) - + filename_new=filename_shift_lw+'_one_shot_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" if iq == 0: @@ -1444,10 +1635,10 @@ def findne(val,e0,de): f.write(fmt.format(x_length[iq],*out)) # ================================================ # freq sorted, hwhm && Lorenztian spectral func - # ================================================ - + # ================================================ + if self_consist: - + wq_shifted=res[:,0] hwhm=res[:,1] @@ -1456,9 +1647,9 @@ def findne(val,e0,de): wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted - #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted # - # freq, freq + # freq, freq # filename_new=filename_freq_dyn+'_self-consist_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" @@ -1466,29 +1657,29 @@ def findne(val,e0,de): with open(filename_new,'w') as f: f.write("# ------------------------------------------------------------ \n") f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") - f.write("# ------------------------------------------------------------ \n") + f.write("# ------------------------------------------------------------ \n") #out=np.concatenate((wq_shifted_sorted, #wq_shifted_sorted_plus, #wq_shifted_sorted_minus)) out=np.concatenate((wq_shifted_sorted, - hwhm_sorted)) + hwhm_sorted)) f.write(fmt.format(x_length[iq],*out)) else: with open(filename_new,'a') as f: out=np.concatenate((wq_shifted_sorted, - hwhm_sorted)) + hwhm_sorted)) f.write(fmt.format(x_length[iq],*out)) - # - # Lorenztian spectral func + # + # Lorenztian spectral func # filename_new=filename_sp+'_lorentz_self-consist_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" if iq == 0: with open(filename_new,'w') as f: f.write("# ---------------------------------------------------------------------------------------------------------\n") - f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1)\n") - f.write("# ---------------------------------------------------------------------------------------------------------\n") - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1)\n") + f.write("# ---------------------------------------------------------------------------------------------------------\n") + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1499,7 +1690,7 @@ def findne(val,e0,de): f.write("\n") else: with open(filename_new,'a') as f: - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1511,13 +1702,13 @@ def findne(val,e0,de): # wq_shifted=res_os[:,0] hwhm=res_os[:,1] - + sortidx=np.argsort(wq_shifted,axis=0) wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted - #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted # # freq, freq +/- hwhm # @@ -1527,7 +1718,7 @@ def findne(val,e0,de): with open(filename_new,'w') as f: f.write("# ------------------------------------------------------------ \n") f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") - f.write("# ------------------------------------------------------------ \n") + f.write("# ------------------------------------------------------------ \n") #out=np.concatenate((wq_shifted_sorted, #wq_shifted_sorted_plus, # wq_shifted_sorted_minus)) @@ -1539,17 +1730,17 @@ def findne(val,e0,de): out=np.concatenate((wq_shifted_sorted, hwhm_sorted)) f.write(fmt.format(x_length[iq],*out)) - # - # Lorentzian spectral func + # + # Lorentzian spectral func # filename_new=filename_sp+'_lorentz_one_shot_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" - if iq == 0: + if iq == 0: with open(filename_new,'w') as f: f.write("# --------------------------------------------------------------------------------------------------------- \n") - f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") f.write("# --------------------------------------------------------------------------------------------------------- \n") - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1560,7 +1751,7 @@ def findne(val,e0,de): f.write("\n") else: with open(filename_new,'a') as f: - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1570,16 +1761,16 @@ def findne(val,e0,de): f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) f.write("\n") - # + # wq_shifted=res_pert[:,0] hwhm=res_pert[:,1] - + sortidx=np.argsort(wq_shifted,axis=0) wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted - #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted # # freq, freq +/- hwhm # @@ -1589,29 +1780,29 @@ def findne(val,e0,de): with open(filename_new,'w') as f: f.write("# ------------------------------------------------------------ \n") f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") - f.write("# ------------------------------------------------------------ \n") + f.write("# ------------------------------------------------------------ \n") #out=np.concatenate((wq_shifted_sorted, #wq_shifted_sorted_plus, #wq_shifted_sorted_minus)) out=np.concatenate((wq_shifted_sorted, - hwhm_sorted)) + hwhm_sorted)) f.write(fmt.format(x_length[iq],*out)) else: with open(filename_new,'a') as f: out=np.concatenate((wq_shifted_sorted, - hwhm_sorted)) + hwhm_sorted)) f.write(fmt.format(x_length[iq],*out)) - # - # Lorenztian spectral func + # + # Lorenztian spectral func # filename_new=filename_sp+'_lorentz_perturb_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" if iq == 0: with open(filename_new,'w') as f: f.write("# --------------------------------------------------------------------------------------------------------- \n") - f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") f.write("# --------------------------------------------------------------------------------------------------------- \n") - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1622,7 +1813,7 @@ def findne(val,e0,de): f.write("\n") else: with open(filename_new,'a') as f: - Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) for ifreq in range(n_mod): Lor_spectralf[:,ifreq]=Lorenz(energies_cm, wq_shifted_sorted[ifreq], @@ -1632,39 +1823,39 @@ def findne(val,e0,de): f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) f.write("\n") # - - - - # ===== PERTURBATIVE CORRECTION TO SSCHA FREQUENCY (SHIFT and LINEWIDTH) ===================== - -def get_perturb_dynamic_selfnrg(tensor2, tensor3, - k_grid, q, + + + + # ===== PERTURBATIVE CORRECTION TO SSCHA FREQUENCY (SHIFT and LINEWIDTH) ===================== + +def get_perturb_dynamic_selfnrg(tensor2, tensor3, + k_grid, q, smear, T, verbose= False): - + structure = tensor2.unitcell_structure - - # Get the integration points + + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = tensor2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -1672,33 +1863,33 @@ def get_perturb_dynamic_selfnrg(tensor2, tensor3, print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) - + w_q=np.sqrt(w2_q) + def compute_k(k): # phi3 in q, k, -q - k - t1 = time.time() + t1 = time.time() phi3=tensor3.Interpolate(k,-q-k, asr = False) t2 = time.time() # phi2 in k - phi2_k = tensor2.Interpolate(k, asr = False) + phi2_k = tensor2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) t3 = time.time() - + # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - + if is_k_gamma: w2_k[0:3]=0.0 if not (w2_k >= 0.0).all(): @@ -1716,7 +1907,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) @@ -1725,146 +1916,146 @@ def compute_k(k): d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) - + t4 = time.time() - - + + nsm=smear.shape[0] - n_mod=3*structure.N_atoms + n_mod=3*structure.N_atoms # Fortran duty ==== - + selfnrg = thirdorder.third_order_bubble.compute_perturb_selfnrg(smear,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), - d3_pols,nsm,n_mod) + d3_pols,nsm,n_mod) t5 = time.time() - + if verbose: print("Time to interpolate the third order: {} s".format(t2 - t1)) print("Time to interpolate the second order: {} s".format(t3 - t2)) print("Time to transform the tensors: {} s".format(t4 - t3)) print("Time to compute the bubble: {} s".format(t5 - t4)) - - return selfnrg - + + return selfnrg + CC.Settings.SetupParallel() selfnrg =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") # divide by the N_k factor selfnrg /= len(k_points) # (n_mod,nsigma) - + w_q_ext=w_q[...,None] - + shift=np.divide(selfnrg.real, 2*w_q_ext, out=np.zeros_like(selfnrg.real), where=w_q_ext!=0) hwhm=np.divide(-selfnrg.imag, 2*w_q_ext, out=np.zeros_like(selfnrg.imag), where=w_q_ext!=0) return w_q, shift,hwhm - - - -def get_perturb_dynamic_correction_along_path(dyn, tensor3, - k_grid, + + + +def get_perturb_dynamic_correction_along_path(dyn, tensor3, + k_grid, sm1, sm0, nsm=1, q_path=[0.0,0.0,0.0], q_path_file=None, print_path = True, - T=0, - filename_shift_lw = 'v2_freq_shift_hwhm', - filename_freq_dyn = 'freq_dynamic', + T=0, + filename_shift_lw = 'v2_freq_shift_hwhm', + filename_freq_dyn = 'freq_dynamic', d3_scale_factor=None, - tensor2= None): + tensor2= None): """ The frequency shift (with respect to the SSCHA frequency) and linewidth are computed with the perturbative formula with respect to the SSCHA frequency. - + Parameters ---------- - + dyn : Phonons() The harmonic / SSCHA dynamical matrix tensor3 : Tensor3() The third order force constant matrix k_grid : list(len = 3) - The integration grid on the Brillouin zone - sm0, sm1 : float - Minimum and maximum value of the smearing (cm-1) to compute the self-energy + The integration grid on the Brillouin zone + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy Optional -------- nsm : integer - Number of smearings to consider + Number of smearings to consider (default = 1) T : float - The temperature + The temperature (default: 0 K) q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, - where the caculation is performed - (defualt: [0.0,0.0,0.0]) + where the caculation is performed + (defualt: [0.0,0.0,0.0]) q_path_file : string - Name of the file where the q_path can be read. + Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom If the name of the file is present, it has the - priority over the q_path value + priority over the q_path value (default: None) print_path : logical - If True (and the path is composed of more then one q-point), + If True (and the path is composed of more then one q-point), a file 'path_len.dat' is printed. - Format: column of 4 values, coordinates of + Format: column of 4 values, coordinates of the q-point and path length (in 2pi/Angstrom) . - (default: True) - filename_shift_lw : string + (default: True) + filename_shift_lw : string filename_shift_lw_[id_smear]_[smear].dat is the file where len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) are printed. (default: "v2_freq_shit_hwhm") - filename_freq_dyn : string + filename_freq_dyn : string filename_freq_dyn_[id_smear]_[smear].dat is the file where len (2pi/Angstrom), freq (cm-1) (sorted in ascending order), HWHM (cm-1) - are printed. - (default: "freq_dynamic") - d3_scale_factor : float + are printed. + (default: "freq_dynamic") + d3_scale_factor : float If present, the 3rd order FC is multiplied by this factor (e.g. it can be used to make tests about the perturbative limit) (default: None) tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) - If present, this 2nd order FC overwrites the one + If present, this 2nd order FC overwrites the one obtained from dyn. - (default: None) - + (default: None) + """ - print(" ") - print(" ===========================================" ) - print(" Bubble perturbative dynamic correction " ) + print(" ") + print(" ===========================================" ) + print(" Bubble perturbative dynamic correction " ) print(" ===========================================" ) - print(" ") + print(" ") print(" T= {:>5.1f} K".format(T)) print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) print(" ") print(" Smearing values: ") for sm in np.linspace(sm0,sm1,nsm): - print(" sm= {:>6.2f} cm-1".format(sm)) - print(" ") - print(" ===========================================" ) - print(" " ) + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") + print(" ===========================================" ) + print(" " ) if ( tensor2 == None ): - + # Prepare the tensor2 tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) - tensor2.Center() + tensor2.Center() # Scale the FC3 =========================================================================== if d3_scale_factor != None : @@ -1872,50 +2063,50 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) print(" ") tensor3.tensor=tensor3.tensor*d3_scale_factor - # ================================== q-PATH =============================================== + # ================================== q-PATH =============================================== if q_path_file == None: q_path=np.array(q_path) else: print(" ") print(" q_path read from "+q_path_file) - print(" ") + print(" ") q_path=np.loadtxt(q_path_file) - if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) # Get the length of the q path - x_length = np.zeros(len(q_path)) + x_length = np.zeros(len(q_path)) q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) x_length[1:] = q_tot x_length=np.cumsum(x_length) - x_length_exp=np.expand_dims(x_length,axis=0) + x_length_exp=np.expand_dims(x_length,axis=0) # print the path q-points and length if print_path and (q_path.shape[0] > 1) : fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] - result=np.hstack((q_path,x_length_exp.T)) + result=np.hstack((q_path,x_length_exp.T)) np.savetxt('path_len.dat',result,fmt=fmt_txt) print(" ") print(" Path printed in path_len.dat ") - print(" ") - # ======================= Smearing ========================================== + print(" ") + # ======================= Smearing ========================================== # smearing in input is in cm-1 # converto to Ry # list of smearing # - if nsm == 1 : + if nsm == 1 : sm1=sm0 smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM - # ======================== Calculation ========================================== + # ======================== Calculation ========================================== n_mod=3*dyn.structure.N_atoms shift = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear hwhm = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear wq = np.zeros( ( n_mod), dtype = np.float64 ) # q-point,mode # smear_cm = smear * CC.Units.RY_TO_CM - for iq, q in enumerate(q_path): + for iq, q in enumerate(q_path): wq[:],shift[:,:], hwhm[:,:] = get_perturb_dynamic_selfnrg(tensor2, tensor3, k_grid, np.array(q), - smear, T, - verbose=False ) - + smear, T, + verbose=False ) + # print results wq*=CC.Units.RY_TO_CM shift*=CC.Units.RY_TO_CM @@ -1923,13 +2114,13 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # #==================== SORTING =============================== wq_shifted=wq[...,None]+shift - + sortidx=np.argsort(wq_shifted,axis=0) - + wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) - #=============== Print Results =============================== - + #=============== Print Results =============================== + # for ism in range(nsm): # @@ -1943,26 +2134,26 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, with open(filename_new,'w') as f: f.write("# --------------------------------------------------------------------- \n") f.write("# len (2pi/Angstrom), sscha freq (cm-1), freq shift (cm-1), hwhm (cm-1) \n") - f.write("# --------------------------------------------------------------------- \n") - out=np.concatenate((wq[:],shift[:,ism], + f.write("# --------------------------------------------------------------------- \n") + out=np.concatenate((wq[:],shift[:,ism], hwhm[:,ism])) f.write(fmt.format(x_length[iq],*out)) else: with open(filename_new,'a') as f: - out=np.concatenate((wq[:],shift[:,ism], + out=np.concatenate((wq[:],shift[:,ism], hwhm[:,ism])) f.write(fmt.format(x_length[iq],*out)) # name="{:6.1f}".format(smear_cm[ism]).strip() # - # shifted freq sorted, corresponding hwhm + # shifted freq sorted, corresponding hwhm # filename_new=filename_freq_dyn+'_'+name+'.dat' fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" if iq == 0: with open(filename_new,'w') as f: f.write("# ----------------------------------------------------------------- \n") - f.write("# len (2pi/Angstrom), sscha+shift freq (sorted) (cm-1), hwhm (cm-1) \n") + f.write("# len (2pi/Angstrom), sscha+shift freq (sorted) (cm-1), hwhm (cm-1) \n") f.write("# ----------------------------------------------------------------- \n") out=np.concatenate((wq_shifted_sorted[:,ism], hwhm_sorted[:,ism])) @@ -1972,13 +2163,11 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, out=np.concatenate((wq_shifted_sorted[:,ism], hwhm_sorted[:,ism])) f.write(fmt.format(x_length[iq],*out)) - + print(" ") print(" Results printed in "+filename_shift_lw+'_'+'[smear].dat') - print(" ") + print(" ") print(" ") print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') - print(" ") - - + print(" ") From 7bc1c01b6da37cf82a8cf7aa838b35f02f744db9 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 10 May 2022 11:39:32 +0200 Subject: [PATCH 008/204] Cleaning --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1fb1cd90..c29164c9 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -590,7 +590,7 @@ def get_static_correction_along_path_multiprocessing(dyn, # ================================================================================== def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): - print("Diegom_test,iq=",iq) + # print("Diegom_test,iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, k_grid=k_grid, q=np.array(q), T=T, verbose = False) From 374fd991c38b8fb51e25988436f01fcc4f8a8260 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 10 May 2022 14:10:51 +0200 Subject: [PATCH 009/204] Fix error in new function. --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1fb1cd90..1a029bda 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -22,7 +22,7 @@ from cellconstructor.Settings import ParallelPrint as print from multiprocessing import Pool -import itertool + """ In this module we compute the Spectral function @@ -570,7 +570,7 @@ def get_static_correction_along_path_multiprocessing(dyn, itertools.repeat(mm_mat),itertools.repeat(name_dyn), itertools.repeat(frequencies),itertools.repeat(v2_wq), itertools.repeat(print_dyn)) - plwork.starmap(multiprocessing_work1,parameters) + v2_wq,frequencies=plwork.starmap(multiprocessing_work1,parameters) # ============================================================================ # === print result ================================== @@ -599,7 +599,7 @@ def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequenc frequencies[iq,:] = np.sign(w2)*np.sqrt(np.abs(w2)) if print_dyn: Methods.save_qe(dyn,q,dynq,frequencies[iq,:],pol,fname=name_dyn+str(iq+1)) - + return v2_wq,frequencies From 9bac07dea134c4adfe1c34fa158049e66353ddb6 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 10 May 2022 14:50:34 +0200 Subject: [PATCH 010/204] Closing the working pools to clean memory. --- cellconstructor/Spectral.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index db74befe..f5edf0ff 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -561,7 +561,7 @@ def get_static_correction_along_path_multiprocessing(dyn, iq_list = [] q_list = [] for iq, q in enumerate(q_path): - iq_list.append(iq) #yes I know this is stupid, is just range(q_path) + iq_list.append(iq) #yes I know this is stupid, is just range(len(q_path)) q_list.append(q) with Pool() as plwork: # diegom test 6 cores with Pool(6)************ @@ -571,6 +571,7 @@ def get_static_correction_along_path_multiprocessing(dyn, itertools.repeat(frequencies),itertools.repeat(v2_wq), itertools.repeat(print_dyn)) v2_wq,frequencies=plwork.starmap(multiprocessing_work1,parameters) + plwork.close() #remember to close all your pools or they keep using memory/space. # ============================================================================ # === print result ================================== @@ -591,6 +592,7 @@ def get_static_correction_along_path_multiprocessing(dyn, def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): # print("Diegom_test,iq=",iq) + print("iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, k_grid=k_grid, q=np.array(q), T=T, verbose = False) From 7a6a8b2f13400d188dc5cd2af88209805bfda35e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 11 May 2022 08:50:35 +0200 Subject: [PATCH 011/204] Solving parsing data bug with a badly written quickfix. --- cellconstructor/Spectral.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index f5edf0ff..18df41cb 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -563,21 +563,27 @@ def get_static_correction_along_path_multiprocessing(dyn, for iq, q in enumerate(q_path): iq_list.append(iq) #yes I know this is stupid, is just range(len(q_path)) q_list.append(q) - - with Pool() as plwork: # diegom test 6 cores with Pool(6)************ - parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), - itertools.repeat(k_grid),itertools.repeat(T), - itertools.repeat(mm_mat),itertools.repeat(name_dyn), - itertools.repeat(frequencies),itertools.repeat(v2_wq), - itertools.repeat(print_dyn)) - v2_wq,frequencies=plwork.starmap(multiprocessing_work1,parameters) - plwork.close() #remember to close all your pools or they keep using memory/space. + lengthT = x_length_exp.T + result = [] + parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), + itertools.repeat(k_grid),itertools.repeat(T), + itertools.repeat(mm_mat),itertools.repeat(name_dyn), + itertools.repeat(frequencies),itertools.repeat(v2_wq), + itertools.repeat(print_dyn),itertools.repeat(lengthT)) + + freeze_support() #for windows users + # with Pool() as plwork: # diegom test 6 cores with Pool(6)************ + # v2_wq[:,:],frequencies[:,:] = plwork.starmap(multiprocessing_work1,parameters) + plwork = Pool() + v2_wq, frequencies = plwork.starmap(multiprocessing_work1,parameters) + plwork.close() #remember to close all your pools or they keep using memory/space. + plwork.join() # ============================================================================ # === print result ================================== - frequencies *= CC.Units.RY_TO_CM - v2_wq *= CC.Units.RY_TO_CM - result=np.hstack((x_length_exp.T,v2_wq,frequencies)) + # frequencies *= CC.Units.RY_TO_CM + # v2_wq *= CC.Units.RY_TO_CM + # result=np.hstack((x_length_exp.T,v2_wq,frequencies)) fmt_txt='%10.6f\t\t'+n_mod*'%11.7f\t'+'\t'+n_mod*'%11.7f\t' print(" ") @@ -601,8 +607,10 @@ def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequenc frequencies[iq,:] = np.sign(w2)*np.sqrt(np.abs(w2)) if print_dyn: Methods.save_qe(dyn,q,dynq,frequencies[iq,:],pol,fname=name_dyn+str(iq+1)) - return v2_wq,frequencies - + frequencies[iq,:] *= CC.Units.RY_TO_CM + v2_wq[iq,:] *= CC.Units.RY_TO_CM + result = np.hstack((lengthT,v2_wq,frequencies)) + return result[iq,:] From d62530c0ada26e689db8ffba8d12a57f27f8b38a Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 11 May 2022 11:31:38 +0200 Subject: [PATCH 012/204] freeze_support for windows --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 18df41cb..36ed495f 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -21,7 +21,7 @@ import time from cellconstructor.Settings import ParallelPrint as print -from multiprocessing import Pool +from multiprocessing import Pool, freeze_support """ From d1fccf2810cafa33862ae9f639fb3269fd4186a1 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 11 May 2022 11:51:28 +0200 Subject: [PATCH 013/204] Renaming function for clarity/readability --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 36ed495f..ff31103b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -575,7 +575,7 @@ def get_static_correction_along_path_multiprocessing(dyn, # with Pool() as plwork: # diegom test 6 cores with Pool(6)************ # v2_wq[:,:],frequencies[:,:] = plwork.starmap(multiprocessing_work1,parameters) plwork = Pool() - v2_wq, frequencies = plwork.starmap(multiprocessing_work1,parameters) + v2_wq, frequencies = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) plwork.close() #remember to close all your pools or they keep using memory/space. plwork.join() # ============================================================================ @@ -596,7 +596,7 @@ def get_static_correction_along_path_multiprocessing(dyn, np.savetxt(filename_st,result,fmt=fmt_txt,header=head) # ================================================================================== -def multiprocessing_work1(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): +def multiprocessing_work_static_correction_along_path(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): # print("Diegom_test,iq=",iq) print("iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, From 61cbc036b820fbaaec4ce0c2899ecbc8288061fd Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 12 May 2022 08:22:30 +0200 Subject: [PATCH 014/204] Cleaning for merge. --- cellconstructor/Spectral.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ff31103b..5f8946c3 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -572,7 +572,7 @@ def get_static_correction_along_path_multiprocessing(dyn, itertools.repeat(print_dyn),itertools.repeat(lengthT)) freeze_support() #for windows users - # with Pool() as plwork: # diegom test 6 cores with Pool(6)************ + # with Pool() as plwork: # test 6 cores with Pool(6)************ # v2_wq[:,:],frequencies[:,:] = plwork.starmap(multiprocessing_work1,parameters) plwork = Pool() v2_wq, frequencies = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) @@ -597,7 +597,6 @@ def get_static_correction_along_path_multiprocessing(dyn, # ================================================================================== def multiprocessing_work_static_correction_along_path(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): - # print("Diegom_test,iq=",iq) print("iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, k_grid=k_grid, q=np.array(q), From bd10811ded2fd82deba45936a4c963b0afc11ad4 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 13 May 2022 15:55:21 +0200 Subject: [PATCH 015/204] Some small cleaning --- FModules/third_order_cond.f90 | 111 ++++---- cellconstructor/ThermalConductivity.py | 376 +++++++++++++++++++++---- 2 files changed, 369 insertions(+), 118 deletions(-) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 9f197350..59485842 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -2,19 +2,19 @@ module third_order_cond contains - subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) + subroutine interpol_v2(fc,R2,R3,pos,q2,q3,fc_interp,n_blocks,nat) IMPLICIT NONE ! INTEGER, PARAMETER :: DP = selected_real_kind(14,200) INTEGER, intent(IN) :: nat, n_blocks - REAL(DP), intent(IN) :: R2(3,n_blocks),R3(3,n_blocks) + REAL(DP), intent(IN) :: R2(3,n_blocks),R3(3,n_blocks),pos(3,nat) REAL(DP),INTENT(in) :: fc(n_blocks,3*nat,3*nat,3*nat) REAL(DP),INTENT(in) :: q2(3), q3(3) COMPLEX(DP),INTENT(out) :: fc_interp(3*nat, 3*nat, 3*nat) ! REAL(DP), parameter :: tpi=3.14159265358979323846_DP*2.0_DP - REAL(DP) :: arg - COMPLEX(DP) :: phase + REAL(DP) :: arg, arg1 + COMPLEX(DP) :: phase, phase1 INTEGER :: i_block, a,b,c ! fc_interp = cmplx(0._dp, 0._dp) @@ -23,14 +23,7 @@ subroutine interpol_v2(fc,R2,R3,q2,q3,fc_interp,n_blocks,nat) DO i_block = 1, n_blocks arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) phase = CMPLX(Cos(arg),Sin(arg), kind=DP) - ! -! DO c = 1,3*nat -! DO b = 1,3*nat -! DO a = 1,3*nat -! fc_interp(a,b,c) = fc_interp(a,b,c) + phase*fc(i_block,a,b,c) -! ENDDO -! ENDDO -! ENDDO + fc_interp = fc_interp + phase*fc(i_block,:,:,:) ! END DO @@ -75,7 +68,8 @@ subroutine interpol_v3(fc,pos,R2,R3,q1,q2,q3,fc_interp,n_blocks,nat) end subroutine interpol_v3 - subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, bubble) + subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, & + classical, bubble) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -85,7 +79,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, real(kind=DP), intent(IN) :: sigma(n_mod) real(kind=DP), intent(IN) :: T real(kind=DP), intent(IN) :: freq(n_mod,3) - logical , intent(IN) :: is_gamma(3), gaussian + logical , intent(IN) :: is_gamma(3), gaussian, classical complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 integer, intent(IN) :: n_mod, ne @@ -104,11 +98,15 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, if (.not. is_gamma(3) .or. i > 3) q3(i,2)=1.0_dp/freq(i,3) end do - call bose_freq(T, n_mod, freq(:,2), q2(:,3)) - call bose_freq(T, n_mod, freq(:,3), q3(:,3)) - + if(classical) then + call eq_freq(T, n_mod, freq(:,2), q2(:,3)) + call eq_freq(T, n_mod, freq(:,3), q3(:,3)) + else + call bose_freq(T, n_mod, freq(:,2), q2(:,3)) + call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + endif - bubble=(0.0_dp,0.0_dp) + bubble=CMPLX(0.0_dp,0.0_dp) DO rho3=1,n_mod DO rho2=1,n_mod @@ -167,7 +165,7 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussi endif - selfnrg=(0.0_dp,0.0_dp) + selfnrg=CMPLX(0.0_dp,0.0_dp) DO mu = 1,n_mod DO rho3=1,n_mod @@ -246,7 +244,7 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus n2=w_q2(3) n3=w_q3(3) ! - bose_P = 1 + n2 + n3 + bose_P = 1.0_DP + n2 + n3 omega_P = w3+w2 omega_P2 = (omega_P)**2 ! @@ -276,33 +274,29 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus ELSE IF(gaussian) then DO ie = 1,ne - if(omega_P2-energies(ie)**2 .ne. 0.0_DP) then - re_p = bose_P *omega_P/(omega_P2-energies(ie)**2) - im_p = bose_P *gaussian_function(omega_P-energies(ie), sigma) + im_p = bose_P *gaussian_function(energies(ie) - omega_P, sigma) + if(energies(ie) - omega_P .ne. 0.0_DP) then + re_p = bose_P/(energies(ie) - omega_P) + else re_p = 0.0_DP - im_p = bose_P *gaussian_function(omega_P-energies(ie), sigma) endif ctm_P = CMPLX(re_p, im_p, kind=DP) - if(omega_M2-energies(ie)**2 .ne. 0.0_DP) then - !if(omega_M > 0.0_DP) then - re_p = bose_M *omega_M/(omega_M2-energies(ie)**2) - im_p = bose_M *gaussian_function(omega_M-energies(ie), sigma) - !else - re_p1 = bose_M *omega_M/(omega_M2-energies(ie)**2) - im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-energies(ie), sigma) - !endif + + im_p = bose_M *gaussian_function(energies(ie) + omega_M, sigma) + im_p1 = bose_M *gaussian_function(energies(ie) - omega_M, sigma) + if(energies(ie) + omega_M .ne. 0.0_DP) then + re_p = bose_M/(energies(ie) + omega_M) + else + re_p = 0.0_DP + endif + if(energies(ie) - omega_M .ne. 0.0_DP) then + re_p1 = bose_M/(energies(ie) - omega_M) else - !if(omega_M > 0.0_DP) then - re_p = 0.0_DP - im_p = bose_M *gaussian_function(omega_M-energies(ie), sigma) - !else - re_p1 = 0.0_DP - im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-energies(ie), sigma) - !endif + re_p1 = 0.0_DP endif ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) - ctm(ie) = ctm_P - ctm_M + ctm(ie) = ctm_P + ctm_M ENDDO ELSE DO ie = 1,ne @@ -344,7 +338,7 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La n2=w_q2(3) n3=w_q3(3) ! - bose_P = 1 + n2 + n3 + bose_P = 1.0_DP + n2 + n3 omega_P = w3+w2 omega_P2 = (omega_P)**2 ! @@ -353,31 +347,26 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La omega_M2 = (omega_M)**2 ! if(gaussian) then + im_p = bose_P *gaussian_function(value - omega_P, sigma) if(omega_P2-value**2 .ne. 0.0_DP) then - re_p = bose_P *omega_P/(omega_P2-value**2) - im_p = bose_P *gaussian_function(omega_P-value, sigma) + re_p = bose_P/(value - omega_P) else re_p = 0.0_DP - im_p = bose_P *gaussian_function(omega_P-value, sigma) endif ctm_P = CMPLX(re_p, im_p, kind=DP) - if(omega_M2-value**2 .ne. 0.0_DP) then - !if(omega_M > 0.0_DP) then - re_p = bose_M *omega_M/(omega_M2-value**2) - im_p = bose_M *gaussian_function(omega_M-value, sigma) - !else - re_p1 = bose_M *omega_M/(omega_M2-value**2) - im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-value, sigma) - !endif + + im_p = bose_M *gaussian_function(value + omega_M, sigma) + im_p1 = bose_M *gaussian_function(value - omega_M, sigma) + if(value + omega_M .ne. 0.0_DP) then + re_p = bose_M/(value + omega_M) else - !if(omega_M > 0.0_DP) then - re_p = 0.0_DP - im_p = bose_M *gaussian_function(omega_M-value, sigma) - !else - re_p1 = 0.0_DP - im_p1 = bose_M *gaussian_function(-1.0_DP*omega_M-value, sigma) - !endif + re_p = 0.0_DP endif + if(value - omega_M .ne. 0.0_DP) then + re_p1 = bose_M/(value - omega_M) + else + re_p1 = 0.0_DP + endif ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) else reg = CMPLX(value, sigma, kind=DP)**2 @@ -386,7 +375,7 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La endif ! IF(gaussian) then - ctm = ctm_P - ctm_M + ctm = ctm_P + ctm_M lambda_out=-ctm/8.0_DP* w2m1*w3m1 !lambda_out=-ctm * w2m1*w3m1/4.0_dp ELSE @@ -486,7 +475,7 @@ FUNCTION gaussian_function(x,sigma) REAL(DP) :: gaussian_function REAL(DP), intent(in) :: x, sigma - gaussian_function = exp(-0.5_DP*x**2/sigma**2)/sqrt(2.0_DP*sigma**2/PI) + gaussian_function = exp(-0.5_DP*(x/sigma)**2)/sqrt(2.0_DP/PI)/sigma ! multiplied with pi END FUNCTION diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index f17dd65e..aa3402b4 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -7,6 +7,7 @@ import numpy as np import os, sys import scipy, scipy.optimize +import h5py # Import the Fortran Code import symph @@ -255,11 +256,14 @@ def check_degeneracy(x, tol): def stupid_centering_fc3(tensor3): rprim = tensor3.unitcell_structure.unit_cell.copy() - print(rprim) + irprim = np.linalg.inv(rprim) + rsup = tensor3.supercell_structure.unit_cell.copy() + irsup = np.linalg.inv(rsup) + #print(rprim) positions = tensor3.unitcell_structure.coords.copy() xpos = np.dot(positions, np.linalg.inv(rprim)) natom = len(xpos) - print(xpos) + #print(xpos) symbols = tensor3.unitcell_structure.atoms unique_symbols = np.unique(symbols) unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 @@ -268,38 +272,70 @@ def stupid_centering_fc3(tensor3): for jat in range(len(unique_symbols)): if(symbols[iat] == unique_symbols[jat]): numbers[iat] = unique_numbers[jat] - print(numbers) + #print(numbers) cell = (rprim, xpos, numbers) if(tensor3.n_R == tensor3.n_sup**2): print('Not previously centered. Stupid centering!') for ir in range(tensor3.n_R): - xvec2 = tensor3.x_r_vector2[:,ir] - xvec3 = tensor3.x_r_vector3[:,ir] - xvec2_old = xvec2.copy() - xvec3_old = xvec3.copy() - rvec2 = np.dot(xvec2, cell[0]) - rvec3 = np.dot(xvec3, cell[0]) - for i in range(3): - if(xvec2[i] > float(tensor3.supercell_size[i])/2.0): - xvec2[i] -= tensor3.supercell_size[i] - elif(xvec2[i] <= -1.0*float(tensor3.supercell_size[i])/2.0): - xvec2[i] += tensor3.supercell_size[i] - if(xvec3[i] > float(tensor3.supercell_size[i])/2.0): - xvec3[i] -= tensor3.supercell_size[i] - elif(xvec3[i] <= -1.0*float(tensor3.supercell_size[i])/2.0): - xvec3[i] += tensor3.supercell_size[i] - tensor3.x_r_vector2[:,ir] = xvec2 - tensor3.x_r_vector3[:,ir] = xvec3 - tensor3.r_vector2[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector2[:,ir]) - tensor3.r_vector3[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector3[:,ir]) + rvec2 = tensor3.r_vector2[:,ir].copy() + rvec3 = tensor3.r_vector3[:,ir].copy() + xvec2 = np.dot(rvec2, irsup) + xvec3 = np.dot(rvec3, irsup) + size2 = np.linalg.norm(rvec2) + size3 = np.linalg.norm(rvec3) + size = np.linalg.norm(rvec3 - rvec2) + size2 + size3 + for i in range(-2,3): + for j in range(-2,3): + for k in range(-2,3): + xvec21 = xvec2 + np.array([i,j,k]) + rvec21 = np.dot(xvec21, rsup) + for i1 in range(-2,3): + for j1 in range(-2,3): + for k1 in range(-2,3): + xvec31 = xvec3 + np.array([i1,j1,k1]) + rvec31 = np.dot(xvec31, rsup) + size1 = np.linalg.norm(rvec21) + np.linalg.norm(rvec31) + np.linalg.norm(rvec31 - rvec21) + if(size1 < size): + size = size1 + rvec2 = rvec21.copy() + rvec3 = rvec31.copy() + tensor3.r_vector2[:,ir] = rvec2 + tensor3.r_vector3[:,ir] = rvec3 + tensor3.x_r_vector2[:,ir] = np.dot(tensor3.r_vector2[:,ir], irprim) + tensor3.x_r_vector3[:,ir] = np.dot(tensor3.r_vector3[:,ir], irprim) + + + #for ir in range(tensor3.n_R): + # xvec2 = tensor3.x_r_vector2[:,ir] + # xvec3 = tensor3.x_r_vector3[:,ir] + # xvec2_old = xvec2.copy() + # xvec3_old = xvec3.copy() + # rvec2 = np.dot(xvec2, cell[0]) + # rvec3 = np.dot(xvec3, cell[0]) + # for i in range(3): + # if(xvec2[i] >= float(tensor3.supercell_size[i])/2.0): + # xvec2[i] -= tensor3.supercell_size[i] + # elif(xvec2[i] < -1.0*float(tensor3.supercell_size[i])/2.0): + # xvec2[i] += tensor3.supercell_size[i] + # if(xvec3[i] >= float(tensor3.supercell_size[i])/2.0): + # xvec3[i] -= tensor3.supercell_size[i] + # elif(xvec3[i] < -1.0*float(tensor3.supercell_size[i])/2.0): + # xvec3[i] += tensor3.supercell_size[i] + # tensor3.x_r_vector2[:,ir] = xvec2 + # tensor3.x_r_vector3[:,ir] = xvec3 + # tensor3.r_vector2[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector2[:,ir]) + # tensor3.r_vector3[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector3[:,ir]) else: print('Probably already centered! Nothing to do!') + + + return tensor3 class ThermalConductivity: - def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearing_type = 'adaptive', off_diag = False): + def __init__(self, dyn, tensor3, kpoint_grid = 2, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', off_diag = False): """ @@ -309,14 +345,15 @@ def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearin Necesary: - dyn: SSCHA dynamical matrix object - tensor3: SSCHA 3rd order force constants + dyn : SSCHA dynamical matrix object + tensor3 : SSCHA 3rd order force constants - kpoint_grid: Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and - the calculation of the phonon lifetimes. Default is 10. - smearing_scale: Scale for the smearing constant if adaptive smearing is used. Default value is 2.0 - smearing_type: Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). - off_diag: Boolean parameter for the calculation of the off-diagonal elements of group velocity. + kpoint_grid : Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and + the calculation of the phonon lifetimes. Default is 2. + smearing_scale : Scale for the smearing constant if adaptive smearing is used. Default value is 2.0 + smearing_type : Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). + cp_mode : Flag determining how phonon occupation factors are calculated (quantum/classical), default is quantum + off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. """ @@ -334,6 +371,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearin print('Supercell: ') print(self.supercell) self.smearing_type = smearing_type + self.cp_mode = cp_mode self.off_diag = off_diag self.volume = self.dyn.structure.get_volume() @@ -350,6 +388,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearin self.delta_omega = 0.0 self.freqs = np.zeros((self.nkpt, self.nband)) + self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) @@ -366,6 +405,175 @@ def __init__(self, dyn, tensor3, kpoint_grid = 10, smearing_scale = 1.0, smearin self.got_scattering_rates_isotopes = False ################################################################################################################################## + + def save(self, filename = 'sscha_thermal_conductivity.h5'): + + """ + Routine to save most of the information needed for further postprocessing. + + filename : Title of the file the information is to be stored to + + """ + + hf = h5py.File(filename, 'w') + + ne = None + + if(self.smearing_scale is not None): + hf.create_dataset('smearing_scale', data = np.array([self.smearing_scale])) + hf.create_dataset('kpoint_grid', data = self.kpoint_grid) + hf.create_dataset('unit_cell', data = self.unitcell) + hf.create_dataset('supercell', data = self.supercell) + dt = h5py.special_dtype(vlen=str) + hf.create_dataset('smearing_type', data = self.smearing_type, dtype=dt) + hf.create_dataset('cp_mode', data = self.cp_mode) + hf.create_dataset('off_diag', data = self.off_diag) + hf.create_dataset('reciprocal_lattice', data = self.reciprocal_lattice) + hf.create_dataset('k_points', data = self.k_points) + hf.create_dataset('qpoints', data = self.qpoints) + hf.create_dataset('delta_omega', data = self.delta_omega) + hf.create_dataset('nkpt', data = self.nkpt) + hf.create_dataset('nband', data = self.nband) + hf.create_dataset('nirrkpt', data = self.nirrkpt) + + irrqpts = [hf.create_group('irreducible_kpoint' + str(i + 1)) for i in range(self.nirrkpt)] + for ikpt in range(self.nirrkpt): + irrqpts[ikpt].create_dataset('k_point', data = self.irr_k_points[ikpt]) + irrqpts[ikpt].create_dataset('star', data = self.qstar_list[ikpt]) + irrqpts[ikpt].create_dataset('frequency', data = self.freqs[self.qstar_list[ikpt][0]]) + eigvecs = [] + gvels = [] + sigmas = [] + for istar in range(len(self.qstar[ikpt])): + jkpt = self.qstar_list[ikpt][istar] + eigvecs.append(self.eigvecs[jkpt]) + gvels.append(self.gvels[jkpt]) + sigmas.append(self.sigmas[jkpt]) + eigvecs = np.array(eigvecs) + gvels = np.array(gvels) + sigmas = np.array(sigmas) + irrqpts[ikpt].create_dataset('eigenvectors', data = eigvecs) + irrqpts[ikpt].create_dataset('group_velocities', data = gvels) + irrqpts[ikpt].create_dataset('sigmas', data = sigmas) + keys = [] + for key in self.lifetimes.keys(): + keys.append(key) + if(len(keys) > 0): + for ik in range(len(keys)): + irrqpts[ikpt].create_dataset('lifetimes_' + keys[ik], data = self.lifetimes[keys[ik]][self.qstar_list[ikpt][0]]) + keys = [] + for key in self.freqs_shifts.keys(): + keys.append(key) + if(len(keys) > 0): + for ik in range(len(keys)): + irrqpts[ikpt].create_dataset('freqs_shifts_' + keys[ik], data = self.freqs_shifts[keys[ik]][self.qstar_list[ikpt][0]]) + keys = [] + for key in self.lineshapes.keys(): + keys.append(key) + if(len(keys) > 0): + for ik in range(len(keys)): + if(ne is None): + ne = np.shape(self.lineshapes[keys[ik]])[-1] + else: + if(ne != np.shape(self.lineshapes[keys[ik]])[-1]): + raise RuntimeError('Number of energy/frequency points not same for all temperatures!') + irrqpts[ikpt].create_dataset('lineshapes_' + keys[ik], data = self.lineshapes[keys[ik]][self.qstar_list[ikpt][0]]) + keys = [] + for key in self.cp.keys(): + keys.append(key) + if(len(keys) > 0): + for ik in range(len(keys)): + irrqpts[ikpt].create_dataset('cp_' + keys[ik], data = self.cp[keys[ik]][self.qstar_list[ikpt][0]]) + keys = [] + for key in self.kappa.keys(): + keys.append(key) + if(len(keys) > 0): + for ik in range(len(keys)): + hf.create_dataset('kappa_' + keys[ik], data = self.kappa[keys[ik]]) + + hf.create_dataset('ne', data = ne) + hf.close() + + def load(self, filename): + + """ + Routine to read the information that one might need for postprocessing! + + """ + + hf = h5py.File(filename, 'r') + + try: + self.smearing_scale = np.array(hf.get('smearing_scale')) + except: + pass + self.kpoint_grid = np.array(hf.get('kpoint_grid')) + self.unitcell = np.array(hf.get('unit_cell')) + self.supercell = np.array(hf.get('supercell')) + self.smearing_type = np.array2string(np.array(hf.get('smearing_type')))[2:-1] + self.cp_mode = np.array2string(np.array(hf.get('cp_mode')))[2:-1] + self.off_diag = np.array(hf.get('off_diag')).item() + self.reciprocal_lattice = np.array(hf.get('reciprocal_lattice')) + self.k_points = np.array(hf.get('k_points')) + self.qpoints = np.array(hf.get('qpoints')) + self.delta_omega = np.array(hf.get('delta_omega')).item() + self.nkpt = np.array(hf.get('nkpt')).item() + self.nband = np.array(hf.get('nband')).item() + self.nirrkpt = np.array(hf.get('nirrkpt')).item() + ne = np.array(hf.get('ne')).item() + self.freqs = np.zeros((self.nkpt, self.nband)) + self.gruneisen = np.zeros((self.nkpt, self.nband)) + self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) + if(self.off_diag): + self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) + else: + self.gvels = np.zeros((self.nkpt, self.nband, 3)) + self.sigmas = np.zeros_like(self.freqs) + + self.irr_k_points = [] + self.qstar_list = [] + for i in range(self.nirrkpt): + self.irr_k_points.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('k_point'))) + self.qstar_list.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('star'))) + eigvecs = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('eigenvectors')) + gvels = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('group_velocities')) + sigmas = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('sigmas')) + + for istar in range(len(self.qstar_list[-1])): + jkpt = self.qstar_list[-1][istar] + self.freqs[jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('frequency')) + self.eigvecs[jkpt] = eigvecs[istar] + self.gvels[jkpt] = gvels[istar] + self.sigmas[jkpt] = sigmas[istar] + keys = [] + for key in hf.get('irreducible_kpoint' + str(i + 1)).keys(): + keys.append(key) + for key in keys: + if('cp' in key): + temp = key.split('_')[-1] + if(temp not in self.cp.keys()): + self.cp[temp] = np.zeros((self.nkpt, self.nband)) + self.cp[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) + elif('lifetimes' in key): + temp = key.split('_')[-1] + if(temp not in self.lifetimes.keys()): + self.lifetimes[temp] = np.zeros((self.nkpt, self.nband)) + self.lifetimes[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) + elif('freqs_shifts' in key): + temp = key.split('_')[-1] + if(temp not in self.lifetimes.keys()): + self.freqs_shifts[temp] = np.zeros((self.nkpt, self.nband)) + self.freqs_shifts[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) + elif('lineshapes' in key): + temp = key.split('_')[-1] + if(temp not in self.lineshapes.keys()): + self.lineshapes[temp] = np.zeros((self.nkpt, self.nband, ne)) + self.lineshapes[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) + + for key in hf.keys(): + if('kappa' in key): + temp = key.split('_')[-1] + self.kappa[temp] = np.array(hf.get(key)) def set_kpoints(self): @@ -652,10 +860,13 @@ def setup_smearings(self, smearing_value = 0.00005): for ikpt in range(self.nkpt): for iband in range(self.nband): delta_v = np.linalg.norm(self.gvels[ikpt,iband]) - self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale - min_smear = np.average(np.average(self.sigmas))/10.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) - print(min_smear) - self.sigmas[self.sigmas < min_smear] = min_smear + if(delta_v > 0.0): + self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale + else: + self.sigmas[ikpt][iband] = 0.0 + min_smear = np.average(np.average(self.sigmas))/100.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) + #print(min_smear) + self.sigmas[self.sigmas == 0.0] = min_smear #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 if(self.smearing_type == 'constant'): self.sigmas[:,:] = smearing_value @@ -769,7 +980,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### - def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', cp_mode = 'quantum', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): """ @@ -780,7 +991,6 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = mode : Method to calculate lattice thermal conductivity: SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) - cp_mode : How to handle phonon populations (quantum or classical) gauss_smearing : If true will use the Gaussian function to satisfy energy conservation insted of Lorentzian lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. @@ -826,7 +1036,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, cp_mode = cp_mode, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -837,7 +1047,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, cp_mode = cp_mode, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -1038,15 +1248,20 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort scattering_grids = np.asfortranarray(scattering_grids).T weights = np.asfortranarray(weights) + classical = False + if(self.cp_mode == 'classical'): + classical = True + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, gauss_smearing, energies, len(energies), self.nirrkpt, \ - self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + for ikpt in range(self.nirrkpt): jkpt = self.qstar_list[ikpt][0] - print('Normalization of lineshapes (should be 0.5): ') - print(np.sum(curr_ls[ikpt], axis=1)*energies[0]) + #print('Normalization of lineshapes (should be 0.5): ') + #print(np.sum(curr_ls[ikpt], axis=1)*energies[0]) if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): for iband in range(self.nband): if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): @@ -1095,7 +1310,7 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies): ################################################################################################################################## - def get_heat_capacity(self, temperature, cp_mode = 'quantum'): + def get_heat_capacity(self, temperature): """ Calculate phonon mode heat capacity at temperature. @@ -1106,13 +1321,13 @@ def get_heat_capacity(self, temperature, cp_mode = 'quantum'): cp = np.zeros_like(self.freqs) for ikpt in range(self.nkpt): for iband in range(self.nband): - cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = cp_mode) + cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = self.cp_mode) self.cp[cp_key] = cp ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, write_lifetimes, cp_mode = 'quantum', gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1125,12 +1340,12 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, cp_mode = 'qua print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method, cp_mode = cp_mode) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon mode heat capacities for ' + format(temperature, '.1f') + ' K temperature!') - self.get_heat_capacity(temperature, cp_mode = cp_mode) + self.get_heat_capacity(temperature) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) @@ -1143,7 +1358,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, cp_mode = 'qua ################################################################################################################################## - def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, cp_mode = 'quantum', gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). @@ -1156,11 +1371,11 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, cp_mode = ' if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method, cp_mode = cp_mode) + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: - self.get_heat_capacity(temperature, cp_mode = cp_mode) + self.get_heat_capacity(temperature) scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) # scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): @@ -1258,7 +1473,7 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): #################################################################################################################################### - def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA', cp_mode = 'quantum'): + def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): """ Get phonon lifetimes in the full Brillouin zone at temperature. @@ -1269,8 +1484,7 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering method : Method by which phonon lifetimes are to be calculated. fortran/python : practically means only how many times fortran routine is being called. "fortran" much faster. LA/P : Approximation used for the lifetimes. - LA means lorentzian approximation (gives the value for which Lorentzian function with that value would \ - best approximate phonon lineshape). Default value. + LA means one shot approximation defined in J. Phys.: Condens. Matter 33 363001 . Default value. P means perturbative approximation. The one used by most other codes! """ @@ -1359,7 +1573,7 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering weights = np.asfortranarray(weights) classical = False - if(cp_mode == 'classical'): + if(self.cp_mode == 'classical'): classical = True selfengs = thermal_conductivity.get_lf.calculate_lifetimes(irrqgrid, scattering_grids, weights, scattering_events, \ @@ -1402,10 +1616,14 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering scattering_grids = np.asfortranarray(scattering_grids).T weights = np.asfortranarray(weights) + classical = False + if(self.cp_mode == 'classical'): + classical = True + selfengs = thermal_conductivity.get_lf.calculate_lifetimes_perturbative(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - gauss_smearing, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + gauss_smearing, classical, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): for iqpt in range(len(self.qstar_list[ikpt])): @@ -1740,7 +1958,7 @@ def get_dos(self, de = 0.1): de = de /(np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM/100.0/2.0/np.pi) if(np.all(self.freqs == 0)): - print('All frequencies are zero. Be sure that the harmonic properties are initialized!') + print('All frequencies are zero. Make sure that the harmonic properties are initialized!') else: frequencies = self.freqs.flatten() smearing = self.sigmas.flatten() @@ -1749,7 +1967,8 @@ def get_dos(self, de = 0.1): deltas = np.zeros((nsamples, len(frequencies))) for i in range(nsamples): for j in range(len(frequencies)): - deltas[i,j] = gaussian(frequencies[j], samples[i], smearing[j]) + if(frequencies[j] > 0.0): + deltas[i,j] = gaussian(frequencies[j], samples[i], smearing[j]) dos = np.sum(deltas, axis = 1) dos = dos/float(len(self.freqs)) @@ -2363,3 +2582,46 @@ def compute_k(inputs): return w_q, shift,hwhm ###################################################################################################################################### + + def calculate_mode_gruneisen(self): + + uc_positions = self.dyn.structure.coords.copy() + natom = len(uc_positions) + masses = self.dyn.structure.get_masses_array() + for ikpt in range(self.nirrkpt): + for iband in range(self.nband): + gruneisen = 0.0 + 0.0j + for iuc in range(len(self.fc3.r_vector2[0])): + phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(self.k_points[ikpt], self.fc3.r_vector2[:,iuc]))) + for iat in range(natom): + for jat in range(natom): + #rvec = self.fc3.r_vector2[:,iuc] + uc_positions[jat,:] - uc_positions[iat, :] + #phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(self.k_points[ikpt], rvec))) + mass_factor = 1.0/np.sqrt(masses[iat]*masses[jat]) + for kat in range(natom): + #for i in range(3): + # for j in range(3): + # for k in range(3): + # gruneisen += self.fc3.tensor[iuc,3*iat + i,3*jat + j,3*kat + k]*self.eigvecs[ikpt,iband,3*iat + i].conj()*self.eigvecs[ikpt,iband,3*jat + j]*(self.fc3.r_vector3[k,iuc] + uc_positions[kat,k])\ + # *phase_factor*mass_factor + gruneisen += np.einsum('ijk, i, j, k', self.fc3.tensor[iuc,3*iat:3*(iat + 1),3*jat:3*(jat + 1),3*kat:3*(kat + 1)], self.eigvecs[ikpt,iband,3*iat:3*(iat+1)].conj(), + self.eigvecs[ikpt,iband,3*jat:3*(jat+1)], self.fc3.r_vector3[:,iuc] + uc_positions[kat])*phase_factor*mass_factor + if(self.freqs[self.qstar_list[ikpt][0], iband] > 0.0): + #print(gruneisen.real, gruneisen.imag) + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + self.gruneisen[jqpt][iband] = -1.0*gruneisen.real/self.freqs[jqpt, iband]**2/6.0/BOHR_TO_ANGSTROM + else: + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + self.gruneisen[jqpt][iband] = 0.0 + + with open('Gruneisen_parameter', 'w+') as outfile: + outfile.write('# ' + format('Frequencies (THz)', STR_FMT)) + outfile.write(' ' + format('Gruneisen_parameter', STR_FMT)) + outfile.write('\n') + for ikpt in range(self.nkpt): + for iband in range(self.nband): + outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self.gruneisen[ikpt][iband], '.12e')) + outfile.write('\n') From 4439f07498cc9f18a8a451c01c63624d041ebd72 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 May 2022 09:35:58 +0200 Subject: [PATCH 016/204] Added function "get_diag_dynamic_correction_along_path_multiprocessing" --- cellconstructor/Spectral.py | 684 ++++++++++++++++++++++++++++++++++++ 1 file changed, 684 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5f8946c3..04536422 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1833,7 +1833,691 @@ def findne(val,e0,de): f.write("\n") # +def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, + k_grid, + e1, de, e0, + sm1, sm0, + sm1_id=None, sm0_id=None, + nsm=1, + q_path=[0.0,0.0,0.0], + q_path_file=None, + print_path = True, + T=0.0, + filename_sp = 'spectral_func', + filename_z = None, + filename_freq_dyn = 'freq_dynamic', + filename_shift_lw = 'v2_freq_shift_hwhm', + self_consist = False, + iterative=False, + numiter=200, + d3_scale_factor=None, + tensor2 = None): + + + """ + Get the spectral function for a list of energies, and several q along a given path, + in the diagonal approximation (off-diagonal terms of the self-energies are discarded). + The calculations are performed for several values of smearings to calculate the self-energy + and the Green function. The resuls is printed in the file + filename_sp_[id_smear]_[smear].dat (path length in 2pi/Angstrom, energies (cm-1), + spectral function (1/cm-1), mode components of the spectral function (1/cm-1) ). + The Z function [PRB 97 214101 (A20)] is also printed in filename_z_[id_smear]_[smear].dat. + The frequency shift (with respect to the SSCHA frequency) and linewidth are computed in three ways + (one optional). 1. One shot, evaluating the Z function in the SSCHA frequency value.2. Perturbative, + evaluating the perturbative correction. 3. (optional) solving the self-consistent relation (details + in [PRB 97 214101 (A21)]). The corresponding Lorenzian spectral functions are then printed. + + Parameters + ---------- + + dyn : Phonons() + The harmonic / SSCHA dynamical matrix + tensor3 : Tensor3() + The third order force constant matrix + k_grid : list(len = 3) + The integration grid on the Brillouin zone + e1, de ,e0: float + The list of energies considered (cm-1), from e0 to e1, with interval de + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy + + Optional + -------- + + nsm : integer + Number of smearings to consider + (default = 1) + T : float + The temperature + (default: 0 K) + sm0_id, sm1_id : float + Minimum and maximum value of the smearing (cm-1) for the term of the Green function + proportional to the identity. If not present, it is sm0_id = sm1_id = 2.0 * de + (default: None) + q_path : list of triplets + Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, + where the caculation is performed + (defualt: [0.0,0.0,0.0]) + q_path_file : string + Name of the file where the q_path can be read. + Format: column of triples, q points in 2pi/Angstrom + If the name of the file is present, it has the + priority over the q_path value + (default: None) + print_path : logical + If True (and the path is composed of more then one q-point), + a file 'path_len.dat' is printed. + Format: column of 4 values, coordinates of + the q-point and path length (in 2pi/Angstrom) . + (default: True) + filename_sp : string + filename_sp_[smear].dat + is the file where the spectral function is written. + Format: length of the path (in 2pi/Alat), + energy (cm-1),spectral function (1/cm-1), + single mode contributions to spectral function (1/cm-1) + (default: "spectral_func") + filename_z : string + if present, the file + filename_z_[smear].dat + with the z function is written + Format: length of the path (in 2pi/Alat), + energy (cm-1), z function (cm-1), + (default: None) + filename_shift_lw : string + filename_shift_lw_[method]_[smear].dat + is the file where + len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) + are printed. [method] are "one shot", "perturb" and "self-consist" + (the last one optional) + (default: "v2_freq_shift_hwhm") + filename_freq_dyn : string + filename_freq_dyn_[method]_[smear].dat + is the file where + len (2pi/Angstrom), freq (cm-1) (sorted in ascending order), corresponding HWHM (cm-1) + are printed. [method] are "one shot", "perturb" and "self-consist" + (the last one optional) + (default: "freq_dynamic") + self_consist : Logical + If True, the dynamical frequency is found solving the self-consistent + relation [PRB 97 214101 (A21)] + (default: False) + iterative : Logical + If True, the self-consistent relation is found iteratively + (default: False) + numiter : integer + Number of maximum steps to find the self-consistency iteratively + (default : 200) + d3_scale_factor : float + If present, the 3rd order FC is multiplied by this factor + (e.g. it can be used to make tests about the perturbative limit) + (default: None) + tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) + If present, this 2nd order FC overwrites the one + obtained from dyn. + (default: None) + + """ + + + + print(" ") + print(" ===========================================" ) + print(" Bubble diagonal dynamic correction " ) + print(" ===========================================" ) + print(" ") + print(" T= {:>5.1f} K".format(T)) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" ") + print(" Smearing values: ") + for sm in np.linspace(sm0,sm1,nsm): + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") + print(" ===========================================" ) + print(" " ) + + + if sm1_id != None and sm0_id != None: + for sm in np.linspace(sm0_id,sm1_id,nsm): + print(" sm_id= {:>6.2f} cm-1".format(sm)) + else: + sm1_id=de*2.0 + sm0_id=de*2.0 + + if ( tensor2 == None ): + + # Prepare the tensor2 + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + structure = tensor2.unitcell_structure + + + + # Scale the FC3 =========================================================================== + if d3_scale_factor != None : + print(" ") + print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) + print(" ") + tensor3.tensor=tensor3.tensor*d3_scale_factor + # ================================== q-PATH =============================================== + if q_path_file == None: + q_path=np.array(q_path) + else: + print(" ") + print(" q_path read from "+q_path_file) + print(" ") + q_path=np.loadtxt(q_path_file) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + # Get the length of the q path + x_length = np.zeros(len(q_path)) + q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) + x_length[1:] = q_tot + x_length=np.cumsum(x_length) + x_length_exp=np.expand_dims(x_length,axis=0) + # print the path q-points and length + if print_path and (q_path.shape[0] > 1) : + fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] + result=np.hstack((q_path,x_length_exp.T)) + np.savetxt('path_len.dat',result,fmt=fmt_txt) + print(" ") + print(" Path printed in path_len.dat ") + print(" ") + # ======================= Energy & Smearing ========================================== + # + # energy in input is in cm-1 + # smearing in input is in cm-1 + # converto to Ry + + # list of energies + energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM + ne=energies.shape[0] + # list of smearing + if nsm == 1 : + sm1=sm0 + sm1_id=sm0_id + smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM + smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM + # + # ========================================================================================== + # + + + # + print(" ") + #print(" Spectral function, in diagonal approximation, printed in "+filename_sp+"_[smear_id]_[smear].dat") + print(" Spectral function, in diagonal approximation, printed in "+filename_sp+"_[smear].dat") + print(" ") + if filename_z != None: + print(" ") + print(" Z function [PRB 97 214101 (A21)], printed in "+filename_z+"_[smear].dat") + print(" ") + + print(" ========================================= ") + print(" Frequncies shifts and widths calculations ") + print(" ========================================= ") + print(" ") + print(" Frequencies shifts and linewidths computed with perturbative approximation and one-shot calculation in: ") + print(" ") + #print(" "+filename_shift_lw +"_perturb_[smear_id]_[smear].dat") + #print(" "+filename_shift_lw +"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_shift_lw +"_perturb_[smear].dat") + print(" "+filename_shift_lw +"_one_shot_[smear].dat") + print(" ") + print(" ") + print(" Dynamical frequencies sorted, with HWHM: ") + print(" ") + #print(" "+filename_freq_dyn +"_perturb_[smear_id]_[smear].dat") + #print(" "+filename_freq_dyn +"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_freq_dyn +"_perturb_[smear].dat") + print(" "+filename_freq_dyn +"_one_shot_[smear].dat") + print(" ") + print(" ") + print(" Relative spectral functions in Lorentzian approximation: ") + print(" ") + #print(" "+filename_sp+"_lorentz_perturb_[smear_id]_[smear].dat") + #print(" "+filename_sp+"_one_shot_[smear_id]_[smear].dat") + print(" "+filename_sp+"_lorentz_perturb_[smear].dat") + print(" "+filename_sp+"_one_shot_[smear].dat") + print(" ") + if self_consist: + print(" ************************************************ ") + print(" Self-consistent search for dynamical frequencies ") + print(" ************************************************ ") + print(" ") + print(" Results printed in: ") + print(" ") + #print(" "+filename_shift_lw +"_[smear_id]_[smear].dat") + print(" "+filename_shift_lw +"_self-consist_[smear].dat") + print(" ") + print(" ") + #print(" "+filename_freq_dyn +"_[smear_id]_[smear].dat") + print(" "+filename_freq_dyn +"_self-consist_[smear].dat") + print(" ") + print(" ") + #print(" "+filename_sp+"_lorentz_[smear_id]_[smear].dat") + print(" "+filename_sp+"_lorentz_self-consist_[smear].dat") + print(" ") + print(" ") + # convert from Ry to cm-1 + smear_cm = smear * CC.Units.RY_TO_CM + smear_id_cm = smear_id * CC.Units.RY_TO_CM + energies_cm = energies * CC.Units.RY_TO_CM + + n_mod=3*dyn.structure.N_atoms + # + spectralf = np.zeros( (ne,n_mod,nsm), dtype=np.float64 ) + z = np.zeros( (ne,nsm,n_mod) , dtype=np.complex128 ) + z_pert = np.zeros( (ne,nsm,n_mod), dtype = np.complex128 ) + wq = np.zeros( n_mod, dtype = np.float64 ) + # + iq_list = [] + q_list = [] + for iq, q in enumerate(q_path): + iq_list.append(iq) #yes I know this is stupid, is just range(len(q_path)) + q_list.append(q) + parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), + itertools.repeat(k_grid),itertools.repeat(smear_id),itertools.repeat(smear_id_cm), + itertools.repeat(smear), itertools.repeat(smear_cm), itertools.repeat(energies), + itertools.repeat(T),itertools.repeat(nsm),itertools.repeat(filename_sp), + itertools.repeat(n_mod),itertools.repeat(energies_cm), + itertools.repeat(x_length),itertools.repeat(e0),itertools.repeat(de), + itertools.repeat(ne),itertools.repeat(filename_z),itertools.repeat(self_consist), + itertools.repeat(q_path),itertools.repeat(iterative),itertools.repeat(numiter), + itertools.repeat(filename_shift_lw),itertools.repeat(filename_freq_dyn)) + + freeze_support() #for windows users + plwork = Pool() + plwork.starmap(multiprocessing_work_diag_dynamic_correction_along_path,parameters) + plwork.close() #remember to close all your pools or they keep using memory/space. + plwork.join() + +def multiprocessing_work_diag_dynamic_correction_along_path(iq,q,tensor2,tensor3,k_grid, + smear_id, smear_id_cm, smear, smear_cm, energies, + T,nsm,filename_sp,n_mod,energies_cm, + x_length,e0,de,ne,filename_z,self_consist, + q_path,iterative,numiter,filename_shift_lw, + filename_freq_dyn): + def Lorenz(x,x0,G): + return G/((x-x0)**2+G**2)/np.pi/2.0 + def findne(val,e0,de): + #return int( round( ((val-e0)/de)+1 ) ) + return int(round( (val-e0)/de ) ) + + print("Diegom_test iq=",iq) + spectralf, z , z_pert, wq = get_diag_dynamic_bubble(tensor2, tensor3, + k_grid, np.array(q), + smear_id, smear, energies, + T, verbose=False ) + # + z *= CC.Units.RY_TO_CM + z_pert *= CC.Units.RY_TO_CM + wq *= CC.Units.RY_TO_CM + # convert from 1/Ry to 1/cm-1 + spectralf /= CC.Units.RY_TO_CM + for ism in range(nsm): + # + # pre-name for writing data + # + #name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip()# + name="{:6.2f}".format(smear_cm[ism]).strip() + # + # write spectral and z function + # + # ======= + # spectral func + # ======= + filename_new=filename_sp+'_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" + + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ---------------------------------------------------------------------------------------------------------\n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1)\n") + f.write("# ---------------------------------------------------------------------------------------------------------\n") + for ie, ene in enumerate(energies_cm): + out=spectralf[ie,:,ism] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + out=spectralf[ie,:,ism] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + # ======= + # z func + # ======= + if filename_z != None: + filename_new=filename_z+'_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod)+"\n" + + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ---------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), energy (cm-1), z function (cm-1) \n") + f.write("# ---------------------------------------------------- \n") + for ie, ene in enumerate(energies_cm): + out=z[ie,ism,:] + f.write(fmt.format(x_length[iq],ene,*out)) + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + out=z[ie,ism,:] + f.write(fmt.format(x_length[iq],ene,*out)) + + # ====================================== + # compute frequency shift and linewidth + # ====================================== + + if self_consist: + res=np.zeros((n_mod,2),dtype=np.float64) # self-consist shifted freq and linewidth + res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth + res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth + + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q_path[iq]) + for ifreq in range(n_mod): + done=False + if iterative : + # + freqold=wq[ifreq] + freqoldold=freqold + for i in range(numiter): + x=findne(freqold,e0,de) + if i==0: xtriv=x + freqshifted=np.real(z[x-1,ism,ifreq]) # Re(z) is the shifted freq + if abs(freqshifted-freqold)< 2*de: + done=True + break + else: + freqoldold=freqold + freqold=freqshifted + # + else: + xtriv=findne(wq[ifreq],e0,de) + osval=np.real(z[xtriv-1,ism,ifreq]) + diff=np.infty + for x in range(ne): + value=np.real(z[x,ism,ifreq])-energies_cm[x] + if( abs(value ) < 2*de) : + if ( 1.0 < abs(energies_cm[x]) or ( is_q_gamma and ifreq < 3 ) ): + done=True + if ( abs( energies_cm[x]-osval ) < diff ): + diff=abs( energies_cm[x]-osval ) + freqshifted=energies_cm[x] + + + # + if done: + # + res[ifreq,0]=freqshifted + x=findne(freqshifted,e0,de) + res[ifreq,1]=-np.imag(z[x-1,ism,ifreq]) + # + else: + # + print(" Self-consistency for the {:5d}-th mode of the {:5d}-th q-point not reached. " + "One-shot approx. value used".format(ifreq+1,iq+1)) + res[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) + res[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + # + res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) + res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + # + res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) + res_pert[ifreq,1]=-np.imag(z_pert[xtriv-1,ism,ifreq]) + else: + res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth + res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth + + for ifreq in range(n_mod): + xtriv=findne(wq[ifreq],e0,de) + # + res_os[ifreq,0]=np.real(z[xtriv-1,ism,ifreq]) + res_os[ifreq,1]=-np.imag(z[xtriv-1,ism,ifreq]) + # + res_pert[ifreq,0]=np.real(z_pert[xtriv-1,ism,ifreq]) + res_pert[ifreq,1]=-np.imag(z_pert[xtriv-1,ism,ifreq]) + + + + + # ======================= + # v2_freq, shift, hwhm + # ======================= + if self_consist: + filename_new=filename_shift_lw+'_self-consist_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") + out=np.concatenate((wq[:],res[:,0]-wq[:], res[:,1])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq[:],res[:,0]-wq[:], res[:,1])) + f.write(fmt.format(x_length[iq],*out)) + + filename_new=filename_shift_lw+'_one_shot_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") + out=np.concatenate((wq[:],res_os[:,0]-wq[:], res_os[:,1])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq[:],res_os[:,0]-wq[:], res_os[:,1])) + f.write(fmt.format(x_length[iq],*out)) + # + filename_new=filename_shift_lw+'_perturb_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") + out=np.concatenate((wq[:],res_pert[:,0]-wq[:], res_pert[:,1])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq[:],res_pert[:,0]-wq[:], res_pert[:,1])) + f.write(fmt.format(x_length[iq],*out)) + # ================================================ + # freq sorted, hwhm && Lorenztian spectral func + # ================================================ + + if self_consist: + + wq_shifted=res[:,0] + hwhm=res[:,1] + + sortidx=np.argsort(wq_shifted,axis=0) + + wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) + hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) + #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + # + # freq, freq + # + filename_new=filename_freq_dyn+'_self-consist_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ------------------------------------------------------------ \n") + f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") + f.write("# ------------------------------------------------------------ \n") + #out=np.concatenate((wq_shifted_sorted, + #wq_shifted_sorted_plus, + #wq_shifted_sorted_minus)) + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + # + # Lorenztian spectral func + # + filename_new=filename_sp+'_lorentz_self-consist_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ---------------------------------------------------------------------------------------------------------\n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1)\n") + f.write("# ---------------------------------------------------------------------------------------------------------\n") + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + else: + with open(filename_new,'a') as f: + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + # + wq_shifted=res_os[:,0] + hwhm=res_os[:,1] + + sortidx=np.argsort(wq_shifted,axis=0) + + wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) + hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) + #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + # + # freq, freq +/- hwhm + # + filename_new=filename_freq_dyn+'_one_shot_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ------------------------------------------------------------ \n") + f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") + f.write("# ------------------------------------------------------------ \n") + #out=np.concatenate((wq_shifted_sorted, + #wq_shifted_sorted_plus, + # wq_shifted_sorted_minus)) + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + # + # Lorentzian spectral func + # + filename_new=filename_sp+'_lorentz_one_shot_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# --------------------------------------------------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") + f.write("# --------------------------------------------------------------------------------------------------------- \n") + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + else: + with open(filename_new,'a') as f: + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + + # + wq_shifted=res_pert[:,0] + hwhm=res_pert[:,1] + + sortidx=np.argsort(wq_shifted,axis=0) + wq_shifted_sorted=np.take_along_axis(wq_shifted, sortidx, 0) + hwhm_sorted=np.take_along_axis(hwhm, sortidx, 0) + #wq_shifted_sorted_plus= wq_shifted_sorted+hwhm_sorted + #wq_shifted_sorted_minus= wq_shifted_sorted-hwhm_sorted + # + # freq, freq +/- hwhm + # + filename_new=filename_freq_dyn+'_perturb_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ------------------------------------------------------------ \n") + f.write("# len (2pi/Angstrom), SSCHA+shift (sorted) (cm-1), HWHM (cm-1) \n") + f.write("# ------------------------------------------------------------ \n") + #out=np.concatenate((wq_shifted_sorted, + #wq_shifted_sorted_plus, + #wq_shifted_sorted_minus)) + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq_shifted_sorted, + hwhm_sorted)) + f.write(fmt.format(x_length[iq],*out)) + # + # Lorenztian spectral func + # + filename_new=filename_sp+'_lorentz_perturb_'+name+'.dat' + fmt="{:>10.6f}\t"+"\t{:>11.3f}"+"\t{:>11.7f}"*(n_mod+1)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# --------------------------------------------------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1), spectral function mode components (1/cm-1) \n") + f.write("# --------------------------------------------------------------------------------------------------------- \n") + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + else: + with open(filename_new,'a') as f: + Lor_spectralf=np.zeros((ne,n_mod),dtype=np.float64) + for ifreq in range(n_mod): + Lor_spectralf[:,ifreq]=Lorenz(energies_cm, + wq_shifted_sorted[ifreq], + hwhm_sorted[ifreq]+smear_id_cm[ism]) + for ie, ene in enumerate(energies_cm): + out=Lor_spectralf[ie,:] + f.write(fmt.format(x_length[iq],ene,np.sum(out),*out)) + f.write("\n") + # + return 0 # ===== PERTURBATIVE CORRECTION TO SSCHA FREQUENCY (SHIFT and LINEWIDTH) ===================== From fa6efeee7461e6c73ff67ca4f4a38335ca0659f1 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 18 May 2022 15:02:15 +0200 Subject: [PATCH 017/204] get_static_correction_along_path_multiprocessing gets the processes parameter. --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 04536422..5f7b58cf 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -423,7 +423,7 @@ def get_static_correction_along_path_multiprocessing(dyn, print_dyn = False, name_dyn = "sscha_plus_odd_dyn", d3_scale_factor = None, - tensor2 = None): + tensor2 = None, processes = None): """ Get the dyn + static bubble correction along a given path and prints the SSCHA and the corrected frequencies in the file filename_st (path length in 2pi/Angstrom, SSCHA frequencies (cm-1), @@ -574,7 +574,7 @@ def get_static_correction_along_path_multiprocessing(dyn, freeze_support() #for windows users # with Pool() as plwork: # test 6 cores with Pool(6)************ # v2_wq[:,:],frequencies[:,:] = plwork.starmap(multiprocessing_work1,parameters) - plwork = Pool() + plwork = Pool(processes) v2_wq, frequencies = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) plwork.close() #remember to close all your pools or they keep using memory/space. plwork.join() From 6ae4c38c4cbe8bb57aa25d698de8734d4fe85b0d Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 18 May 2022 15:08:35 +0200 Subject: [PATCH 018/204] get_diag_dynamic_correction_along_path_multiprocessing gets the processes parameter. --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5f7b58cf..d32910b0 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1851,7 +1851,7 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, iterative=False, numiter=200, d3_scale_factor=None, - tensor2 = None): + tensor2 = None, processes = None): """ @@ -2127,7 +2127,7 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, itertools.repeat(filename_shift_lw),itertools.repeat(filename_freq_dyn)) freeze_support() #for windows users - plwork = Pool() + plwork = Pool(processes) plwork.starmap(multiprocessing_work_diag_dynamic_correction_along_path,parameters) plwork.close() #remember to close all your pools or they keep using memory/space. plwork.join() From fefd8a5f0c6f6bef0db8f825d3b91fb6815e7fa4 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 19 May 2022 08:14:05 +0200 Subject: [PATCH 019/204] Added function "get_full_dynamic_correction_along_path_multiprocessing" and defined processes flag. --- cellconstructor/Spectral.py | 288 +++++++++++++++++++++++++++++++++++- 1 file changed, 281 insertions(+), 7 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index d32910b0..f4c62be0 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -286,7 +286,7 @@ def get_static_correction_along_path(dyn, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom @@ -483,7 +483,10 @@ def get_static_correction_along_path_multiprocessing(dyn, If present, this 2nd order FC overwrites the one obtained from dyn. (default: None) - + processes : integer + Number of maximum processes (cpu) to be used during the calculation. + If 'None' then the number returned by os.cpu_count() is used. + (default: None) """ print(" ") @@ -853,7 +856,7 @@ def get_full_dynamic_correction_along_path(dyn, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom @@ -1014,6 +1017,273 @@ def get_full_dynamic_correction_along_path(dyn, +def get_full_dynamic_correction_along_path_multiprocessing(dyn, + tensor3, + k_grid, + e1, de, e0, + sm1, sm0, + sm1_id, sm0_id, + nsm=1, + T=0, + q_path=[0.0,0.0,0.0], + q_path_file=None, + print_path = True, + static_limit = False, + notransl = True, + diag_approx = False, + filename_sp='full_spectral_func', + d3_scale_factor=None, + tensor2 = None, processes = None): + + """ + Get the spectral function for a list of energies, and several q along a given path. + The calculations are performed for several values of smearings to calculate the self-energy + and the Green function. The resuls is printed in the file + filename_sp_[id_smear]_[smear].dat (path length in 2pi/Angstrom, energies (cm-1), + spectral function (1/cm-1)). + + Parameters + ---------- + + dyn : Phonons() + The harmonic / SSCHA dynamical matrix + tensor3 : Tensor3() + The third order force constant matrix + k_grid : list(len = 3) + The integration grid on the Brillouin zone + e1, de ,e0: float + The list of energies considered (cm-1), from e0 to e1, with interval de + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy + sm0_id, sm1_id : float + Minimum and maximum value of the smearing (cm-1) for the term of the Green function + proportional to the identity + + Optional + -------- + + nsm : integer + Number of smearings to consider + (default = 1) + T : float + The temperature + (default: 0 K) + q_path : list of triplets + Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, + where the caculation is performed + (default: [0.0,0.0,0.0]) + q_path_file : string + Name of the file where the q_path can be read. + Format: column of triples, q points in 2pi/Angstrom + If the name of the file is present, it has the + priority over the q_path value + (default: None) + print_path : logical + If True (and the path is composed of more then one q-point), + a file 'path_len.dat' is printed. + Format: column of 4 values, coordinates of + the q-point and path length (in 2pi/Angstrom) . + (default: True) + static limit : logical + If True the self-energy is evaluated at E=0. + The spectral function is given by delta peaks in correspondence + of the frequencies of the sscha + static bubble correction + (default : False) + notransl : logical + If True, the contribution to the spectral function given by the acoustic + phonons in Gamma is discarded. + (defaul = True) + diag approx : logical + If True, the off-diagonal terms of the slef-energy are discarded + (the same result can be obtained in a cheaper way by using the + corresponding function) + (default : False) + filename_sp : string + filename_sp_[id_smear]_[smear].dat + is the file where the result is written. + Format: length of the path (in 2pi/Alat), + energy (cm-1),spectral function (1/cm-1) + (default: "full_spectral_func") + d3_scale_factor : float + If present, the 3rd order FC is multiplied by this factor + (e.g. it can be used to make tests about the perturbative limit) + (default: None) + tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) + If present, this 2nd order FC overwrites the one + obtained from dyn. + (default: None) + processes : integer + Number of maximum processes (cpu) to be used during the calculation. + If 'None' then the number returned by os.cpu_count() is used. + (default: None) + """ + + print(" ") + print(" ===========================================" ) + print(" Bubble full dynamic correction " ) + print(" ===========================================" ) + print(" ") + print(" T= {:>5.1f} K".format(T)) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + if static_limit : + print(" ") + print(" - The static limit is considered - ") + print(" ") + if diag_approx : + print(" ") + print(" - The off-diagonal terms of the self-energy are discarded - ") + print(" ") + + + if ( tensor2 == None ): + + # Prepare the tensor2 + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + + # Scale the FC3 =========================================================================== + if d3_scale_factor != None : + print(" ") + print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) + print(" ") + tensor3.tensor=tensor3.tensor*d3_scale_factor + # ================================== q-PATH =============================================== + if q_path_file == None: + q_path=np.array(q_path) + else: + print(" ") + print(" q_path read from "+q_path_file) + print(" ") + q_path=np.loadtxt(q_path_file) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + # Get the length of the q path + x_length = np.zeros(len(q_path)) + q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) + x_length[1:] = q_tot + x_length=np.cumsum(x_length) + x_length_exp=np.expand_dims(x_length,axis=0) + # print the path q-points and length + if print_path and (q_path.shape[0] > 1) : + fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] + result=np.hstack((q_path,x_length_exp.T)) + np.savetxt('path_len.dat',result,fmt=fmt_txt) + print(" ") + print(" Path printed in path_len.dat ") + print(" ") + # ========================================================================================== + + # ======================= Energy & Smearing ========================================== + # energy in input is in cm-1 + # smearing in input is in cm-1 + # converto to Ry + + # list of energies + energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM + ne=energies.shape[0] + # list of smearing + if nsm == 1 : + sm1=sm0 + sm1_id=sm0_id + smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM + smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM + # ========================================================================================== + # + # + spectralf = np.zeros( (ne, nsm), dtype = np.float64 ) + # + smear_cm = smear * CC.Units.RY_TO_CM + smear_id_cm = smear_id * CC.Units.RY_TO_CM + energies_cm = energies * CC.Units.RY_TO_CM + iq_list = [] + q_list = [] + for iq, q in enumerate(q_path): + iq_list.append(iq) #yes I know this is stupid, is just range(len(q_path)) + q_list.append(q) + # spectralf[:, :] = get_full_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), + # smear_id, smear, energies, T, + # static_limit, notransl , + # diag_approx, verbose=False ) + # + # # convert from 1/Ry to 1/cm-1 + # spectralf /= CC.Units.RY_TO_CM + # + # + # # ================================================================================== + # + # # print the result + # for ism in range(nsm): + # # + # name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + # # + # filename_new=filename_sp+'_'+name+'.dat' + # if iq == 0: + # with open(filename_new,'w') as f: + # f.write(" # ------------------------------------------------------------- \n") + # f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") + # f.write(" # ------------------------------------------------------------- \n") + # for ie, ene in enumerate(energies_cm): + # f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + # f.write("\n") + # else: + # with open(filename_new,'a') as f: + # for ie, ene in enumerate(energies_cm): + # f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + # f.write("\n") + freeze_support() #for windows users + parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), + itertools.repeat(k_grid),itertools.repeat(smear_id), itertools.repeat(smear), + itertools.repeat(energies), itertools.repeat(energies_cm), itertools.repeat(T), + itertools.repeat(static_limit), itertools.repeat(notransl), + itertools.repeat(diag_approx),itertools.repeat(nsm), itertools.repeat(smear_id_cm), + itertools.repeat(smear_cm),itertools.repeat(filename_sp), itertools.repeat(x_length)) + plwork = Pool(processes) + plwork.starmap(work_full_dynamic_correction_along_path_multiprocessing,parameters) + plwork.close() #remember to close all your pools or they keep using memory/space. + plwork.join() + + + + print(" ") + print(" Results printed in "+filename_sp+'_[id_smear]_[smear].dat') + print(" ") +def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3,k_grid,smear_id, smear, + energies, energies_cm, T,static_limit, notransl , + diag_approx,nsm,smear_id_cm,smear_cm,filename_sp , + x_length): + print("iq=",iq) + spectralf[:, :] = get_full_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), + smear_id, smear, energies, T, + static_limit, notransl , + diag_approx, verbose=False ) + + # convert from 1/Ry to 1/cm-1 + spectralf /= CC.Units.RY_TO_CM + + + # ================================================================================== + + # print the result + for ism in range(nsm): + # + name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + # + filename_new=filename_sp+'_'+name+'.dat' + if iq == 0: + with open(filename_new,'w') as f: + f.write(" # ------------------------------------------------------------- \n") + f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") + f.write(" # ------------------------------------------------------------- \n") + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + return 0 + @@ -1232,7 +1502,7 @@ def get_diag_dynamic_correction_along_path(dyn, tensor3, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom @@ -1897,7 +2167,7 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom @@ -1956,6 +2226,10 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, If present, this 2nd order FC overwrites the one obtained from dyn. (default: None) + processes : integer + Number of maximum processes (cpu) to be used during the calculation. + If 'None' then the number returned by os.cpu_count() is used. + (default: None) """ @@ -2144,7 +2418,7 @@ def findne(val,e0,de): #return int( round( ((val-e0)/de)+1 ) ) return int(round( (val-e0)/de ) ) - print("Diegom_test iq=",iq) + print("iq=",iq) spectralf, z , z_pert, wq = get_diag_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), smear_id, smear, energies, @@ -2690,7 +2964,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom From c9ff020b0d1139712daa937ab9198df469b6a21c Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 23 May 2022 12:38:36 +0200 Subject: [PATCH 020/204] Fix impropper call --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index f4c62be0..294377e2 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -599,7 +599,8 @@ def get_static_correction_along_path_multiprocessing(dyn, np.savetxt(filename_st,result,fmt=fmt_txt,header=head) # ================================================================================== -def multiprocessing_work_static_correction_along_path(iq,q,tensor2,tensor3,k_grid,T,mm_mat,name_dyn,frequencies,v2_wq,print_dyn): +def multiprocessing_work_static_correction_along_path(iq,q,tensor2,tensor3,k_grid,T, + mm_mat,name_dyn,frequencies,v2_wq,print_dyn,lengthT): print("iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, k_grid=k_grid, q=np.array(q), From 49899944b70a6022c9d000777504a98ed2f11ec3 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 30 May 2022 12:28:38 +0200 Subject: [PATCH 021/204] Result of "get_static_correction_along_path_multiprocessing" --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 294377e2..ebb65f22 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -578,7 +578,8 @@ def get_static_correction_along_path_multiprocessing(dyn, # with Pool() as plwork: # test 6 cores with Pool(6)************ # v2_wq[:,:],frequencies[:,:] = plwork.starmap(multiprocessing_work1,parameters) plwork = Pool(processes) - v2_wq, frequencies = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) + #v2_wq, frequencies = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) + result = plwork.starmap(multiprocessing_work_static_correction_along_path,parameters) plwork.close() #remember to close all your pools or they keep using memory/space. plwork.join() # ============================================================================ From b07db6554fba029d8641c7fcf52ddde40be35b83 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 21 Jun 2022 15:40:06 +0200 Subject: [PATCH 022/204] New centering and Kramer-Kronig --- FModules/get_lf.f90 | 99 +++- FModules/third_order_cond.f90 | 5 +- cellconstructor/ThermalConductivity.py | 665 +++++++++++++++++++++++-- setup.py | 2 + 4 files changed, 709 insertions(+), 62 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 9dd39234..cb446a97 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -4,7 +4,7 @@ module get_lf subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & - energies, ne, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, lineshapes) + classical, energies, ne, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, lineshapes) use omp_lib use third_order_cond @@ -27,7 +27,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ real(kind=DP), intent(in) :: masses(nat), energies(ne) real(kind=DP), intent(in) :: smear(3*nat, nqpt), smear_id(3*nat, nqpt) real(kind=DP), intent(in) :: T - logical, intent(in) :: gaussian + logical, intent(in) :: gaussian, classical real(kind=DP), dimension(nirrqpt, 3*nat, ne), intent(out) :: lineshapes integer :: iqpt, i, jqpt, tot_qpt, prev_events, nthreads @@ -59,8 +59,8 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, lineshape) & !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & - !$OMP nfc3, ne, fc3, r3_2, r3_3, smear, T, energies, parallelize, smear_id, lineshapes, & - !$OMP irrqgrid, qgrid, weights, gaussian) + !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, lineshapes, & + !$OMP irrqgrid, qgrid, weights, gaussian, classical) do iqpt = 1, nirrqpt allocate(lineshape(ne, 3*nat), self_energy(ne, 3*nat)) ! print*, iqpt @@ -92,13 +92,17 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ enddo ! print*, 'Got grids' call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & - nfc3, ne, curr_grid, curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, .not. parallelize, gaussian, self_energy) + nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear, T, & + energies, .not. parallelize, gaussian, classical, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) deallocate(curr_w) self_energy = self_energy/dble(tot_qpt) + if(gaussian) then + call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies) + endif + call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) do i = 1, 3*nat @@ -123,7 +127,7 @@ end subroutine calculate_lineshapes subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, & - nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) + classical, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) use omp_lib implicit none @@ -144,7 +148,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat, nqpt) real(kind=DP), intent(in) :: T - logical, intent(in) :: gaussian + logical, intent(in) :: gaussian, classical complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies integer :: iqpt, i, tot_qpt, jqpt, prev_events, nthreads @@ -201,8 +205,8 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even curr_w(jqpt) = weights(prev_events + jqpt) enddo call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & - nfc3, 3*nat, curr_grid, curr_w, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, w_q, .not. parallelize, gaussian, self_energy) + nfc3, 3*nat, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, & + smear, T, w_q, .not. parallelize, gaussian, classical, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) @@ -325,7 +329,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 do i = 1, 3*nat if(w_q(i) .ne. 0.0_DP) then - self_energies(iqpt, i) = self_energy(i)/2.0_DP/w_q(i) + self_energies(iqpt, i) = sqrt(w_q(i)**2 + self_energy(i)) else self_energies(iqpt, i) = complex(0.0_DP, 0.0_DP) endif @@ -365,11 +369,12 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc complex(kind=DP), intent(out) :: self_energy(3*nat) integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 - real(kind=DP), dimension(3) :: kpt, mkpt + real(kind=DP), dimension(3) :: kpt, mkpt, mkpt_r real(kind=DP), dimension(3*nat) :: w2_k, w2_mk_mq real(kind=DP), dimension(3*nat) :: w_k, w_mk_mq real(kind=DP), allocatable, dimension(:,:,:) :: mass_array real(kind=DP), dimension(3*nat, 3) :: freqs_array + real(kind=DP), dimension(3, 3) :: ikprim complex(kind=DP), dimension(3*nat) :: selfnrg complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq ! complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols @@ -377,6 +382,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas + ikprim = inv(kprim) self_energy = complex(0.0_DP, 0.0_DP) allocate(mass_array(3*nat, 3*nat, 3*nat)) do iat = 1, nat @@ -390,10 +396,10 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc ! print*, 'Calculating self-energy!' !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & - !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & + !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, mkpt_r, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, iat, jat, kat, freqs_array, if_gammas, is_k_neg, is_mk_mq_neg, selfnrg) & !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, pos, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & - !$OMP r2_2, w_q, pols_q, mass_array, gaussian, classical) & + !$OMP r2_2, w_q, pols_q, mass_array, gaussian, classical, ikprim) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt ! print*, jqpt @@ -406,7 +412,18 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt - call interpol_v2(fc3, r3_2, r3_3, kpt, mkpt, ifc3, nfc3, nat) + do i = 1, 3 + mkpt_r(i) = dot_product(mkpt, ikprim(:,i)) + if(mkpt_r(i) > 0.50_DP) then + mkpt_r(i) = mkpt_r(i) - 1.0_DP + else if(mkpt_r(i) < -0.50_DP) then + mkpt_r(i) = mkpt_r(i) + 1.0_DP + endif + enddo + do i = 1, 3 + mkpt(i) = dot_product(mkpt_r, kprim(:,i)) + enddo + call interpol_v2(fc3, r3_2, r3_3,pos, kpt, mkpt, ifc3, nfc3, nat) ! call interpol_v3(fc3, pos, r3_2, r3_3, qpt, kpt, mkpt, ifc3, nfc3, nat) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) @@ -488,8 +505,8 @@ end subroutine calculate_self_energy_LA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, ne, qgrid, & - weights, fc2, fc3, & - r2_2, r3_2, r3_3, kprim, masses, smear, T, energies, parallelize, gaussian, self_energy) + weights, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear, T, energies, & + parallelize, gaussian, classical, self_energy) use omp_lib use third_order_cond @@ -503,13 +520,13 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 real(kind=DP), intent(in) :: w_q(3*nat), qpt(3), qgrid(3,nqpt) real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat), kprim(3,3) real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) - real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r2_2(3, nfc2), pos(3, nat) real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) real(kind=DP), intent(in) :: masses(nat) real(kind=DP), intent(in) :: smear(3*nat), energies(ne) real(kind=DP), intent(in) :: T complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) - logical, intent(in) :: is_q_gamma, parallelize, gaussian + logical, intent(in) :: is_q_gamma, parallelize, gaussian, classical complex(kind=DP), intent(out) :: self_energy(ne, 3*nat) integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 @@ -546,8 +563,8 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 !$OMP DEFAULT(NONE) & !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & - !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & - !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian) & + !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & + !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt ! print*, jqpt @@ -565,7 +582,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt - call interpol_v2(fc3, r3_2, r3_3, kpt, mkpt, ifc3, nfc3, nat) + call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) @@ -634,7 +651,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 selfnrg = complex(0.0_DP,0.0_DP) call compute_diag_dynamic_bubble_single(energies, smear, T, freqs_array, if_gammas, & - d3_pols, ne, 3*nat, gaussian, selfnrg) + d3_pols, ne, 3*nat, gaussian, classical, selfnrg) ! print*, 'Got selfnrg!' self_energy = self_energy + selfnrg*dble(weights(jqpt)) deallocate(ifc3, d3, d3_pols, selfnrg) @@ -691,6 +708,41 @@ subroutine check_if_gamma(nat, q, kprim, w2_q, is_gamma) end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energies) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: ne, nband + real(kind=DP), intent(in) :: energies(ne) + complex(kind=DP), intent(inout) :: self_energy(ne, nband) + + integer :: iband, i, j + real(kind=DP) :: diff, suma, rse + + do iband = 1, nband + do i = 1, ne + !diff = 1.0_DP/(energies - energies(i)) + !diff(i) = 0.0_DP + !suma = 1.0_DP/(energies + energies(i)) + !real(self_energy(i, iband)) = sum(aimag(self_energy(:, iband))*(diff + suma))*(energies(2) - energies(1))/PI + rse = 0.0_DP + do j = 1, ne + if(i .ne. j) then + diff = 1.0_DP/(energies(j) - energies(i)) + suma = 1.0_DP/(energies(j) + energies(i)) + rse = rse + aimag(self_energy(j, iband))*(diff + suma)*(energies(2) - energies(1))/PI + endif + enddo + self_energy(i, iband) = cmplx(rse, aimag(self_energy(i, iband))) + enddo + enddo + + end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! function inv(A) result(Ainv) @@ -763,7 +815,6 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q) call zheev('V', 'L', 3*nat, pols_q, 3*nat, w2_q, WORK, LWORK, RWORK, INFO) LWORK = MIN( size(WORK), INT( WORK( 1 ) ) ) call zheev('V', 'L', 3*nat, pols_q, 3*nat, w2_q, WORK, LWORK, RWORK, INFO) - end subroutine end module get_lf diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 59485842..b2453633 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -21,8 +21,9 @@ subroutine interpol_v2(fc,R2,R3,pos,q2,q3,fc_interp,n_blocks,nat) ! DO i_block = 1, n_blocks - arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) - phase = CMPLX(Cos(arg),Sin(arg), kind=DP) + !arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) + arg = tpi*(dot_product(q2, R2(:,i_block)) + dot_product(q3, R3(:,i_block))) + phase = exp(cmplx(0.0_DP, arg))!CMPLX(Cos(arg),Sin(arg), kind=DP) fc_interp = fc_interp + phase*fc(i_block,:,:,:) ! diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index aa3402b4..6040a2f9 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -8,6 +8,7 @@ import os, sys import scipy, scipy.optimize import h5py +import psutil # Import the Fortran Code import symph @@ -277,62 +278,655 @@ def stupid_centering_fc3(tensor3): if(tensor3.n_R == tensor3.n_sup**2): print('Not previously centered. Stupid centering!') + got = [False for x in range(tensor3.n_R)] + pairs = [] + # Check if it satisfies the permutation symmetry + for i in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,i].copy() + rvec3 = tensor3.r_vector3[:,i].copy() + if(np.linalg.norm(rvec2) < 1.0e-5 and np.linalg.norm(rvec3) < 1.0e-5): + pairs.append([i,i]) + got[i] = True + else: + if(not got[i]): + for j in range(i, tensor3.n_R): + if(not got[j]): + rvec21 = tensor3.r_vector2[:,j].copy() + rvec31 = tensor3.r_vector3[:,j].copy() + if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): + pairs.append([i,j]) + got[i] = True + got[j] = True + if(not np.all(got)): + for i in range(tensor3.n_R): + if(not got[i]): + print(tensor3.x_r_vector2[:,i]) + print(tensor3.x_r_vector3[:,i]) + print('') + else: + print('Found all pairs') + for ipair in range(len(pairs)): + if(pairs[ipair][0] != pairs[ipair][1]): + ip = pairs[ipair][0] + jp = pairs[ipair][1] + for i in range(3*natom): + for iat in range(natom): + for jat in range(natom): + if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): + print('Permutation symmetry failed original!') + print(tensor3.tensor[ip,i]) + print(tensor3.tensor[jp,i]) + print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) + print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) + raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) + break + new_r_vector2 = [] + new_r_vector3 = [] + new_tensor = [] + print('Finished check. Centering...') for ir in range(tensor3.n_R): rvec2 = tensor3.r_vector2[:,ir].copy() rvec3 = tensor3.r_vector3[:,ir].copy() xvec2 = np.dot(rvec2, irsup) xvec3 = np.dot(rvec3, irsup) size2 = np.linalg.norm(rvec2) + size20 = np.linalg.norm(rvec2) size3 = np.linalg.norm(rvec3) + size30 = np.linalg.norm(rvec3) size = np.linalg.norm(rvec3 - rvec2) + size2 + size3 + rvec2_new = [] + rvec3_new = [] + # Find the shortest pair vectors in the mirror supercells -2 < x < 2 for i in range(-2,3): for j in range(-2,3): for k in range(-2,3): xvec21 = xvec2 + np.array([i,j,k]) rvec21 = np.dot(xvec21, rsup) - for i1 in range(-2,3): - for j1 in range(-2,3): - for k1 in range(-2,3): - xvec31 = xvec3 + np.array([i1,j1,k1]) - rvec31 = np.dot(xvec31, rsup) - size1 = np.linalg.norm(rvec21) + np.linalg.norm(rvec31) + np.linalg.norm(rvec31 - rvec21) - if(size1 < size): - size = size1 + size21 = np.linalg.norm(rvec21) + if(size21 <= size2 + 1.0e-6): + if(abs(size21 - size2) < 1.0e-6): + rvec2_new.append(rvec21.copy()) + else: + rvec2_new = [] + rvec2_new.append(rvec21.copy()) + size2 = size21 + rvec2 = rvec21.copy() + xvec31 = xvec3 + np.array([i,j,k]) + rvec31 = np.dot(xvec31, rsup) + size31 = np.linalg.norm(rvec31) + if(size31 <= size3 + 1.0e-6): + if(abs(size31 - size3) < 1.0e-6): + rvec3_new.append(rvec31.copy()) + else: + rvec3_new = [] + rvec3_new.append(rvec31.copy()) + size3 = size31 + rvec3 = rvec31.copy() + #for i1 in range(-2,3): + # for j1 in range(-2,3): + # for k1 in range(-2,3): + # xvec31 = xvec3 + np.array([i1,j1,k1]) + # rvec31 = np.dot(xvec31, rsup) + # size31 = np.linalg.norm(rvec31) + # size1 = np.linalg.norm(rvec21) + np.linalg.norm(rvec31) + np.linalg.norm(rvec31 - rvec21) + # #if(size21 < size2 and size31 < size3): + # if(size21 <= size2 and size31 <= size3): + # size2 = size21 + # size3 = size31 + # size = size1 + # rvec2 = rvec21.copy() + # rvec3 = rvec31.copy() + #print(xvec2, xvec3, size20, size30) + #print(np.dot(rvec2, irsup), np.dot(rvec3, irsup), size2, size3) + #print('') + #print(len(rvec2_new)) + #print(np.dot(rvec2_new, irprim)) + #print(len(rvec3_new)) + #print(np.dot(rvec3_new, irprim)) + #print('') + #if(len(rvec2_new) > 1 or len(rvec3_new) > 1): + # size4 = np.linalg.norm(rvec2_new[0] - rvec3_new[0]) + # rvec2 = rvec2_new[0] + # rvec3 = rvec3_new[0] + # for i in range(len(rvec2_new)): + # for j in range(len(rvec3_new)): + # if(np.linalg.norm(rvec2_new[i] - rvec3_new[j]) < size4): + # size4 = np.linalg.norm(rvec2_new[i] - rvec3_new[j]) + # rvec2 = rvec2_new[i] + # rvec3 = rvec3_new[j] + # For each pair of the shortest pairs construct another entry to tensor3 and scale it with multiplicity + for iuc in range(len(rvec2_new)): + for juc in range(len(rvec3_new)): + new_r_vector2.append(rvec2_new[iuc]) + new_r_vector3.append(rvec3_new[juc]) + new_tensor.append(tensor3.tensor[ir]/float(len(rvec2_new)*len(rvec3_new))) + #tensor3.r_vector2[:,ir] = rvec2 + #tensor3.r_vector3[:,ir] = rvec3 + #tensor3.x_r_vector2[:,ir] = np.rint(np.dot(tensor3.r_vector2[:,ir], irprim), dtype=float) + #tensor3.x_r_vector3[:,ir] = np.rint(np.dot(tensor3.r_vector3[:,ir], irprim), dtype=float) + tensor3.n_R = len(new_r_vector2) + tensor3.r_vector2 = np.array(new_r_vector2).T + tensor3.r_vector3 = np.array(new_r_vector3).T + tensor3.x_r_vector2 = np.zeros_like(tensor3.r_vector2) + tensor3.x_r_vector3 = np.zeros_like(tensor3.r_vector3) + tensor3.tensor = np.array(new_tensor) + got = [False for x in range(tensor3.n_R)] + pairs = [] + for i in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,i].copy() + rvec3 = tensor3.r_vector3[:,i].copy() + tensor3.x_r_vector2[:,i] = np.rint(np.dot(tensor3.r_vector2[:,i], irprim), dtype=float) + tensor3.x_r_vector3[:,i] = np.rint(np.dot(tensor3.r_vector3[:,i], irprim), dtype=float) + # Find pairs to check if this centering broke permutation symmetry + if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): + pairs.append([i,i]) + got[i] = True + else: + if(not got[i]): + for j in range(i, tensor3.n_R): + if(not got[j]): + rvec21 = tensor3.r_vector2[:,j].copy() + rvec31 = tensor3.r_vector3[:,j].copy() + if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): + pairs.append([i,j]) + got[i] = True + got[j] = True + if(not np.all(got)): + for i in range(tensor3.n_R): + if(not got[i]): + print(tensor3.x_r_vector2[:,i]) + print(tensor3.x_r_vector3[:,i]) + print('') + else: + print('Found all pairs') + for ipair in range(len(pairs)): + if(pairs[ipair][0] != pairs[ipair][1]): + ip = pairs[ipair][0] + jp = pairs[ipair][1] + for i in range(3*natom): + for iat in range(natom): + for jat in range(natom): + if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): + print('Permutation symmetry failed!') + print(tensor3.tensor[ip,i]) + print(tensor3.tensor[jp,i]) + print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) + print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) + raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) + break + + else: + print('Probably already centered! Nothing to do!') + + return tensor3 + +def stupid_centering_fc3_v3(tensor3, Far = 1): + #print(psutil.virtual_memory().percent) + rprim = tensor3.unitcell_structure.unit_cell.copy() + irprim = np.linalg.inv(rprim) + rsup = tensor3.supercell_structure.unit_cell.copy() + irsup = np.linalg.inv(rsup) + #print(rprim) + positions = tensor3.unitcell_structure.coords.copy() + xpos = np.dot(positions, np.linalg.inv(rprim)) + natom = len(xpos) + #print(xpos) + symbols = tensor3.unitcell_structure.atoms + unique_symbols = np.unique(symbols) + unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 + numbers = np.zeros(len(symbols)) + for iat in range(len(symbols)): + for jat in range(len(unique_symbols)): + if(symbols[iat] == unique_symbols[jat]): + numbers[iat] = unique_numbers[jat] + #print(numbers) + cell = (rprim, xpos, numbers) + if(tensor3.n_R == tensor3.n_sup**2): + print('ForceTensor most likely not previously centered! ') + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + print(psutil.virtual_memory().percent) + if(permutation): + print('Permutation symmetry satisfied. Centering ...') + hfc3, hr_vector2, hr_vector3, tot_trip = thermal_conductivity.third_order_cond_centering.find_triplets(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, rsup, irsup, positions, tensor3.n_R, natom) + hfc3 = np.asfortranarray(hfc3) + hr_vector3 = np.asfortranarray(hr_vector3) + hr_vector2 = np.asfortranarray(hr_vector2) + #print(np.shape(hfc3), np.shape(hr_vector3), np.shape(hr_vector2), tensor3.n_R, natom) + print(tot_trip) + maxtrip = np.sum(tot_trip)*natom**3 + # print(maxtrip, tensor3.n_R, natom) + # print(psutil.virtual_memory().percent) + # print(np.shape(hfc3), np.shape(hr_vector2), np.shape(hr_vector3)) + # print('This should occupy: ' + format((np.prod(np.shape(hfc3)) + np.prod(np.shape(hr_vector2)) + np.prod(np.shape(hr_vector3)))*8.0/1024.0**3, '.3f') + ' GB of memory!') + fc3, r_vector2, r_vector3, ntrip = thermal_conductivity.third_order_cond_centering.distribute_fc3(hfc3, hr_vector2, hr_vector3, tot_trip, maxtrip, natom, tensor3.n_R) + #ntrip = 0 + #for i in range(len(r_vector2)): + # if(i != 0 and np.linalg.norm(r_vector2[i]) < 1.0e-6 and np.linalg.norm(r_vector3[i]) < 1.0e-6): + # ntrip = i + # break + print('Final number of triplets: ', ntrip) + tensor3.n_R = ntrip + tensor3.r_vector2 = r_vector2[0:ntrip,:].T + tensor3.r_vector3 = r_vector3[0:ntrip,:].T + tensor3.x_r_vector2 = np.zeros_like(tensor3.r_vector2) + tensor3.x_r_vector3 = np.zeros_like(tensor3.r_vector3) + tensor3.tensor = fc3[0:ntrip] + tensor3.x_r_vector2 = np.rint(np.dot(r_vector2[0:ntrip,:], irprim), dtype=float).T + tensor3.x_r_vector3 = np.rint(np.dot(r_vector3[0:ntrip,:], irprim), dtype=float).T + write_fc3(tensor3) + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + if(not permutation): + print('After centering tensor does not satisfy permutation symmetry!') + return tensor3 + else: + print('Permutation symmetry not satisfied. Abandon centering! ') + +def write_fc3(tensor3): + natom = len(tensor3.unitcell_structure.coords) + with open('fc3.dat', 'w+') as outfile: + for i in range(tensor3.n_R): + outfile.write('Triplet: '+ str(i+1) + '\n') + for j in range(3): + outfile.write(3*' ' + format(tensor3.r_vector2[j,i], '.8f')) + outfile.write('\n') + for j in range(3): + outfile.write(3*' ' + format(tensor3.r_vector3[j,i], '.8f')) + outfile.write('\n') + for iat in range(natom): + for j in range(3): + outfile.write('Coordinate '+ str(1+j + 3*iat) + '\n') + for jat in range(natom): + for j1 in range(3): + for kat in range(natom): + for k1 in range(3): + outfile.write(3*' ' + format(tensor3.tensor[i,3*iat+j,3*jat+j1,3*kat+k1], '.8f')) + outfile.write('\n') + +def stupid_centering_fc3_v2(tensor3, Far = 1): + + rprim = tensor3.unitcell_structure.unit_cell.copy() + irprim = np.linalg.inv(rprim) + rsup = tensor3.supercell_structure.unit_cell.copy() + irsup = np.linalg.inv(rsup) + #print(rprim) + positions = tensor3.unitcell_structure.coords.copy() + xpos = np.dot(positions, np.linalg.inv(rprim)) + natom = len(xpos) + #print(xpos) + symbols = tensor3.unitcell_structure.atoms + unique_symbols = np.unique(symbols) + unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 + numbers = np.zeros(len(symbols)) + for iat in range(len(symbols)): + for jat in range(len(unique_symbols)): + if(symbols[iat] == unique_symbols[jat]): + numbers[iat] = unique_numbers[jat] + #print(numbers) + cell = (rprim, xpos, numbers) + + if(tensor3.n_R == tensor3.n_sup**2): + print('Not previously centered. Stupid centering!') + got = [False for x in range(tensor3.n_R)] + pairs = [] + # Check if it satisfies the permutation symmetry + for i in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,i].copy() + rvec3 = tensor3.r_vector3[:,i].copy() + if(np.linalg.norm(rvec2) < 1.0e-5 and np.linalg.norm(rvec3) < 1.0e-5): + pairs.append([i,i]) + got[i] = True + else: + if(not got[i]): + for j in range(i, tensor3.n_R): + if(not got[j]): + rvec21 = tensor3.r_vector2[:,j].copy() + rvec31 = tensor3.r_vector3[:,j].copy() + if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): + pairs.append([i,j]) + got[i] = True + got[j] = True + if(not np.all(got)): + for i in range(tensor3.n_R): + if(not got[i]): + print(tensor3.x_r_vector2[:,i]) + print(tensor3.x_r_vector3[:,i]) + print('') + else: + print('Found all pairs') + for ipair in range(len(pairs)): + if(pairs[ipair][0] != pairs[ipair][1]): + ip = pairs[ipair][0] + jp = pairs[ipair][1] + for i in range(3*natom): + for iat in range(natom): + for jat in range(natom): + if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): + print('Permutation symmetry failed original!') + print(tensor3.tensor[ip,i]) + print(tensor3.tensor[jp,i]) + print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) + print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) + raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) + break + new_r_vector2 = [[] for iat in range(natom**3)] + new_r_vector3 = [[] for iat in range(natom**3)] + new_tensor = [[] for iat in range(natom**3)] + multiplicity = [[] for iat in range(natom**3)] + print('Finished check. Centering...') + for ir in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,ir].copy() + rvec3 = tensor3.r_vector3[:,ir].copy() + xvec2 = np.dot(rvec2, irsup) + xvec3 = np.dot(rvec3, irsup) + size2 = np.linalg.norm(rvec2) + size20 = np.linalg.norm(rvec2) + size3 = np.linalg.norm(rvec3) + size30 = np.linalg.norm(rvec3) + size = np.linalg.norm(rvec3 - rvec2) + size2 + size3 + rvec2_new = [[] for iat in range(natom**3)] + rvec3_new = [[] for iat in range(natom**3)] + # Find the shortest pair vectors in the mirror supercells -Far <= x <= Far + for iat in range(natom): + for jat in range(natom): + for kat in range(natom): + index = kat + jat*natom + natom**2*iat + rvec2 = tensor3.r_vector2[:,ir].copy() + positions[jat] - positions[iat] + rvec3 = tensor3.r_vector3[:,ir].copy() + positions[kat] - positions[iat] + xvec2 = np.dot(rvec2, irsup) + xvec3 = np.dot(rvec3, irsup) + size2 = np.linalg.norm(rvec2) + size20 = np.linalg.norm(rvec2) + size3 = np.linalg.norm(rvec3) + size30 = np.linalg.norm(rvec3) + for i in range(-Far,Far + 1): + for j in range(-Far, Far + 1): + for k in range(-Far, Far +1): + xvec21 = xvec2 + np.array([i,j,k]) + rvec21 = np.dot(xvec21, rsup) + size21 = np.linalg.norm(rvec21) + if(size21 <= size2 + 1.0e-6): + if(abs(size21 - size2) < 1.0e-6): + uc_vec = tensor3.r_vector2[:,ir].copy() + uc_vec = np.dot(uc_vec, irsup) + uc_vec += np.array([i,j,k]) + uc_vec = np.dot(uc_vec, rsup) + rvec2_new[index].append(uc_vec) + else: + uc_vec = tensor3.r_vector2[:,ir].copy() + uc_vec = np.dot(uc_vec, irsup) + uc_vec += np.array([i,j,k]) + uc_vec = np.dot(uc_vec, rsup) + rvec2_new[index] = [] + rvec2_new[index].append(uc_vec) + size2 = size21 rvec2 = rvec21.copy() + xvec31 = xvec3 + np.array([i,j,k]) + rvec31 = np.dot(xvec31, rsup) + size31 = np.linalg.norm(rvec31) + if(size31 <= size3 + 1.0e-6): + if(abs(size31 - size3) < 1.0e-6): + uc_vec = tensor3.r_vector3[:,ir].copy() + uc_vec = np.dot(uc_vec, irsup) + uc_vec += np.array([i,j,k]) + uc_vec = np.dot(uc_vec, rsup) + rvec3_new[index].append(uc_vec) + else: + uc_vec = tensor3.r_vector3[:,ir].copy() + uc_vec = np.dot(uc_vec, irsup) + uc_vec += np.array([i,j,k]) + uc_vec = np.dot(uc_vec, rsup) + rvec3_new[index] = [] + rvec3_new[index].append(uc_vec) + size3 = size31 rvec3 = rvec31.copy() - tensor3.r_vector2[:,ir] = rvec2 - tensor3.r_vector3[:,ir] = rvec3 - tensor3.x_r_vector2[:,ir] = np.dot(tensor3.r_vector2[:,ir], irprim) - tensor3.x_r_vector3[:,ir] = np.dot(tensor3.r_vector3[:,ir], irprim) - - - #for ir in range(tensor3.n_R): - # xvec2 = tensor3.x_r_vector2[:,ir] - # xvec3 = tensor3.x_r_vector3[:,ir] - # xvec2_old = xvec2.copy() - # xvec3_old = xvec3.copy() - # rvec2 = np.dot(xvec2, cell[0]) - # rvec3 = np.dot(xvec3, cell[0]) - # for i in range(3): - # if(xvec2[i] >= float(tensor3.supercell_size[i])/2.0): - # xvec2[i] -= tensor3.supercell_size[i] - # elif(xvec2[i] < -1.0*float(tensor3.supercell_size[i])/2.0): - # xvec2[i] += tensor3.supercell_size[i] - # if(xvec3[i] >= float(tensor3.supercell_size[i])/2.0): - # xvec3[i] -= tensor3.supercell_size[i] - # elif(xvec3[i] < -1.0*float(tensor3.supercell_size[i])/2.0): - # xvec3[i] += tensor3.supercell_size[i] - # tensor3.x_r_vector2[:,ir] = xvec2 - # tensor3.x_r_vector3[:,ir] = xvec3 - # tensor3.r_vector2[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector2[:,ir]) - # tensor3.r_vector3[:,ir] = tensor3.unitcell_structure.unit_cell.T.dot(tensor3.x_r_vector3[:,ir]) + # For each pair of the shortest pairs construct another entry to tensor3 and scale it with multiplicity + for iuc in range(len(rvec2_new[index])): + for juc in range(len(rvec3_new[index])): + already_there = False + for kuc in range(len(new_r_vector2[index])): + if(np.linalg.norm(rvec2_new[index][iuc] - new_r_vector2[index][kuc]) < 1.0e-6 and \ + np.linalg.norm(rvec3_new[index][juc] - new_r_vector3[index][kuc]) < 1.0e-6): + already_there = True + print('Would double count this one!') + break + if not already_there: + new_r_vector2[index].append(rvec2_new[index][iuc]) + new_r_vector3[index].append(rvec3_new[index][juc]) + new_tensor[index].append(tensor3.tensor[ir]/float(len(rvec2_new[index])*len(rvec3_new[index]))) + multiplicity[index].append(len(rvec2_new[index])*len(rvec3_new[index])) + n_R = [0 for x in range(natom**3)] + for iat in range(natom): + for jat in range(natom): + for kat in range(natom): + n_R[kat + jat*natom +iat*natom**2] = len(new_r_vector2[kat + jat*natom + natom**2*iat]) + #Check if all n_R are equal + if(n_R.count(n_R[0]) == len(n_R)): + index0 = 0 + else: + index0 = np.argsort(n_R)[-1] + print(n_R) + for ir in range(natom**3): + print(len(multiplicity[ir])) + #for ir in range(tensor3.n_R): + # print(multiplicity[:][ir]) + #print('Largest number of triplets for: ', index0) + #for itrip in range(len(new_r_vector2)): + # if(itrip != index0): + # print('Checking triplet: ', itrip) + # for i in range(len(new_r_vector2[index0])): + # found = False + # for j in range(len(new_r_vector2[itrip])): + # if(np.linalg.norm(new_r_vector2[itrip][j] - new_r_vector2[index0][i]) < 1.0e-6): + # found = True + # break + # if(not found): + # print('For triplet: ', itrip) + # print('Could not find: ', np.dot(new_r_vector2[index0][i], irprim)) + #raise RuntimeError('Number of lattice vectors for all triplets is not the same! ') + print(n_R) + r_vector2 = new_r_vector2[index0].copy() + r_vector3 = new_r_vector3[index0].copy() + extra = 0 + for itrip in range(len(n_R)): + if(itrip != index0): + for iuc in range(len(new_r_vector2[itrip])): + already_there = False + for juc in range(len(r_vector2)): + if(np.linalg.norm(r_vector2[juc] - new_r_vector2[itrip][iuc]) < 1.0e-6 and \ + np.linalg.norm(r_vector3[juc] - new_r_vector3[itrip][iuc]) < 1.0e-6): + already_there = True + break + if(not already_there): + extra += 1 + r_vector2.append(new_r_vector2[itrip][iuc]) + r_vector3.append(new_r_vector3[itrip][iuc]) + print('Added ' + str(extra) + ' new triplets!') + fc3 = [] + for iuc in range(len(r_vector2)): + fc3.append(np.zeros_like(tensor3.tensor[0])) + for iat in range(natom): + for jat in range(natom): + for kat in range(natom): + index = kat + jat*natom + iat*natom**2 + found = False + for juc in range(len(new_r_vector2[index])): + if(np.linalg.norm(new_r_vector2[index][juc] - r_vector2[iuc]) < 1.0e-6 and \ + np.linalg.norm(new_r_vector3[index][juc] - r_vector3[iuc]) < 1.0e-6): + fc3[iuc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat] = new_tensor[index][juc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat]#*multiplicity[index][juc]/multiplicity[index][iuc] + found = True + break + #if(not found): + #print('Still can not find! Very weird') + # match1 = False + # match2 = False + # for ir in range(tensor3.n_R): + # rvec2 = tensor3.r_vector2[:,ir].copy() + # xvec2 = np.dot(rvec2, irsup) + # rvec3 = tensor3.r_vector3[:,ir].copy() + # xvec3 = np.dot(rvec3, irsup) + # for i1 in range(-1,2): + # if(not match1): + # for j1 in range(-1,2): + # if(not match1): + # for k1 in range(-1,2): + # xvec21 = xvec2 + np.array([i1,j1,k1]) + # rvec21 = np.dot(xvec21, rsup) + # if(np.linalg.norm(rvec21 - r_vector2[iuc]) < 1.0e-6): + # match1 = True + # break + # for i1 in range(-1,2): + # if(not match2): + # for j1 in range(-1,2): + # if(not match2): + # for k1 in range(-1,2): + # xvec31 = xvec3 + np.array([i1,j1,k1]) + # rvec31 = np.dot(xvec31, rsup) + # if(np.linalg.norm(rvec31 - r_vector3[iuc]) < 1.0e-6): + # match2 = True + # break + # if(match1 and match2): + # print('Matched!', ir, index, float(iuc)/float(len(r_vector2))) + # break + # if(match1 and match2): + # fc3[iuc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat] = tensor3.tensor[ir][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat]/float(multiplicity[index][ir]) + # else: + # print(match1, match2) + # raise RuntimeError('Could not find triplet!') + print('Final number of triplets: ', len(r_vector2)) + tensor3.n_R = len(r_vector2) + tensor3.r_vector2 = np.array(r_vector2).T + tensor3.r_vector3 = np.array(r_vector3).T + tensor3.x_r_vector2 = np.zeros_like(tensor3.r_vector2) + tensor3.x_r_vector3 = np.zeros_like(tensor3.r_vector3) + tensor3.tensor = np.array(fc3) + write_fc3(tensor3) + got = [False for x in range(tensor3.n_R)] + pairs = [] + for i in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,i].copy() + rvec3 = tensor3.r_vector3[:,i].copy() + tensor3.x_r_vector2[:,i] = np.rint(np.dot(tensor3.r_vector2[:,i], irprim), dtype=float) + tensor3.x_r_vector3[:,i] = np.rint(np.dot(tensor3.r_vector3[:,i], irprim), dtype=float) + # Find pairs to check if this centering broke permutation symmetry + if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): + pairs.append([i,i]) + got[i] = True + else: + if(not got[i]): + for j in range(i, tensor3.n_R): + if(not got[j]): + rvec21 = tensor3.r_vector2[:,j].copy() + rvec31 = tensor3.r_vector3[:,j].copy() + if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): + pairs.append([i,j]) + got[i] = True + got[j] = True + if(not np.all(got)): + for i in range(tensor3.n_R): + if(not got[i]): + print(tensor3.x_r_vector2[:,i]) + print(tensor3.x_r_vector3[:,i]) + print('') + else: + print('Found all pairs') + for ipair in range(len(pairs)): + if(pairs[ipair][0] != pairs[ipair][1]): + ip = pairs[ipair][0] + jp = pairs[ipair][1] + for i in range(3*natom): + for iat in range(natom): + for jat in range(natom): + if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): + print('Permutation symmetry failed!') + print(tensor3.tensor[ip,i]) + print(tensor3.tensor[jp,i]) + print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) + print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) + raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) + break + else: print('Probably already centered! Nothing to do!') + return tensor3 + +def apply_permutation_symmetry(tensor3, pairs): + for ipair in range(len(pairs)): + if(pairs[ipair][0] != pairs[ipair][1]): + ip = pairs[ipair][0] + jp = pairs[ipair][1] + for i in range(3*tensor3.nat): + for iat in range(tensor3.nat): + for jat in range(tensor3.nat): + #if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): + tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] = (tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] + tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T)/2.0 + tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)] = tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)].T + +def apply_asr(tensor3, tol = 1.0e-10): + rprim = tensor3.unitcell_structure.unit_cell.copy() + irprim = np.linalg.inv(rprim) + rsup = tensor3.supercell_structure.unit_cell.copy() + irsup = np.linalg.inv(rsup) + unique_xr2 = [] + for i in range(tensor3.n_R): + found = False + for j in range(len(unique_xr2)): + if(np.linalg.norm(tensor3.x_r_vector2[:,i] - tensor3.x_r_vector2[:,unique_xr2[j][0]]) < 1.0e-5): + found = True + unique_xr2[j].append(i) + break + if(not found): + unique_xr2.append([i]) + got = [False for x in range(tensor3.n_R)] + pairs = [] + for i in range(tensor3.n_R): + rvec2 = tensor3.r_vector2[:,i].copy() + rvec3 = tensor3.r_vector3[:,i].copy() + if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): + pairs.append([i,i]) + got[i] = True + else: + if(not got[i]): + for j in range(i, tensor3.n_R): + if(not got[j]): + rvec21 = tensor3.r_vector2[:,j].copy() + rvec31 = tensor3.r_vector3[:,j].copy() + if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): + pairs.append([i,j]) + got[i] = True + got[j] = True + if(not np.all(got)): + for i in range(tensor3.n_R): + if(not got[i]): + print(tensor3.x_r_vector2[:,i]) + print(tensor3.x_r_vector3[:,i]) + raise RuntimeError('Could not find all the pairs!') + + for i in range(len(unique_xr2)): + suma = np.zeros_like(tensor3.tensor[i]) + for j in range(len(unique_xr2[i])): + suma += tensor3.tensor[unique_xr2[i][j]] + norm = np.linalg.norm(suma) + step = 1 + while(norm > tol): + suma = np.zeros_like(tensor3.tensor[i]) + for j in range(len(unique_xr2[i])): + suma += tensor3.tensor[unique_xr2[i][j]] + suma /= float(len(unique_xr2[i])) + for j in range(len(unique_xr2[i])): + tensor3.tensor[unique_xr2[i][j]] -= suma + apply_permutation_symmetry(tensor3, pairs) + suma = np.zeros_like(tensor3.tensor[0]) + for j in range(len(unique_xr2[i])): + suma += tensor3.tensor[unique_xr2[i][j]] + norm = np.linalg.norm(suma) + print('Norm on step ' + str(step) + ' ' + format(norm, '.8e')) + step += 1 return tensor3 + class ThermalConductivity: def __init__(self, dyn, tensor3, kpoint_grid = 2, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', off_diag = False): @@ -474,6 +1068,7 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): for ik in range(len(keys)): if(ne is None): ne = np.shape(self.lineshapes[keys[ik]])[-1] + hf.create_dataset('ne', data = ne) else: if(ne != np.shape(self.lineshapes[keys[ik]])[-1]): raise RuntimeError('Number of energy/frequency points not same for all temperatures!') @@ -490,8 +1085,6 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): if(len(keys) > 0): for ik in range(len(keys)): hf.create_dataset('kappa_' + keys[ik], data = self.kappa[keys[ik]]) - - hf.create_dataset('ne', data = ne) hf.close() def load(self, filename): diff --git a/setup.py b/setup.py index 5fa4079d..5f240470 100644 --- a/setup.py +++ b/setup.py @@ -48,9 +48,11 @@ cond_ext = Extension(name = "thermal_conductivity", sources = ["FModules/get_scattering_q_grid.f90", "FModules/third_order_cond.f90", + "FModules/third_order_cond_centering.f90", "FModules/get_lf.f90"], libraries= ["lapack", "blas"], extra_f90_compile_args = ["-cpp", "-fcheck=all", "-fopenmp", "-lgomp"], + #extra_f90_compile_args = ["-cpp", "-O2", "-fopenmp", "-lgomp"], extra_link_args = ["-fopenmp"] ) From d713f53bceb43df389c852477ab9e7fb1abcc6fa Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 21 Jun 2022 15:43:07 +0200 Subject: [PATCH 023/204] Centering ... --- FModules/third_order_cond_centering.f90 | 353 ++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 FModules/third_order_cond_centering.f90 diff --git a/FModules/third_order_cond_centering.f90 b/FModules/third_order_cond_centering.f90 new file mode 100644 index 00000000..ac4b76c9 --- /dev/null +++ b/FModules/third_order_cond_centering.f90 @@ -0,0 +1,353 @@ +module third_order_cond_centering + + contains + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine check_permutation_symmetry(tensor, r_vector2, r_vector3, n_R, natom, perm) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), intent(in) :: tensor(n_R, 3*natom, 3*natom, 3*natom) + real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) + logical, intent(out) :: perm + + integer :: i, j, k, ipair, jpair, npairs, unfound + integer :: pairs(n_R, 2) + real(kind=DP) :: rvec12(3), rvec13(3), rvec22(3), rvec23(3) + real(kind=DP) :: tol, tscale + logical :: got(n_R) + + tol = 1.0_DP/10.0_DP**6 + perm = .True. + got = .False. + npairs = 0 + + tscale = 0.0_DP + do i = 1, n_R + do j = 1, 3*natom + if(norma2(tensor(i,j,:,:)) > tscale) then + tscale = norma2(tensor(i,j,:,:)) + endif + enddo + enddo + + do i = 1, n_R + if(.not. got(i)) then + rvec12 = r_vector2(i,:) + rvec13 = r_vector3(i,:) + if(norm(rvec12 - rvec13) < tol) then + npairs = npairs + 1 + got(i) = .True. + pairs(npairs, :) = i + else + do j = 1, n_R + if(.not. got(j)) then + rvec22 = r_vector2(j,:) + rvec23 = r_vector3(j,:) + if(norm(rvec12 - rvec23) < tol .and. norm(rvec13 - rvec22) < tol) then + npairs = npairs + 1 + got(i) = .True. + got(j) = .True. + pairs(npairs, 1) = i + pairs(npairs, 2) = j + endif + endif + enddo + endif + endif + enddo + + if(.not. all(got)) then + print*, 'Could not find all the pairs!' + perm = .False. + unfound = 0 + do i = 1, n_R + if(.not. got(i)) then + unfound = unfound + 1 + !print*, r_vector2(i,:), r_vector3(i,:) + endif + enddo + print*, dble(unfound)/dble(n_R)*100.0, ' percentage of triplets without a pair!' + else + do i = 1, npairs + if(perm) then + ipair = pairs(i, 1) + jpair = pairs(i, 2) + do j = 1, 3*natom + if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & + tol*tol*tscale) then + print*, 'Permutation symmetry not satisfied!' + print*, norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) + print*, norma2(tensor(ipair,j,:,:)) + print*, tensor(ipair,j,:,:) + print*, tensor(jpair,j,:,:) + perm = .False. + EXIT + endif + enddo + endif + enddo + endif + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine find_triplets(tensor, r_vector2, r_vector3, rsup, irsup, pos, help_tensor, help_rvec2, help_rvec3, & + tot_trip, n_R, natom) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), intent(in) :: tensor(n_R, 3*natom, 3*natom, 3*natom) + real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) + real(kind=DP), intent(in) :: rsup(3,3), irsup(3,3), pos(natom, 3) + + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3, 3, 3), intent(out) :: help_tensor + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3), intent(out) :: help_rvec2, help_rvec3 + integer, dimension(natom*natom*natom), intent(out) :: tot_trip + + integer :: i, iat, jat, kat, index1, i1, j1, k1, curr_trip(2) + integer :: itrip, ntrip, index2 + real(kind=DP) :: rvec1(3), rvec2(3), xvec1(3), xvec2(3) + real(kind=DP) :: rvec21(3), rvec22(3), xvec21(3), xvec22(3) + real(kind=DP) :: new_rvec2(27,3), new_rvec3(27,3) + real(kind=DP) :: size1, size2, tol + + tol = 1.0_DP/10.0_DP**6 + + print*, 'Finding triplets ...' + do iat = 1, natom + do jat = 1, natom + do kat = 1, natom + index1 = kat + natom*(jat-1) + natom**2*(iat-1) + tot_trip(index1) = 0 + do i = 1, n_R + curr_trip = 0 + rvec1 = r_vector2(i,:) + pos(jat,:) - pos(iat,:) + rvec2 = r_vector3(i,:) + pos(kat,:) - pos(iat,:) + size1 = norm(rvec1) + size2 = norm(rvec2) + xvec1 = dot(rvec1, irsup) + xvec2 = dot(rvec2, irsup) + new_rvec2 = 0.0_DP + new_rvec3 = 0.0_DP + !curr_trip = curr_trip + 1 + !new_rvec2(curr_trip(1),:) = r_vector2(i,:) + !new_rvec3(curr_trip(2),:) = r_vector3(i,:) + do i1 = -1, 1 + do j1 = -1, 1 + do k1 = -1, 1 + xvec21 = xvec1 + (/i1, j1, k1/) + rvec21 = dot(xvec21, rsup) + if(abs(norm(rvec21) - size1) < tol) then + curr_trip(1) = curr_trip(1) + 1 + rvec21 = r_vector2(i,:) + xvec21 = dot(rvec21, irsup) + xvec21 = xvec21 + (/i1, j1, k1/) + rvec21 = dot(xvec21, rsup) + new_rvec2(curr_trip(1),:) = rvec21 + else if(norm(rvec21) < size1) then + !rvec1 = rvec21 + size1 = norm(rvec21) + !xvec1 = dot(rvec1, irsup) + new_rvec2 = 0.0_DP + curr_trip(1) = 1 + rvec21 = r_vector2(i,:) + xvec21 = dot(rvec21, irsup) + xvec21 = xvec21 + (/i1, j1, k1/) + rvec21 = dot(xvec21, rsup) + new_rvec2(curr_trip(1),:) = rvec21 + endif + xvec22 = xvec2 + (/i1, j1, k1/) + rvec22 = dot(xvec22, rsup) + if(abs(norm(rvec22) - size2) < tol) then + curr_trip(2) = curr_trip(2) + 1 + rvec22 = r_vector3(i,:) + xvec22 = dot(rvec22, irsup) + xvec22 = xvec22 + (/i1, j1, k1/) + rvec22 = dot(xvec22, rsup) + new_rvec3(curr_trip(2),:) = rvec22 + else if(norm(rvec22) < size2) then + rvec2 = rvec22 + size2 = norm(rvec22) + !xvec2 = dot(rvec2, irsup) + new_rvec3 = 0.0_DP + curr_trip(2) = 1 + rvec22 = r_vector3(i,:) + xvec22 = dot(rvec22, irsup) + xvec22 = xvec22 + (/i1, j1, k1/) + rvec22 = dot(xvec22, rsup) + new_rvec3(curr_trip(2),:) = rvec22 + endif + enddo + enddo + enddo + do i1 = 1, curr_trip(1) + do j1 = 1, curr_trip(2) + tot_trip(index1) = tot_trip(index1) + 1 + !index2 = j1 + curr_trip(2)*(i1-1) + help_rvec2(index1, tot_trip(index1),:) = new_rvec2(i1,:) + help_rvec3(index1, tot_trip(index1),:) = new_rvec3(j1,:) + help_tensor(index1, tot_trip(index1), :, :, :) = & + tensor(i, 3*(iat-1)+1:3*iat, 3*(jat-1)+1:3*jat, 3*(kat-1)+1:3*kat)& + /dble(curr_trip(1)*curr_trip(2)) + enddo + enddo + !tot_trip(index1) = tot_trip(index1) + curr_trip(1)*curr_trip(2) + !print*, index1, dble(i)/dble(n_R), tot_trip(index1) + enddo + enddo + enddo + enddo + + !print*, shape(help_tensor) + + end subroutine + + subroutine distribute_fc3(tensor, rvec2, rvec3, tot_trip, f_tensor, f_rvec2, f_rvec3, itrip, ntrip, natom, n_R) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: ntrip, n_R, natom + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3, 3, 3), intent(in) :: tensor + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3), intent(in) :: rvec2,rvec3 + integer, dimension(natom*natom*natom), intent(in) :: tot_trip + + real(kind=DP), dimension(ntrip, 3*natom, 3*natom, 3*natom), intent(out) :: f_tensor + real(kind=DP), dimension(ntrip, 3), intent(out) :: f_rvec2, f_rvec3 + integer, intent(out) :: itrip + + integer :: iat, jat, kat, index1, i, j, index0 + real(kind=DP) :: tol + logical :: found + + tol = 1.0_DP/10.0_DP**6 + + print*, 'Distributing force constants ... ' + + index0 = 1 + do i = 2, natom*natom*natom + if(tot_trip(i) > tot_trip(index0)) then + index0 = i + endif + enddo + + f_rvec2 = 0.0_DP + f_rvec3 = 0.0_DP + f_tensor = 0.0_DP + itrip = 0 + do iat = 1, natom + do jat = 1, natom + do kat = 1, natom + index1 = kat + natom*(jat-1) + natom**2*(iat-1) + if(index1 .eq. index0) then + do i = 1, tot_trip(index0) + itrip = i + f_rvec2(itrip, :) = rvec2(index0, i, :) + f_rvec3(itrip, :) = rvec3(index0, i, :) + f_tensor(itrip, 3*(iat-1)+1:3*iat, 3*(jat-1)+1:3*jat, 3*(kat-1)+1:3*kat) = & + tensor(index0, i,:,:,:) + enddo + endif + enddo + enddo + enddo + do iat = 1, natom + do jat = 1, natom + do kat = 1, natom + index1 = kat + natom*(jat-1) + natom**2*(iat-1) + if(index0 .ne. index1) then + do i = 1, tot_trip(index1) + !if(itrip .eq. 0) then + ! itrip = itrip + 1 + ! f_rvec2(itrip, :) = rvec2(index1, i, :) + ! f_rvec3(itrip, :) = rvec3(index1, i, :) + ! f_tensor(itrip, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) = & + ! tensor(index1, i,:,:,:) + !else + found = .False. + do j = 1, itrip + if(norm(rvec2(index1, i, :) - f_rvec2(j, :)) < tol .and. & + norm(rvec3(index1, i, :) - f_rvec3(j, :)) < tol) then + !print*, rvec2(index1, i, :), rvec3(index1, i, :) + !print*, f_rvec2(j, :), f_rvec3(j, :) + !print*, f_tensor(j, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) + !print*, tensor(index1, i,:,:,:) + found = .True. + f_tensor(j, 3*(iat-1)+1:3*iat, 3*(jat-1)+1:3*jat, 3*(kat-1)+1:3*kat) = & + !f_tensor(j, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) + & + tensor(index1, i,:,:,:) + EXIT + endif + enddo + if(.not. found) then + itrip = itrip + 1 + f_rvec2(itrip, :) = rvec2(index1, i, :) + f_rvec3(itrip, :) = rvec3(index1, i, :) + f_tensor(itrip, 3*(iat-1)+1:3*iat, 3*(jat-1)+1:3*jat, 3*(kat-1)+1:3*kat) = & + tensor(index1, i,:,:,:) + endif + !endif + enddo + endif + enddo + enddo + enddo + + print*, 'Expect ', itrip, ' triplets!' + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + function norm(r) result (d) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + real(kind = DP), intent(in) :: r(3) + real(kind = DP) :: d + + d = sqrt(dot_product(r,r)) + + end function norm + + function norma2(m) result (d) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + real(kind=DP), intent(in) :: m(:,:) + + real(kind=DP) :: d + integer :: i, j, shapem(2) + + shapem = shape(m) + d = 0.0_DP + do i = 1, shapem(2) + do j = 1, shapem(1) + d = d + m(j,i)**2 + enddo + enddo + d = sqrt(d) + + end function + + function dot(v,m) result (v1) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + real(kind=DP), intent(in) :: v(3), m(3,3) + + real(kind=DP) :: v1(3) + integer :: i + + v1 = 0.0_DP + do i = 1, 3 + v1(:) = v1(:) + v(i)*m(i,:) + enddo + + end function + +end module From a57b119a00bbd4d0e753d763eaf6fa63f4c30f81 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 29 Jun 2022 08:49:19 +0200 Subject: [PATCH 024/204] acoustic sum rule added --- FModules/third_order_cond_centering.f90 | 383 +++++++++++++++++++++++- cellconstructor/SSCHA_phonopy_parser.py | 31 +- cellconstructor/ThermalConductivity.py | 145 ++++----- 3 files changed, 461 insertions(+), 98 deletions(-) diff --git a/FModules/third_order_cond_centering.f90 b/FModules/third_order_cond_centering.f90 index ac4b76c9..cfdc33a3 100644 --- a/FModules/third_order_cond_centering.f90 +++ b/FModules/third_order_cond_centering.f90 @@ -93,14 +93,254 @@ subroutine check_permutation_symmetry(tensor, r_vector2, r_vector3, n_R, natom, end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine apply_permutation_symmetry(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), intent(in) :: tensor(n_R, 3*natom, 3*natom, 3*natom) + real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) + real(kind=DP), intent(out) :: new_tensor(n_R, 3*natom, 3*natom, 3*natom) + + integer :: i, j, k, ipair, jpair, npairs, unfound + integer :: pairs(n_R, 2) + real(kind=DP) :: rvec12(3), rvec13(3), rvec22(3), rvec23(3) + real(kind=DP) :: tol, tscale + logical :: got(n_R) + + tol = 1.0_DP/10.0_DP**6 + got = .False. + npairs = 0 + + tscale = 0.0_DP + new_tensor(:,:,:,:) = tensor(:,:,:,:) + do i = 1, n_R + do j = 1, 3*natom + if(norma2(tensor(i,j,:,:)) > tscale) then + tscale = norma2(tensor(i,j,:,:)) + endif + enddo + enddo + + do i = 1, n_R + if(.not. got(i)) then + rvec12 = r_vector2(i,:) + rvec13 = r_vector3(i,:) + if(norm(rvec12 - rvec13) < tol) then + npairs = npairs + 1 + got(i) = .True. + pairs(npairs, :) = i + else + do j = 1, n_R + if(.not. got(j)) then + rvec22 = r_vector2(j,:) + rvec23 = r_vector3(j,:) + if(norm(rvec12 - rvec23) < tol .and. norm(rvec13 - rvec22) < tol) then + npairs = npairs + 1 + got(i) = .True. + got(j) = .True. + pairs(npairs, 1) = i + pairs(npairs, 2) = j + endif + endif + enddo + endif + endif + enddo + + if(.not. all(got)) then + print*, 'Could not find all the pairs!' + unfound = 0 + do i = 1, n_R + if(.not. got(i)) then + unfound = unfound + 1 + !print*, r_vector2(i,:), r_vector3(i,:) + endif + enddo + print*, dble(unfound)/dble(n_R)*100.0, ' percentage of triplets without a pair!' + else + do i = 1, npairs + ipair = pairs(i, 1) + jpair = pairs(i, 2) + do j = 1, 3*natom + if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & + tol*tol*tscale) then + new_tensor(ipair, j,:,:) = & + (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP + new_tensor(jpair, j,:,:) = transpose(new_tensor(ipair, j,:,:)) + endif + enddo + enddo + endif + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine apply_permutation_symmetry_local(tensor, r_vector2, r_vector3, n_R, natom) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), intent(inout) :: tensor(n_R, 3*natom, 3*natom, 3*natom) + real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) + + integer :: i, j, k, ipair, jpair, npairs, unfound + integer :: pairs(n_R, 2) + real(kind=DP) :: rvec12(3), rvec13(3), rvec22(3), rvec23(3) + real(kind=DP) :: tol, tscale + logical :: got(n_R) + + tol = 1.0_DP/10.0_DP**6 + got = .False. + npairs = 0 + + tscale = 0.0_DP + do i = 1, n_R + do j = 1, 3*natom + if(norma2(tensor(i,j,:,:)) > tscale) then + tscale = norma2(tensor(i,j,:,:)) + endif + enddo + enddo + + do i = 1, n_R + if(.not. got(i)) then + rvec12 = r_vector2(i,:) + rvec13 = r_vector3(i,:) + if(norm(rvec12 - rvec13) < tol) then + npairs = npairs + 1 + got(i) = .True. + pairs(npairs, :) = i + else + do j = 1, n_R + if(.not. got(j)) then + rvec22 = r_vector2(j,:) + rvec23 = r_vector3(j,:) + if(norm(rvec12 - rvec23) < tol .and. norm(rvec13 - rvec22) < tol) then + npairs = npairs + 1 + got(i) = .True. + got(j) = .True. + pairs(npairs, 1) = i + pairs(npairs, 2) = j + endif + endif + enddo + endif + endif + enddo + + if(.not. all(got)) then + print*, 'Could not find all the pairs!' + unfound = 0 + do i = 1, n_R + if(.not. got(i)) then + unfound = unfound + 1 + !print*, r_vector2(i,:), r_vector3(i,:) + endif + enddo + print*, dble(unfound)/dble(n_R)*100.0, ' percentage of triplets without a pair!' + else + do i = 1, npairs + ipair = pairs(i, 1) + jpair = pairs(i, 2) + do j = 1, 3*natom + if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & + tol*tol*tscale) then + tensor(ipair, j,:,:) = & + (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP + tensor(jpair, j,:,:) = transpose(tensor(ipair, j,:,:)) + endif + enddo + enddo + endif + + end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine number_of_triplets(tensor, rvec2, rvec3, tot_trip, itrip, natom, n_R) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3, 3, 3), intent(in) :: tensor + real(kind=DP), dimension(natom*natom*natom, n_R*81, 3), intent(in) :: rvec2,rvec3 + integer, dimension(natom*natom*natom), intent(in) :: tot_trip + + real(kind=DP), dimension(natom*natom*natom*n_R*81, 3) :: f_rvec2, f_rvec3 + integer, intent(out) :: itrip + + integer :: iat, jat, kat, index1, i, j, index0 + real(kind=DP) :: tol + logical :: found + + tol = 1.0_DP/10.0_DP**6 + + index0 = 1 + do i = 2, natom*natom*natom + if(tot_trip(i) > tot_trip(index0)) then + index0 = i + endif + enddo + + f_rvec2 = 0.0_DP + f_rvec3 = 0.0_DP + itrip = 0 + do iat = 1, natom + do jat = 1, natom + do kat = 1, natom + index1 = kat + natom*(jat-1) + natom**2*(iat-1) + if(index1 .eq. index0) then + do i = 1, tot_trip(index0) + itrip = i + f_rvec2(itrip, :) = rvec2(index0, i, :) + f_rvec3(itrip, :) = rvec3(index0, i, :) + enddo + endif + enddo + enddo + enddo + do iat = 1, natom + do jat = 1, natom + do kat = 1, natom + index1 = kat + natom*(jat-1) + natom**2*(iat-1) + if(index0 .ne. index1) then + do i = 1, tot_trip(index1) + found = .False. + do j = 1, itrip + if(norm(rvec2(index1, i, :) - f_rvec2(j, :)) < tol .and. & + norm(rvec3(index1, i, :) - f_rvec3(j, :)) < tol) then + found = .True. + EXIT + endif + enddo + if(.not. found) then + itrip = itrip + 1 + f_rvec2(itrip, :) = rvec2(index1, i, :) + f_rvec3(itrip, :) = rvec3(index1, i, :) + endif + enddo + endif + enddo + enddo + enddo + + print*, 'Expect ', itrip, ' triplets!' + + end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine find_triplets(tensor, r_vector2, r_vector3, rsup, irsup, pos, help_tensor, help_rvec2, help_rvec3, & - tot_trip, n_R, natom) + tot_trip, far, n_R, natom) IMPLICIT NONE INTEGER, PARAMETER :: DP = selected_real_kind(14,200) - integer, intent(in) :: n_R, natom + integer, intent(in) :: n_R, natom, far real(kind=DP), intent(in) :: tensor(n_R, 3*natom, 3*natom, 3*natom) real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) real(kind=DP), intent(in) :: rsup(3,3), irsup(3,3), pos(natom, 3) @@ -137,9 +377,9 @@ subroutine find_triplets(tensor, r_vector2, r_vector3, rsup, irsup, pos, help_te !curr_trip = curr_trip + 1 !new_rvec2(curr_trip(1),:) = r_vector2(i,:) !new_rvec3(curr_trip(2),:) = r_vector3(i,:) - do i1 = -1, 1 - do j1 = -1, 1 - do k1 = -1, 1 + do i1 = -far, far + do j1 = -far, far + do k1 = -far, far xvec21 = xvec1 + (/i1, j1, k1/) rvec21 = dot(xvec21, rsup) if(abs(norm(rvec21) - size1) < tol) then @@ -207,6 +447,8 @@ subroutine find_triplets(tensor, r_vector2, r_vector3, rsup, irsup, pos, help_te end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine distribute_fc3(tensor, rvec2, rvec3, tot_trip, f_tensor, f_rvec2, f_rvec3, itrip, ntrip, natom, n_R) IMPLICIT NONE INTEGER, PARAMETER :: DP = selected_real_kind(14,200) @@ -297,7 +539,114 @@ subroutine distribute_fc3(tensor, rvec2, rvec3, tot_trip, f_tensor, f_rvec2, f_r enddo enddo - print*, 'Expect ', itrip, ' triplets!' + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine apply_asr(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R, natom + real(kind=DP), intent(in) :: tensor(n_R, 3*natom, 3*natom, 3*natom) + real(kind=DP), intent(in) :: r_vector2(n_R, 3), r_vector3(n_R, 3) + real(kind=DP), intent(out) :: new_tensor(n_R, 3*natom, 3*natom, 3*natom) + + integer :: i_r, j_r, iat, jat, kat, list(n_R, n_R), tot_r, step + real(kind=DP) :: aux_tensor(3, 3, 3) + real(kind=DP), dimension(n_R,3) :: unique_rvec3 + real(kind=DP) :: tol, norma, tot_norma + + tol = 1.0_DP/10.0_DP**6 + tot_norma = 1000.0_DP + call find_unique_rvec(r_vector3, unique_rvec3, list, n_R, tot_r) + new_tensor = tensor + step = 0 + do while(tot_norma > tol) + step = step + 1 + do i_r = 1, tot_r + aux_tensor = 0.0_DP + do iat = 1, natom + do jat = 1, natom + do j_r = 1, list(tot_r, 1) + do kat = 1, natom + aux_tensor = aux_tensor + & + new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat, 3*(kat-1) + 1:3*kat) + enddo + enddo + aux_tensor = aux_tensor/dble(list(tot_r, 1)) + do j_r = 1, list(tot_r, 1) + do kat = 1, natom + new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) = & + new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) - aux_tensor + enddo + enddo + enddo + enddo + enddo + call apply_permutation_symmetry_local(new_tensor, r_vector2, r_vector3, n_R, natom) + tot_norma = 0.0_DP + do i_r = 1, tot_r + do iat = 1, natom + do jat = 1, natom + norma = 0.0_DP + do j_r = 1, list(tot_r, 1) + do kat = 1, natom + aux_tensor = aux_tensor + & + new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) + enddo + enddo + norma = norma3(aux_tensor) + tot_norma = tot_norma + norma + enddo + enddo + enddo + print*, 'ASR sum on step ', step, ':', tot_norma + enddo + + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine find_unique_rvec(r_vec3, u_rvec3, list, n_R, tot_r) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + integer, intent(in) :: n_R + real(kind=DP), intent(in) :: r_vec3(n_R, 3) + real(kind=DP), dimension(n_R,3), intent(out) :: u_rvec3 + integer, intent(out) :: list(n_R, n_R), tot_r + + integer :: i_r, j_r + real(kind=DP) :: aux_vec3(n_R, 3) + real(kind=DP) :: tol + logical :: found + + + tol = 1.0_DP/10.0_DP**6 + aux_vec3 = 0.0_DP + list(:,:) = 0 + tot_r = 0 + do i_r = 1, n_R + found = .False. + do j_r = 1, tot_r + if(norm(r_vec3(i_r,:) - aux_vec3(j_r, 3)) < tol) then + found = .True. + list(tot_r, 1) = list(tot_r, 1) + 1 + list(tot_r, list(tot_r, 1)) = i_r + EXIT + endif + enddo + if(.not. found) then + tot_r = tot_r + 1 + aux_vec3(tot_r, :) = r_vec3(i_r,:) + list(tot_r, 1) = list(tot_r, 1) + 1 + list(tot_r, list(tot_r, 1) + 1) = i_r + endif + enddo + + u_rvec3(:,:) = aux_vec3(:,:) end subroutine @@ -334,6 +683,28 @@ function norma2(m) result (d) end function + function norma3(m) result (d) + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + + real(kind=DP), intent(in) :: m(:,:,:) + + real(kind=DP) :: d + integer :: i, j, k, shapem(3) + + shapem = shape(m) + d = 0.0_DP + do k = 1, shapem(3) + do i = 1, shapem(2) + do j = 1, shapem(1) + d = d + m(j,i,k)**2 + enddo + enddo + enddo + d = sqrt(d) + + end function + function dot(v,m) result (v1) IMPLICIT NONE INTEGER, PARAMETER :: DP = selected_real_kind(14,200) diff --git a/cellconstructor/SSCHA_phonopy_parser.py b/cellconstructor/SSCHA_phonopy_parser.py index bc905016..a0f62d8c 100644 --- a/cellconstructor/SSCHA_phonopy_parser.py +++ b/cellconstructor/SSCHA_phonopy_parser.py @@ -151,13 +151,14 @@ def sscha_phonons_from_phonopy(phonon): # Get ForceTensor.Tensor3 from Phono3py object -def phonopy_fc3_to_tensor3(tc): +def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): unitcell = get_sscha_structure_from_phonopy(tc.primitive) supercell = get_sscha_structure_from_phonopy(tc.supercell) uc_nat = unitcell.N_atoms sc_nat = supercell.N_atoms if(uc_nat in tc.fc3.shape[0:3]): + print('Compact forceconstants.') tc.generate_displacements() supercells = tc.supercells_with_displacements tc.fc3 = force_constants_3rd_order @@ -178,23 +179,33 @@ def phonopy_fc3_to_tensor3(tc): permutations = tc.symmetry.atomic_permutations distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) - supercell_matrix = np.diag(tc.supercell_matrix).astype(int) + supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() + #print(supercell_matrix) + #print(unitcell.unit_cell) + #print(unitcell.coords) supercell_structure = unitcell.generate_supercell(supercell_matrix) -# print(supercell.coords) -# print(supercell_structure.coords) + #print(supercell_structure.unit_cell) + #print(supercell_structure.coords) atom_mapping = np.zeros(len(supercell.coords), dtype=int) + already_there = [False for x in range(len(supercell.coords))] for iat in range(len(supercell.coords)): found_atom = False for jat in range(len(supercell.coords)): - if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5): + if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and not already_there[jat]): atom_mapping[iat] = jat found_atom = True + already_there[jat] = True break + elif(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and already_there[jat]): + raise RuntimeError('Already matched this atom!') if(not found_atom): print('Could not find ' + str(iat + 1) + ' atom in the structure!') + if(not np.all(already_there)): + raise RuntimeError('Did not match all atoms...') # print(atom_mapping) tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) - + #print(tensor3.supercell_structure.unit_cell) + #print(tensor3.supercell_structure.coords) aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) for iat in range(sc_nat): iat1 = atom_mapping[iat] @@ -207,13 +218,15 @@ def phonopy_fc3_to_tensor3(tc): for k in range(3): aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] d3 = np.asfortranarray(aux_tensor) - qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) - qe_sym.SetupFromSPGLIB() - qe_sym.ApplySymmetryToTensor3(d3) + if(apply_symmetries): + qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) + qe_sym.SetupFromSPGLIB() + qe_sym.ApplySymmetryToTensor3(d3) d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV tensor3.SetupFromTensor(d3) np.save("d3_realspace_sym.npy", d3) + print('Translated phonopy 3rd order force constants.') return tensor3 def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 6040a2f9..24c1ef6b 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -460,7 +460,7 @@ def stupid_centering_fc3(tensor3): return tensor3 -def stupid_centering_fc3_v3(tensor3, Far = 1): +def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): #print(psutil.virtual_memory().percent) rprim = tensor3.unitcell_structure.unit_cell.copy() irprim = np.linalg.inv(rprim) @@ -483,17 +483,25 @@ def stupid_centering_fc3_v3(tensor3, Far = 1): cell = (rprim, xpos, numbers) if(tensor3.n_R == tensor3.n_sup**2): print('ForceTensor most likely not previously centered! ') - permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) - print(psutil.virtual_memory().percent) + if(check_for_symmetries): + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + print(psutil.virtual_memory().percent) + if(not permutation): + print('Permutation symmetry not satisfied. Forcing symmetry! ') + fc3 = thermal_conductivity.third_order_cond_centering.apply_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + tensor3.tensor = fc3 + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + else: + permutation = True if(permutation): print('Permutation symmetry satisfied. Centering ...') - hfc3, hr_vector2, hr_vector3, tot_trip = thermal_conductivity.third_order_cond_centering.find_triplets(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, rsup, irsup, positions, tensor3.n_R, natom) + hfc3, hr_vector2, hr_vector3, tot_trip = thermal_conductivity.third_order_cond_centering.find_triplets(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, rsup, irsup, positions, Far, tensor3.n_R, natom) hfc3 = np.asfortranarray(hfc3) hr_vector3 = np.asfortranarray(hr_vector3) hr_vector2 = np.asfortranarray(hr_vector2) #print(np.shape(hfc3), np.shape(hr_vector3), np.shape(hr_vector2), tensor3.n_R, natom) - print(tot_trip) - maxtrip = np.sum(tot_trip)*natom**3 + #print(tot_trip) + maxtrip = thermal_conductivity.third_order_cond_centering.number_of_triplets(hfc3, hr_vector2, hr_vector3, tot_trip, natom, tensor3.n_R) # print(maxtrip, tensor3.n_R, natom) # print(psutil.virtual_memory().percent) # print(np.shape(hfc3), np.shape(hr_vector2), np.shape(hr_vector3)) @@ -514,12 +522,26 @@ def stupid_centering_fc3_v3(tensor3, Far = 1): tensor3.x_r_vector2 = np.rint(np.dot(r_vector2[0:ntrip,:], irprim), dtype=float).T tensor3.x_r_vector3 = np.rint(np.dot(r_vector3[0:ntrip,:], irprim), dtype=float).T write_fc3(tensor3) - permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) - if(not permutation): - print('After centering tensor does not satisfy permutation symmetry!') + if(check_for_symmetries): + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + if(not permutation): + print('After centering tensor does not satisfy permutation symmetry!') return tensor3 else: - print('Permutation symmetry not satisfied. Abandon centering! ') + raise RuntimeError('Permutation symmetry not satisfied again. Aborting ...') + +def apply_asr(tensor3, tol = 1.0e-10): + + print('Applying ASR!') + natom = tensor3.unitcell_structure.N_atoms + + fc3 = thermal_conductivity.third_order_cond_centering.apply_asr(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + tensor3.tensor = fc3 + permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + if(not permutation): + print('After ASR tensor does not satisfy permutation symmetry!') + + return tensor3 def write_fc3(tensor3): natom = len(tensor3.unitcell_structure.coords) @@ -862,74 +884,10 @@ def apply_permutation_symmetry(tensor3, pairs): tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] = (tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] + tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T)/2.0 tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)] = tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)].T -def apply_asr(tensor3, tol = 1.0e-10): - - rprim = tensor3.unitcell_structure.unit_cell.copy() - irprim = np.linalg.inv(rprim) - rsup = tensor3.supercell_structure.unit_cell.copy() - irsup = np.linalg.inv(rsup) - - unique_xr2 = [] - for i in range(tensor3.n_R): - found = False - for j in range(len(unique_xr2)): - if(np.linalg.norm(tensor3.x_r_vector2[:,i] - tensor3.x_r_vector2[:,unique_xr2[j][0]]) < 1.0e-5): - found = True - unique_xr2[j].append(i) - break - if(not found): - unique_xr2.append([i]) - got = [False for x in range(tensor3.n_R)] - pairs = [] - for i in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,i].copy() - rvec3 = tensor3.r_vector3[:,i].copy() - if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): - pairs.append([i,i]) - got[i] = True - else: - if(not got[i]): - for j in range(i, tensor3.n_R): - if(not got[j]): - rvec21 = tensor3.r_vector2[:,j].copy() - rvec31 = tensor3.r_vector3[:,j].copy() - if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): - pairs.append([i,j]) - got[i] = True - got[j] = True - if(not np.all(got)): - for i in range(tensor3.n_R): - if(not got[i]): - print(tensor3.x_r_vector2[:,i]) - print(tensor3.x_r_vector3[:,i]) - raise RuntimeError('Could not find all the pairs!') - - for i in range(len(unique_xr2)): - suma = np.zeros_like(tensor3.tensor[i]) - for j in range(len(unique_xr2[i])): - suma += tensor3.tensor[unique_xr2[i][j]] - norm = np.linalg.norm(suma) - step = 1 - while(norm > tol): - suma = np.zeros_like(tensor3.tensor[i]) - for j in range(len(unique_xr2[i])): - suma += tensor3.tensor[unique_xr2[i][j]] - suma /= float(len(unique_xr2[i])) - for j in range(len(unique_xr2[i])): - tensor3.tensor[unique_xr2[i][j]] -= suma - apply_permutation_symmetry(tensor3, pairs) - suma = np.zeros_like(tensor3.tensor[0]) - for j in range(len(unique_xr2[i])): - suma += tensor3.tensor[unique_xr2[i][j]] - norm = np.linalg.norm(suma) - print('Norm on step ' + str(step) + ' ' + format(norm, '.8e')) - step += 1 - return tensor3 - class ThermalConductivity: - def __init__(self, dyn, tensor3, kpoint_grid = 2, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', off_diag = False): + def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', off_diag = False): """ @@ -957,6 +915,13 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, smearing_scale = 1.0, smearing self.kpoint_grid = np.array([kpoint_grid for x in range(3)]) else: self.kpoint_grid = np.array(kpoint_grid).astype(int) + if(scattering_grid is not None): + if(isinstance(scattering_grid, int)): + self.scattering_grid = np.array([scattering_grid for x in range(3)]) + else: + self.scattering_grid = np.array(scattering_grid).astype(int) + else: + self.scattering_grid = self.kpoint_grid.copy() self.smearing_scale = smearing_scale self.unitcell = self.dyn.structure.unit_cell print('Primitive cell: ') @@ -1016,6 +981,7 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): if(self.smearing_scale is not None): hf.create_dataset('smearing_scale', data = np.array([self.smearing_scale])) hf.create_dataset('kpoint_grid', data = self.kpoint_grid) + hf.create_dataset('scattering_grid', data = self.scattering_grid) hf.create_dataset('unit_cell', data = self.unitcell) hf.create_dataset('supercell', data = self.supercell) dt = h5py.special_dtype(vlen=str) @@ -1101,6 +1067,7 @@ def load(self, filename): except: pass self.kpoint_grid = np.array(hf.get('kpoint_grid')) + self.scattering_grid = np.array(hf.get('scattering_grid')) self.unitcell = np.array(hf.get('unit_cell')) self.supercell = np.array(hf.get('supercell')) self.smearing_type = np.array2string(np.array(hf.get('smearing_type')))[2:-1] @@ -1167,7 +1134,9 @@ def load(self, filename): if('kappa' in key): temp = key.split('_')[-1] self.kappa[temp] = np.array(hf.get(key)) - + +############################################################################################################################################ + def set_kpoints(self): """ @@ -1179,6 +1148,8 @@ def set_kpoints(self): time_init = time.time() self.k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.kpoint_grid) self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) + self.scattering_k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.scattering_grid) + self.scattering_qpoints = np.dot(np.array(self.scattering_k_points), self.unitcell.T) print('Generated grid in ' + format(time.time() - time0, '.2e') + ' seconds.') time0 = time.time() self.irr_k_points = self.symmetry.SelectIrreducibleQ(self.k_points) @@ -1207,6 +1178,7 @@ def set_kpoints(self): #print(self.qstar_list) self.nkpt = np.shape(self.k_points)[0] + self.scattering_nkpt = np.shape(self.scattering_k_points)[0] self.nirrkpt = np.shape(self.irr_k_points)[0] self.weights = np.zeros(self.nirrkpt, dtype = int) for iqpt in range(self.nirrkpt): @@ -1252,7 +1224,10 @@ def set_kpoints_alternative(self): time0 = time.time() self.k_points = np.array(k_points) self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) + self.scattering_k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.scattering_grid) + self.scattering_qpoints = np.dot(np.array(self.scattering_k_points), self.unitcell.T) self.nkpt = np.shape(self.k_points)[0] + self.scattering_nkpt = np.shape(self.scattering_k_points)[0] self.nirrkpt = np.shape(self.irr_k_points)[0] self.weights = np.zeros(self.nirrkpt, dtype = int) for iqpt in range(self.nirrkpt): @@ -1360,13 +1335,13 @@ def set_scattering_grids_fortran(self): irrgrid.append(self.qpoints[self.qstar_list[iqpt][0]]) irrgrid = np.asfortranarray(irrgrid) (scattering_grid, scattering_weight) = thermal_conductivity.scattering_grids.get_scattering_q_grid(rotations, irrgrid, self.qpoints, \ - self.nirrkpt, self.nkpt, nsym) + self.scattering_qpoints, self.nirrkpt, self.nkpt, self.scattering_nkpt, nsym) self.scattering_grids = [] self.scattering_weights = [] for iqpt in range(self.nirrkpt): curr_grid = [] curr_w = [] - for jqpt in range(self.nkpt): + for jqpt in range(self.scattering_nkpt): if(scattering_weight[iqpt][jqpt] > 0): curr_grid.append(np.dot(scattering_grid[iqpt][jqpt], self.reciprocal_lattice)) curr_w.append(scattering_weight[iqpt][jqpt]) @@ -1374,9 +1349,9 @@ def set_scattering_grids_fortran(self): break self.scattering_grids.append(curr_grid) self.scattering_weights.append(curr_w) - if(sum(curr_w) != self.nkpt): + if(sum(curr_w) != self.scattering_nkpt): print('WARNING! Sum of weights for ' + str(iqpt + 1) + '. q point does not match total number of q points!') - print(sum(curr_w), self.nkpt) + print(sum(curr_w), self.scattering_nkpt) print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') self.set_up_scattering_grids = True print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') @@ -1457,9 +1432,9 @@ def setup_smearings(self, smearing_value = 0.00005): self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale else: self.sigmas[ikpt][iband] = 0.0 - min_smear = np.average(np.average(self.sigmas))/100.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) + min_smear = np.amax(self.sigmas)/100.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) #print(min_smear) - self.sigmas[self.sigmas == 0.0] = min_smear + self.sigmas[self.sigmas < min_smear] = min_smear #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 if(self.smearing_type == 'constant'): self.sigmas[:,:] = smearing_value @@ -1836,7 +1811,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort num_scattering_events = len(scattering_grids) if(sum(scattering_events) != num_scattering_events): print('Difference in number of scattering events!') - if(sum(weights) != self.nkpt*self.nirrkpt): + if(sum(weights) != self.scattering_nkpt*self.nirrkpt): print('Unexpected number of weights!') scattering_grids = np.asfortranarray(scattering_grids).T weights = np.asfortranarray(weights) @@ -2487,6 +2462,10 @@ def get_frequency_at_q(self, q): """ uc_positions = self.dyn.structure.coords.copy() + #uc_positions = np.dot(uc_positions, np.linalg.inv(self.dyn.structure.unit_cell)) + #uc_positions -= np.rint(uc_positions) + #uc_positions = np.dot(uc_positions, self.dyn.structure.unit_cell) + m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat From e3b357a0ce5fe43424e5372ef38a881e952db078 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 29 Jun 2022 09:34:41 +0200 Subject: [PATCH 025/204] add different scattering and sumation grids --- FModules/get_scattering_q_grid.f90 | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/FModules/get_scattering_q_grid.f90 b/FModules/get_scattering_q_grid.f90 index 92ac1a3a..1f51c20c 100644 --- a/FModules/get_scattering_q_grid.f90 +++ b/FModules/get_scattering_q_grid.f90 @@ -3,21 +3,21 @@ module scattering_grids contains - subroutine get_scattering_q_grid(rotations, irrqgrid, qgrid, nirrqpt, nqpt, nsym, & - scattering_grid, scattering_weights) + subroutine get_scattering_q_grid(rotations, irrqgrid, qgrid, scatt_qgrid, & + nirrqpt, nqpt, scatt_nqpt, nsym, scattering_grid, scattering_weights) implicit none integer, parameter :: DP = selected_real_kind(14,200) - integer, intent(in) :: nirrqpt, nqpt, nsym + integer, intent(in) :: nirrqpt, nqpt, nsym, scatt_nqpt real(kind=DP), intent(in) :: rotations(nsym,3,3) - real(kind=DP), intent(in) :: irrqgrid(nirrqpt, 3), qgrid(nqpt, 3) + real(kind=DP), intent(in) :: irrqgrid(nirrqpt, 3), qgrid(nqpt, 3), scatt_qgrid(scatt_nqpt, 3) - real(kind=DP), intent(out) :: scattering_grid(nirrqpt, nqpt, 3) - integer, intent(out) :: scattering_weights(nirrqpt, nqpt) + real(kind=DP), intent(out) :: scattering_grid(nirrqpt, scatt_nqpt, 3) + integer, intent(out) :: scattering_weights(nirrqpt, scatt_nqpt) - integer :: iqpt, jqpt, isym, jsym, isg, nsg, ilist, lenlist + integer :: iqpt, jqpt, isym, jsym, isg, nsg, ilist, lenlist, tot_events integer :: sg_ind(nsym) real(kind=DP) :: q1(3), q2(3), q3(3), q21(3), q31(3) logical :: in_list @@ -40,8 +40,8 @@ subroutine get_scattering_q_grid(rotations, irrqgrid, qgrid, nirrqpt, nqpt, nsym !print*, 'Size of the small group of ', iqpt, ' q point is ', nsg lenlist = 0 - do jqpt = 1, nqpt - q2 = qgrid(jqpt, :) + do jqpt = 1, scatt_nqpt + q2 = scatt_qgrid(jqpt, :) q3 = -1.0_DP*q1 - q2 in_list = .False. @@ -79,7 +79,12 @@ subroutine get_scattering_q_grid(rotations, irrqgrid, qgrid, nirrqpt, nqpt, nsym endif enddo - !print*, 'Final number of scattering events: ', lenlist + !print*, 'Final number of scattering events: ', lenlist + !tot_events = 0 + !do ilist = 1, lenlist + ! tot_events = tot_events + scattering_weights(iqpt,ilist) + !enddo + !print*, 'Total number of scattering events: ', tot_events, scatt_nqpt enddo end subroutine get_scattering_q_grid From c5436eb95a45762c52933332b0046a1c0f5d1638 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 28 Jul 2022 10:09:26 +0200 Subject: [PATCH 026/204] Add lineshape along the line --- FModules/get_lf.f90 | 78 +++-- cellconstructor/ThermalConductivity.py | 390 ++++++++++++------------- 2 files changed, 237 insertions(+), 231 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index cb446a97..4b22b9c8 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -4,7 +4,7 @@ module get_lf subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & - classical, energies, ne, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, lineshapes) + classical, energies, ne, nirrqpt, nat, nfc2, nfc3, n_events, lineshapes) use omp_lib use third_order_cond @@ -14,7 +14,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ integer, parameter :: DP = selected_real_kind(14,200) real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 - integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, ne, n_events + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, ne, n_events integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) real(kind=DP), intent(in) :: qgrid(3, n_events) @@ -25,7 +25,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ real(kind=DP), intent(in) :: rprim(3, 3) real(kind=DP), intent(in) :: pos(3, nat) real(kind=DP), intent(in) :: masses(nat), energies(ne) - real(kind=DP), intent(in) :: smear(3*nat, nqpt), smear_id(3*nat, nqpt) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt), smear_id(3*nat, nirrqpt) real(kind=DP), intent(in) :: T logical, intent(in) :: gaussian, classical real(kind=DP), dimension(nirrqpt, 3*nat, ne), intent(out) :: lineshapes @@ -92,15 +92,20 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ enddo ! print*, 'Got grids' call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & - nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear, T, & + nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) deallocate(curr_w) self_energy = self_energy/dble(tot_qpt) - + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in self_energy' + endif if(gaussian) then call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in Kramers Kronig' + endif endif call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) @@ -127,7 +132,7 @@ end subroutine calculate_lineshapes subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, & - classical, nirrqpt, nqpt, nat, nfc2, nfc3, n_events, self_energies) + classical, nirrqpt, nat, nfc2, nfc3, n_events, self_energies) use omp_lib implicit none @@ -135,7 +140,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even integer, parameter :: DP = selected_real_kind(14,200) real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 - integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, n_events + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, n_events integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) real(kind=DP), intent(in) :: qgrid(3, n_events) @@ -146,7 +151,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even real(kind=DP), intent(in) :: rprim(3, 3) real(kind=DP), intent(in) :: pos(3, nat) real(kind=DP), intent(in) :: masses(nat) - real(kind=DP), intent(in) :: smear(3*nat, nqpt) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt) real(kind=DP), intent(in) :: T logical, intent(in) :: gaussian, classical complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies @@ -206,7 +211,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even enddo call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, 3*nat, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, & - smear, T, w_q, .not. parallelize, gaussian, classical, self_energy) + smear(:,iqpt), T, w_q, .not. parallelize, gaussian, classical, self_energy) deallocate(curr_grid) tot_qpt = sum(curr_w) @@ -234,7 +239,7 @@ end subroutine calculate_lifetimes_perturbative subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, classical, nirrqpt, & - nqpt, nat, nfc2, nfc3, n_events, self_energies) + nat, nfc2, nfc3, n_events, self_energies) use omp_lib implicit none @@ -242,7 +247,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 integer, parameter :: DP = selected_real_kind(14,200) real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 - integer, intent(in) :: nirrqpt, nat, nqpt, nfc2, nfc3, n_events + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, n_events integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) real(kind=DP), intent(in) :: qgrid(3, n_events) @@ -253,7 +258,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 real(kind=DP), intent(in) :: rprim(3, 3) real(kind=DP), intent(in) :: pos(3, nat) real(kind=DP), intent(in) :: masses(nat) - real(kind=DP), intent(in) :: smear(3*nat, nqpt) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt) real(kind=DP), intent(in) :: T logical, intent(in) :: gaussian, classical complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: self_energies @@ -588,12 +593,20 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) - if(any(w2_k < 0.0_DP)) then - print*, 'Negative eigenvalue of dynamical matrix! Exit!' + if(any(w2_k < 0.0_DP) .and. .not. is_k_gamma) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_k_gamma + print*, kpt + print*, vec_dot_mat(kpt, inv(kprim)) + print*, kprim + print*, w2_k is_k_neg = .True. endif - if(any(w2_mk_mq < 0.0_DP)) then - print*, 'Negative eigenvalue of dynamical matrix! Exit!' + if(any(w2_mk_mq < 0.0_DP) .and. .not. is_mk_mq_gamma) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_mk_mq_gamma + print*, mkpt + print*, vec_dot_mat(mkpt, inv(kprim)) + print*, kprim + print*, w2_mk_mq is_mk_mq_neg = .True. endif ! print*, 'Calculated frequencies! ' @@ -654,6 +667,9 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 d3_pols, ne, 3*nat, gaussian, classical, selfnrg) ! print*, 'Got selfnrg!' self_energy = self_energy + selfnrg*dble(weights(jqpt)) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN for jqpt', jqpt + endif deallocate(ifc3, d3, d3_pols, selfnrg) deallocate(pols_k, pols_mk_mq) deallocate(kpt, mkpt) @@ -691,14 +707,14 @@ subroutine check_if_gamma(nat, q, kprim, w2_q, is_gamma) w2_q(iat) = 0.0_DP enddo else - red_q(:) = 0.0_DP - do iat = 1, 3 - red_q = red_q + q(iat)*ikprim(iat, :) - enddo + red_q(:) = vec_dot_mat(q, ikprim) + !do iat = 1, 3 + ! red_q = red_q + q(iat)*ikprim(iat, :) + !enddo do iat = 1, 3 red_q(iat) = red_q(iat) - dble(NINT(red_q(iat))) enddo - if(all(abs(red_q) < 1.0d-6)) then + if(all(abs(red_q) < 2.0d-3)) then is_gamma = .TRUE. do iat = 1, 3 w2_q(iat) = 0.0_DP @@ -710,6 +726,26 @@ subroutine check_if_gamma(nat, q, kprim, w2_q, is_gamma) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + function vec_dot_mat(v1, m1) result (v2) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + real(kind=DP),intent(in) :: m1(:,:), v1(:) + real(kind=DP) :: v2(size(v1)) + + integer :: i + + v2 = 0.0_DP + do i = 1, 3 + v2 = v2 + v1(i)*m1(i,:) + enddo + + end function vec_dot_mat + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energies) implicit none diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 24c1ef6b..7f40b32e 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -253,212 +253,45 @@ def check_degeneracy(x, tol): curr_degs.append(j) degs.append(curr_degs) return degs - -def stupid_centering_fc3(tensor3): - - rprim = tensor3.unitcell_structure.unit_cell.copy() - irprim = np.linalg.inv(rprim) - rsup = tensor3.supercell_structure.unit_cell.copy() - irsup = np.linalg.inv(rsup) - #print(rprim) - positions = tensor3.unitcell_structure.coords.copy() - xpos = np.dot(positions, np.linalg.inv(rprim)) - natom = len(xpos) - #print(xpos) - symbols = tensor3.unitcell_structure.atoms - unique_symbols = np.unique(symbols) - unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 - numbers = np.zeros(len(symbols)) - for iat in range(len(symbols)): - for jat in range(len(unique_symbols)): - if(symbols[iat] == unique_symbols[jat]): - numbers[iat] = unique_numbers[jat] - #print(numbers) - cell = (rprim, xpos, numbers) - - if(tensor3.n_R == tensor3.n_sup**2): - print('Not previously centered. Stupid centering!') - got = [False for x in range(tensor3.n_R)] - pairs = [] - # Check if it satisfies the permutation symmetry - for i in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,i].copy() - rvec3 = tensor3.r_vector3[:,i].copy() - if(np.linalg.norm(rvec2) < 1.0e-5 and np.linalg.norm(rvec3) < 1.0e-5): - pairs.append([i,i]) - got[i] = True - else: - if(not got[i]): - for j in range(i, tensor3.n_R): - if(not got[j]): - rvec21 = tensor3.r_vector2[:,j].copy() - rvec31 = tensor3.r_vector3[:,j].copy() - if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): - pairs.append([i,j]) - got[i] = True - got[j] = True - if(not np.all(got)): - for i in range(tensor3.n_R): - if(not got[i]): - print(tensor3.x_r_vector2[:,i]) - print(tensor3.x_r_vector3[:,i]) - print('') - else: - print('Found all pairs') - for ipair in range(len(pairs)): - if(pairs[ipair][0] != pairs[ipair][1]): - ip = pairs[ipair][0] - jp = pairs[ipair][1] - for i in range(3*natom): - for iat in range(natom): - for jat in range(natom): - if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): - print('Permutation symmetry failed original!') - print(tensor3.tensor[ip,i]) - print(tensor3.tensor[jp,i]) - print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) - print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) - raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) - break - new_r_vector2 = [] - new_r_vector3 = [] - new_tensor = [] - print('Finished check. Centering...') - for ir in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,ir].copy() - rvec3 = tensor3.r_vector3[:,ir].copy() - xvec2 = np.dot(rvec2, irsup) - xvec3 = np.dot(rvec3, irsup) - size2 = np.linalg.norm(rvec2) - size20 = np.linalg.norm(rvec2) - size3 = np.linalg.norm(rvec3) - size30 = np.linalg.norm(rvec3) - size = np.linalg.norm(rvec3 - rvec2) + size2 + size3 - rvec2_new = [] - rvec3_new = [] - # Find the shortest pair vectors in the mirror supercells -2 < x < 2 - for i in range(-2,3): - for j in range(-2,3): - for k in range(-2,3): - xvec21 = xvec2 + np.array([i,j,k]) - rvec21 = np.dot(xvec21, rsup) - size21 = np.linalg.norm(rvec21) - if(size21 <= size2 + 1.0e-6): - if(abs(size21 - size2) < 1.0e-6): - rvec2_new.append(rvec21.copy()) - else: - rvec2_new = [] - rvec2_new.append(rvec21.copy()) - size2 = size21 - rvec2 = rvec21.copy() - xvec31 = xvec3 + np.array([i,j,k]) - rvec31 = np.dot(xvec31, rsup) - size31 = np.linalg.norm(rvec31) - if(size31 <= size3 + 1.0e-6): - if(abs(size31 - size3) < 1.0e-6): - rvec3_new.append(rvec31.copy()) - else: - rvec3_new = [] - rvec3_new.append(rvec31.copy()) - size3 = size31 - rvec3 = rvec31.copy() - #for i1 in range(-2,3): - # for j1 in range(-2,3): - # for k1 in range(-2,3): - # xvec31 = xvec3 + np.array([i1,j1,k1]) - # rvec31 = np.dot(xvec31, rsup) - # size31 = np.linalg.norm(rvec31) - # size1 = np.linalg.norm(rvec21) + np.linalg.norm(rvec31) + np.linalg.norm(rvec31 - rvec21) - # #if(size21 < size2 and size31 < size3): - # if(size21 <= size2 and size31 <= size3): - # size2 = size21 - # size3 = size31 - # size = size1 - # rvec2 = rvec21.copy() - # rvec3 = rvec31.copy() - #print(xvec2, xvec3, size20, size30) - #print(np.dot(rvec2, irsup), np.dot(rvec3, irsup), size2, size3) - #print('') - #print(len(rvec2_new)) - #print(np.dot(rvec2_new, irprim)) - #print(len(rvec3_new)) - #print(np.dot(rvec3_new, irprim)) - #print('') - #if(len(rvec2_new) > 1 or len(rvec3_new) > 1): - # size4 = np.linalg.norm(rvec2_new[0] - rvec3_new[0]) - # rvec2 = rvec2_new[0] - # rvec3 = rvec3_new[0] - # for i in range(len(rvec2_new)): - # for j in range(len(rvec3_new)): - # if(np.linalg.norm(rvec2_new[i] - rvec3_new[j]) < size4): - # size4 = np.linalg.norm(rvec2_new[i] - rvec3_new[j]) - # rvec2 = rvec2_new[i] - # rvec3 = rvec3_new[j] - # For each pair of the shortest pairs construct another entry to tensor3 and scale it with multiplicity - for iuc in range(len(rvec2_new)): - for juc in range(len(rvec3_new)): - new_r_vector2.append(rvec2_new[iuc]) - new_r_vector3.append(rvec3_new[juc]) - new_tensor.append(tensor3.tensor[ir]/float(len(rvec2_new)*len(rvec3_new))) - #tensor3.r_vector2[:,ir] = rvec2 - #tensor3.r_vector3[:,ir] = rvec3 - #tensor3.x_r_vector2[:,ir] = np.rint(np.dot(tensor3.r_vector2[:,ir], irprim), dtype=float) - #tensor3.x_r_vector3[:,ir] = np.rint(np.dot(tensor3.r_vector3[:,ir], irprim), dtype=float) - tensor3.n_R = len(new_r_vector2) - tensor3.r_vector2 = np.array(new_r_vector2).T - tensor3.r_vector3 = np.array(new_r_vector3).T - tensor3.x_r_vector2 = np.zeros_like(tensor3.r_vector2) - tensor3.x_r_vector3 = np.zeros_like(tensor3.r_vector3) - tensor3.tensor = np.array(new_tensor) - got = [False for x in range(tensor3.n_R)] - pairs = [] - for i in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,i].copy() - rvec3 = tensor3.r_vector3[:,i].copy() - tensor3.x_r_vector2[:,i] = np.rint(np.dot(tensor3.r_vector2[:,i], irprim), dtype=float) - tensor3.x_r_vector3[:,i] = np.rint(np.dot(tensor3.r_vector3[:,i], irprim), dtype=float) - # Find pairs to check if this centering broke permutation symmetry - if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): - pairs.append([i,i]) - got[i] = True - else: - if(not got[i]): - for j in range(i, tensor3.n_R): - if(not got[j]): - rvec21 = tensor3.r_vector2[:,j].copy() - rvec31 = tensor3.r_vector3[:,j].copy() - if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): - pairs.append([i,j]) - got[i] = True - got[j] = True - if(not np.all(got)): - for i in range(tensor3.n_R): - if(not got[i]): - print(tensor3.x_r_vector2[:,i]) - print(tensor3.x_r_vector3[:,i]) - print('') + +def get_kpoints_in_path(path, nkpts, kprim): + segments = path['path'] + coords = path['point_coords'] + tot_length = 0.0 + for i in range(len(segments)): + qpt1 = coords[segments[i][1]] + qpt2 = coords[segments[i][0]] + qpt1 = np.dot(qpt1, kprim) + qpt2 = np.dot(qpt2, kprim) + tot_length += np.linalg.norm(qpt1 - qpt2) + dl = tot_length/float(nkpts) + distance = [] + kpoints = [] + for i in range(len(segments)): + qpt1 = coords[segments[i][1]] + qpt2 = coords[segments[i][0]] + qpt1 = np.dot(qpt1, kprim) + qpt2 = np.dot(qpt2, kprim) + length = np.linalg.norm(qpt1 - qpt2) + kpoints.append(qpt2) + if(i == 0): + distance.append(0.0) else: - print('Found all pairs') - for ipair in range(len(pairs)): - if(pairs[ipair][0] != pairs[ipair][1]): - ip = pairs[ipair][0] - jp = pairs[ipair][1] - for i in range(3*natom): - for iat in range(natom): - for jat in range(natom): - if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): - print('Permutation symmetry failed!') - print(tensor3.tensor[ip,i]) - print(tensor3.tensor[jp,i]) - print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) - print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) - raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) - break + distance.append(distance[-1]) + start_dist = distance[-1] + nkpts1 = np.int(np.floor(length/dl)) + for j in range(nkpts1): + newqpt = qpt2 + (qpt1 - qpt2)/float(nkpts1)*float(j + 1) + kpoints.append(newqpt) + distance.append(start_dist + np.linalg.norm(qpt1 - qpt2)/float(nkpts1)*float(j + 1)) + distance = np.array(distance) + print('k-point path taken: ') + for i in range(len(segments)): + print(segments[i], end = ' -> ') + print('') + distance /= distance[-1] + return kpoints, distance, segments - else: - print('Probably already centered! Nothing to do!') - - return tensor3 def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): #print(psutil.virtual_memory().percent) @@ -1694,6 +1527,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 # print(integrands_plus.shape) integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + #integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 kappa = np.einsum('ijk,ijl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1755,6 +1589,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. energies : the list of frequencies for which lineshapes are calculated. method : practically only determines how many times fortran routines are called. "fortran" should be much faster. + gauss_smearing : are we using Gaussian smearing as approximation for energy conservation """ start_time = time.time() @@ -1797,9 +1632,11 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) + sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) scattering_grids = [] @@ -1823,8 +1660,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - self.sigmas.T, np.zeros_like(self.sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ - self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): jkpt = self.qstar_list[ikpt][0] @@ -1848,6 +1685,135 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort ################################################################################################################################## + def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = False, kpoints = None, start_nkpts = 100): + + """ + Calculate phonon lineshapes in full Brillouin zone. + + temperature : temperature to calculate lineshapes on. + ne : Number of frequency points for the lineshapes + gauss_smearing : are we using Gaussian smearing as approximation for energy conservation + kpoints : the list of kpoints in reduced coordinates to calculate lineshapes for. + If not provided generate them using seekpath + nkpts : Number of k points along the path. Will differ from the final number of points! + """ + + start_time = time.time() + + tics = [] + if(kpoints is None): + import seekpath + rat = np.dot(self.dyn.structure.coords, np.linalg.inv(self.dyn.structure.unit_cell)) + sym = np.unique(self.dyn.structure.atoms) + nt = np.zeros(len(rat)) + for i in range(len(rat)): + for j in range(len(sym)): + if(self.dyn.structure.atoms[i] == sym[j]): + nt[i] = j + 1 + break + path = seekpath.getpaths.get_path((self.dyn.structure.unit_cell, rat, nt)) + kpoints, distances, segments = get_kpoints_in_path(path, start_nkpts, self.reciprocal_lattice) + for i in range(len(distances)): + if(i == 0): + tics.append(distances[0]) + elif(np.abs(distances[i] - distances[i-1]) < 1.0e-12): + tics.append(distances[i]) + tics.append(distances[-1]) + if(len(tics) - 1 != len(segments)): + print('Number of tics and segments does not match! Weird!') + print(len(tics), len(segments) + 1) + kpoints = np.array(kpoints) + else: + kpoints = kpoints#np.dot(kpoints, self.reciprocal_lattice) + nkpts = len(kpoints) + freqs = np.zeros((nkpts, self.nband)) + for ikpt in range(nkpts): + freqs[ikpt], _ = self.get_frequency_at_q(kpoints[ikpt]) + + maxfreq = np.amax(freqs)*2.1 + energies = np.arange(ne, dtype=float)/float(ne)*maxfreq + + lineshapes = np.zeros((nkpts, self.nband, ne)) + + irrqgrid = kpoints.T + scattering_events = np.zeros(nkpts, dtype=int) + sigmas = np.zeros((nkpts, self.nband)) + sigmas[:,:] = self.sigmas[0,0] + for ikpt in range(nkpts): + scattering_events[ikpt] = len(self.scattering_qpoints) + irrqgrid = np.asfortranarray(irrqgrid) + + scattering_grids = [] + weights = [] + for ikpt in range(nkpts): + for jkpt in range(len(self.scattering_qpoints)): + scattering_grids.append(self.scattering_qpoints[jkpt]) + weights.append(1) + num_scattering_events = len(scattering_grids) + if(sum(scattering_events) != num_scattering_events): + print('Difference in number of scattering events!') + print(sum(scattering_events), num_scattering_events) + if(sum(weights) != self.scattering_nkpt*nkpts): + print('Unexpected number of weights!') + print(sum(weights), self.scattering_nkpt*nkpts) + scattering_grids = np.asfortranarray(scattering_grids).T + weights = np.asfortranarray(weights) + + classical = False + if(self.cp_mode == 'classical'): + classical = True + + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + + for ikpt in range(nkpts): + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, kpoints[ikpt])): + for iband in range(self.nband): + if(freqs[ikpt, iband] < np.amax(self.freqs[ikpt])*1.0e-6): + curr_ls[ikpt, iband] = 0.0 + lineshapes[ikpt,:,:] = curr_ls[ikpt,:,:]*2.0 + + with open(filename, 'w+') as outfile: + outfile.write('# Path and tics: \n') + outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) + for i in range(len(segments) - 1): + if(segments[i][1] == segments[i + 1][0]): + outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) + else: + outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) + outfile.write(' ' + segments[len(segments)-1][1] + ' ' + format(tics[len(segments)], '.8f') + '\n') + outfile.write('# normalized distance energy (THz) lineshape (1/THz) \n') + for ikpt in range(nkpts): + for ie in range(ne): + outfile.write(' ' + format(distances[ikpt], '.12e')) + outfile.write(' ' + format(energies[ie]*SSCHA_TO_THZ, '.12e')) + for iband in range(self.nband): + outfile.write(' ' + format(lineshapes[ikpt,iband,ie]/SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + outfile.write('\n') + + with open(filename + '_phonons', 'w+') as outfile: + outfile.write('# Path and tics: \n') + outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) + for i in range(len(segments) - 1): + if(segments[i][1] == segments[i + 1][0]): + outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) + else: + outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) + outfile.write(' ' + segments[-1][1] + ' ' + format(tics[-1], '.8f') + '\n') + outfile.write('# normalized distance frequency (THz) \n') + for ikpt in range(nkpts): + outfile.write(' ' + format(distances[ikpt], '.12e')) + for iband in range(self.nband): + outfile.write(' ' + format(freqs[ikpt,iband]*SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + + print('Calculated SSCHA lineshapes in: ', time.time() - start_time) + + ################################################################################################################################## def write_lineshape(self, filename, curr_ls, jkpt, energies): """ @@ -2119,9 +2085,11 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering print('Calculating lifetimes in fortran, lorentzian approximation!') irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) + sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) @@ -2146,8 +2114,8 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering selfengs = thermal_conductivity.get_lf.calculate_lifetimes(irrqgrid, scattering_grids, weights, scattering_events, \ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ - self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - gauss_smearing, classical, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ + self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), sigmas.T, temperature, \ + gauss_smearing, classical, self.nirrkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor),\ num_scattering_events) for ikpt in range(self.nirrkpt): @@ -2163,9 +2131,11 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering print('Calculating lifetimes in fortran, perturbative approximation!') irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) + sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) @@ -2190,8 +2160,8 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering selfengs = thermal_conductivity.get_lf.calculate_lifetimes_perturbative(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, \ - self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), self.sigmas.T, temperature, \ - gauss_smearing, classical, self.nirrkpt, self.nkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + self.fc3.r_vector3, self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(), sigmas.T, temperature, \ + gauss_smearing, classical, self.nirrkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): for iqpt in range(len(self.qstar_list[ikpt])): From a0bc8c2baeebf5712c905a94ee83573b1879a073 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 1 Aug 2022 15:30:00 +0200 Subject: [PATCH 027/204] debug in lineshape_along_line --- cellconstructor/ThermalConductivity.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 7f40b32e..c2617af7 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1772,10 +1772,17 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec for ikpt in range(nkpts): if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, kpoints[ikpt])): for iband in range(self.nband): - if(freqs[ikpt, iband] < np.amax(self.freqs[ikpt])*1.0e-6): + if(freqs[ikpt, iband] < np.amax(freqs[ikpt])*1.0e-6): curr_ls[ikpt, iband] = 0.0 lineshapes[ikpt,:,:] = curr_ls[ikpt,:,:]*2.0 + with open('Qpoints_along_line', 'w+') as outfile: + for ikpt in range(nkpts): + qpt = np.dot(kpoints[ikpt], np.linalg.inv(self.reciprocal_lattice)) + for i in range(3): + outfile.write(3*' ' + format(qpt[i], '.12f')) + outfile.write('\n') + with open(filename, 'w+') as outfile: outfile.write('# Path and tics: \n') outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) From 755e0d7f4bb26d9b0d134945809d72f0311e877d Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 2 Aug 2022 16:17:44 +0200 Subject: [PATCH 028/204] debug along_line again --- FModules/get_lf.f90 | 12 +++++++++++- cellconstructor/ThermalConductivity.py | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 4b22b9c8..4073f39e 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -596,14 +596,18 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 if(any(w2_k < 0.0_DP) .and. .not. is_k_gamma) then print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_k_gamma print*, kpt + print*, vec_dot_mat(qpt, inv(kprim)) print*, vec_dot_mat(kpt, inv(kprim)) + print*, vec_dot_mat(mkpt, inv(kprim)) print*, kprim print*, w2_k is_k_neg = .True. endif if(any(w2_mk_mq < 0.0_DP) .and. .not. is_mk_mq_gamma) then - print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_mk_mq_gamma + print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_mk_mq_gamma, 'mk_mq_gamma' print*, mkpt + print*, vec_dot_mat(qpt, inv(kprim)) + print*, vec_dot_mat(kpt, inv(kprim)) print*, vec_dot_mat(mkpt, inv(kprim)) print*, kprim print*, w2_mk_mq @@ -675,6 +679,12 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) deallocate(freqs_array) + else + deallocate(ifc3, d3, d3_pols, selfnrg) + deallocate(pols_k, pols_mk_mq) + deallocate(kpt, mkpt) + deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) + deallocate(freqs_array) endif enddo !$OMP END PARALLEL DO diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index c2617af7..98343e98 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1557,7 +1557,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 - integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi kappa_diag = np.einsum('ijjk,ijjl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1747,7 +1747,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec weights = [] for ikpt in range(nkpts): for jkpt in range(len(self.scattering_qpoints)): - scattering_grids.append(self.scattering_qpoints[jkpt]) + scattering_grids.append(self.scattering_k_points[jkpt]) weights.append(1) num_scattering_events = len(scattering_grids) if(sum(scattering_events) != num_scattering_events): @@ -1929,7 +1929,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smear if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband + 1, self.nband): if(self.freqs[iqpt, jband] != 0.0): - vel_fact = np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + vel_fact = 1.0#np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*vel_fact**2/\ self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) From fd0308464c13040dd61a75f0501b68a7283c6e78 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 8 Aug 2022 11:30:50 +0200 Subject: [PATCH 029/204] adding different lineshape definition --- FModules/get_lf.f90 | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 4073f39e..9c785d3a 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -108,7 +108,8 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ endif endif - call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + !call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) do i = 1, 3*nat if(w_q(i) .ne. 0.0_DP) then @@ -130,6 +131,39 @@ end subroutine calculate_lineshapes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nat, ne + real(kind=DP), intent(in) :: w_q(3*nat), energies(ne) + complex(kind=DP), intent(in) :: self_energy(ne, 3*nat) + real(kind=DP), intent(inout) :: lineshape(ne, 3*nat) + + integer :: iband, ie + real(kind = DP) :: a, b + + lineshape(:,:) = 0.0_DP + do iband = 1, 3*nat + if(w_q(iband) .gt. 0.0_DP) then + do ie = 2, ne + a = (energies(ie)**2 - dble(self_energy(ie, iband)) - w_q(iband)**2) + b = aimag(self_energy(ie, iband)) + if(a .ne. 0.0_DP .and. b .ne. 0.0_DP) then + lineshape(ie, iband) = -aimag(self_energy(ie, iband))/(a**2+b**2) + endif + enddo + lineshape(:, iband) = lineshape(:, iband)*w_q(iband)/PI + endif + enddo + + end subroutine calculate_correlation_function + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, T, gaussian, & classical, nirrqpt, nat, nfc2, nfc3, n_events, self_energies) From e2a9051730bea1a3077b1bf93622f7e27d5d35fa Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 10 Aug 2022 10:55:33 +0200 Subject: [PATCH 030/204] Small bug in GK approach --- FModules/get_lf.f90 | 4 ++-- cellconstructor/ThermalConductivity.py | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 9c785d3a..f9909501 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -108,8 +108,8 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ endif endif - !call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) - call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) + call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + !call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) do i = 1, 3*nat if(w_q(i) .ne. 0.0_DP) then diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 98343e98..30dcc652 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1522,13 +1522,15 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) kappa = 0.0 exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + #integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + integrands_plus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 exponents = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + integrands_minus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 # print(integrands_plus.shape) integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 #integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa = np.einsum('ijk,ijl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1554,24 +1556,26 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) kappa_diag = np.zeros((3,3)) exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 + #integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 + integrands_plus = self.lineshapes[ls_key]**2*exponents_plus/(exponents_plus - 1.0)**2 exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 + #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 + integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi - kappa_diag = np.einsum('ijjk,ijjl,ij->kl', self.gvels, self.gvels, integrals)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi kappa_nondiag = np.zeros_like(kappa_diag) for iqpt in range(self.nkpt): - for iband in range(self.nband): + for iband in range(self.nband-1): if(self.freqs[iqpt, iband] != 0.0): - for jband in range(self.nband): + for jband in range(iband, self.nband): if(iband != jband and self.freqs[iqpt, jband] != 0.0): - integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*energies**2*exponents_plus/(exponents_plus - 1.0)**2 - integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*energies**2*exponents_minus/(exponents_minus - 1.0)**2 + integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 + integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]**2*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])\ + kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])\ *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag += kappa_nondiag.T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi From 645f2ea615d1965efb7d3914bd73a97532ed53e7 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 11 Aug 2022 12:42:10 +0200 Subject: [PATCH 031/204] Added Isaeva definition! --- cellconstructor/ThermalConductivity.py | 65 +++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 30dcc652..f14a3c42 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -190,7 +190,19 @@ def heat_capacity(freqs, temperature, hbar1, kb1, cp_mode = 'quantum'): return 0.0 elif(cp_mode == 'classical'): return kb1 + + #################################################################################################################################### +def bose_einstein(freqs, temperature, hbar1, kb1, cp_mode = 'quantum'): + + if(cp_mode == 'quantum'): + if(freqs > 0.0): + x1 = np.exp(hbar1*freqs/kb1/temperature) + return 1.0/(x1-1.0) + else: + return 0.0 + elif(cp_mode == 'classical'): + return kb1/temperature ##################################################################################################################################### @@ -960,6 +972,7 @@ def load(self, filename): elif('lineshapes' in key): temp = key.split('_')[-1] if(temp not in self.lineshapes.keys()): + print('Reading') self.lineshapes[temp] = np.zeros((self.nkpt, self.nband, ne)) self.lineshapes[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) @@ -1937,7 +1950,57 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smear kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*vel_fact**2/\ self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) - kappa_nondiag = 2.0*kappa_nondiag*np.sqrt(AU*MASS_RY_TO_UMA*BOHR_TO_ANGSTROM**2*1.0e-20/RY_TO_J) + kappa_nondiag = 2.0*kappa_nondiag/SSCHA_TO_THZ/1.0e12 + + kappa_diag += kappa_diag.T + kappa_nondiag += kappa_nondiag.T + kappa_diag = kappa_diag/2.0*SSCHA_TO_MS**2#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_nondiag = kappa_nondiag/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + + return kappa_diag, kappa_nondiag + + ################################################################################################################################################################################ + + def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + + """ + Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Communications volume 10, Article number: 3853 (2019)). + Quite slow! + + """ + + lf_key = format(temperature, '.1f') + cp_key = format(temperature, '.1f') + if(lf_key in self.lifetimes.keys()): + print('Lifetimes for this temperature have already been calculated. Continuing ...') + else: + self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + if(cp_key in self.cp.keys()): + print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') + else: + self.get_heat_capacity(temperature) + scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) +# scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) + if(write_lifetimes): + self.write_transport_properties_to_file(temperature, isotope_scattering) + kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + + pops = np.zeros_like(self.freqs) + for iqpt in range(self.nkpt): + for iband in range(self.nband): + pops[iqpt, iband] = bose_einstein(self.freqs[iqpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = self.cp_mode) + + kappa_nondiag = np.zeros_like(kappa_diag) + for iqpt in range(self.nkpt): + for iband in range(self.nband - 1): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(iband + 1, self.nband): + if(self.freqs[iqpt, jband] != 0.0): + kappa_nondiag += self.freqs[iqpt, iband]*self.freqs[iqpt, jband]*(pops[iqpt, iband] - pops[iqpt, jband])/(self.freqs[iqpt, jband] - self.freqs[iqpt, iband])*\ + np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ + ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) + + kappa_nondiag = 2.0*kappa_nondiag*HPLANCK/temperature kappa_diag += kappa_diag.T kappa_nondiag += kappa_nondiag.T From d0d2e6ccc2e96d8c3229fb838972d16505c14dd1 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 12 Aug 2022 10:06:30 +0200 Subject: [PATCH 032/204] ismall changes to velocities! --- cellconstructor/ThermalConductivity.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index f14a3c42..6eb38199 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1587,7 +1587,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga if(iband != jband and self.freqs[iqpt, jband] != 0.0): integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 - integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])\ *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag += kappa_nondiag.T @@ -1946,7 +1946,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smear if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband + 1, self.nband): if(self.freqs[iqpt, jband] != 0.0): - vel_fact = 1.0#np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + vel_fact = np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*vel_fact**2/\ self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) @@ -2371,11 +2371,11 @@ def get_group_velocity(self, q, freqs, eigvecs): for icart in range(3): auxfc = np.einsum('ijk,i->ijk', self.force_constants, self.ruc[:,icart])*complex(0.0, 1.0) ddynmat = np.einsum('ijk,i->jk', auxfc, exponents) * mm_inv_mat - for iat in range(len(uc_positions)): - for jat in range(len(uc_positions)): - if(iat != jat): - extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi - ddynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + #for iat in range(len(uc_positions)): + # for jat in range(len(uc_positions)): + # if(iat != jat): + # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi + # ddynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) if(is_q_gamma): if(self.off_diag): for iband in range(self.nband): @@ -2517,11 +2517,11 @@ def get_frequency_at_q(self, q): phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi exponents = np.exp(1j*phases) dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat - for iat in range(len(uc_positions)): - for jat in range(len(uc_positions)): - if(iat != jat): - extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi - dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + #for iat in range(len(uc_positions)): + # for jat in range(len(uc_positions)): + # if(iat != jat): + # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi + # dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) dynmat = (dynmat + dynmat.conj().T)/2.0 w2_q, pols_q = np.linalg.eigh(dynmat) is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) From 6d2e6841bf27e4ea18da9c18443e18da98c96f09 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 16 Aug 2022 09:12:11 +0200 Subject: [PATCH 033/204] Self-consistent solution for phonon lifetimes and shifts --- FModules/get_lf.f90 | 179 ++++++++++++++++++++++++- cellconstructor/ThermalConductivity.py | 97 ++++++++++++-- 2 files changed, 266 insertions(+), 10 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index f9909501..d5b49a28 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -131,6 +131,183 @@ end subroutine calculate_lineshapes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & + classical, energies, ne, nirrqpt, nat, nfc2, nfc3, n_events, selfengs) + + use omp_lib + use third_order_cond + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, ne, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat), energies(ne) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt), smear_id(3*nat, nirrqpt) + real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian, classical + complex(kind=DP), dimension(nirrqpt, 3*nat), intent(out) :: selfengs + + integer :: iqpt, i, jqpt, tot_qpt, prev_events, nthreads + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q, tau, omega + complex(kind=DP), allocatable, dimension(:, :) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + + selfengs(:,:) = complex(0.0_DP,0.0_DP) + kprim = transpose(inv(rprim)) + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif +! print*, 'Got parallelize' + + !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, tau, omega) & + !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & + !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, selfengs, & + !$OMP irrqgrid, qgrid, weights, gaussian, classical) + do iqpt = 1, nirrqpt + allocate(self_energy(ne, 3*nat)) +! print*, iqpt + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix!' + w_neg_freqs = .True. + endif +! print*, 'Interpolate frequency' + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:,:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo +! print*, 'Got grids' + call calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & + nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & + energies, .not. parallelize, gaussian, classical, self_energy) + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in self_energy' + endif + if(gaussian) then + call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in Kramers Kronig' + endif + endif + tau(:) = 0.0_DP + omega(:) = 0.0_DP + call solve_selfconsistent_equation(ne, 3*nat, w_q, self_energy, energies, tau, omega) + + do i = 1, 3*nat + if(w_q(i) .ne. 0.0_DP) then + selfengs(iqpt, i) = complex(omega(i), tau(i)) + else + selfengs(iqpt, i) = complex(0.0_DP, 0.0_DP) + endif + enddo + else + selfengs(iqpt, i) = complex(0.0_DP, 0.0_DP) + endif + deallocate(self_energy) + + enddo + !$OMP END PARALLEL DO + + end subroutine calculate_lifetimes_selfconsistently + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine solve_selfconsistent_equation(ne, nband, w_q, self_energy, energies, tau, omega) + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nband, ne + real(kind=DP), intent(in) :: w_q(nband), energies(ne) + complex(kind=DP), intent(in) :: self_energy(ne, nband) + real(kind=DP), intent(inout) :: tau(nband), omega(nband) + + integer :: iband, ie, ie0 + real(kind=DP) :: curr_freq, prev_freq, d_freq, den, rew, imw + + den = energies(2) - energies(1) + do iband = 1, nband + if(w_q(iband) > 0.0_DP) then + curr_freq = w_q(iband) + d_freq = curr_freq + do while(d_freq > den) + prev_freq = curr_freq + do ie = 2, ne + if(curr_freq - energies(ie) < 0.0_DP .and. curr_freq - energies(ie-1) > 0.0_DP) then + ie0 = ie + EXIT + endif + enddo + rew = dble(self_energy(ie0-1, iband)) + (curr_freq - energies(ie-1))*& + (dble(self_energy(ie0,iband)) - dble(self_energy(ie0-1, iband)))/den + curr_freq = sqrt(w_q(iband)**2 + rew) + d_freq = curr_freq - prev_freq + enddo + omega(iband) = curr_freq + do ie = 2, ne + if(omega(iband) - energies(ie) < 0.0_DP .and. omega(iband) - energies(ie-1) > 0.0_DP) then + ie0 = ie + EXIT + endif + enddo + imw = aimag(self_energy(ie0-1, iband)) + (omega(iband) - energies(ie-1))*& + (aimag(self_energy(ie0,iband)) - aimag(self_energy(ie0-1, iband)))/den + tau(iband) = imw/2.0_DP/w_q(iband) + else + omega(iband) = 0.0_DP + tau(iband) = 0.0_DP + endif + enddo + + end subroutine solve_selfconsistent_equation + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) implicit none @@ -817,7 +994,7 @@ subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energi rse = rse + aimag(self_energy(j, iband))*(diff + suma)*(energies(2) - energies(1))/PI endif enddo - self_energy(i, iband) = cmplx(rse, aimag(self_energy(i, iband))) + self_energy(i, iband) = complex(rse, aimag(self_energy(i, iband))) enddo enddo diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 6eb38199..e6e75b06 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1408,8 +1408,9 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = gauss_smearing : If true will use the Gaussian function to satisfy energy conservation insted of Lorentzian lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. - ne : Number of frequency points to calculate phonon lineshapes on. Less anharmonic materials \ - and lower temperatures will need more points. + ne : Number of frequency points to calculate phonon lineshapes on in case of GK. \ + Number of frequency points to solve self-consistent equation on in case of SRTA. \ + Less anharmonic materials and lower temperatures will need more points (in case of GK). kappa_filename : Name of the file to write the results to. """ @@ -1450,7 +1451,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): if(not self.off_diag): - kappa = self.calculate_kappa_srta_diag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) + kappa = self.calculate_kappa_srta_diag(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes= isotopes, lf_method = lf_method) kappa = kappa/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): @@ -1461,7 +1462,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -1700,6 +1701,79 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort print('Calculated SSCHA lineshapes in: ', time.time() - start_time) + ################################################################################################################################# + + def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False): + + """ + Calculate phonon lifetimes in full Brillouin zone self-consistently. + + temperature : temperature to calculate lineshapes on. + write_lifetimes : Boolean parameter to write phonon lifetimes as they are being calculated. + energies : the list of frequencies for which lineshapes are calculated. + gauss_smearing : are we using Gaussian smearing as approximation for energy conservation + """ + + start_time = time.time() + if(self.delta_omega == 0.0 and not 'energies' in locals()): + self.delta_omega = np.amax(self.freqs)*2.0/float(ne) + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + elif(self.delta_omega == 0.0 and energies is not None): + self.delta_omega = energies[1] - energies[0] + lf_key = format(temperature, '.1f') + + lifetimes = np.zeros((self.nkpt, self.nband)) + shifts = np.zeros_like(lifetimes) + if(not self.set_up_scattering_grids): + #if(gauss_smearing): + # self.set_scattering_grids_simple() + #else: + self.set_scattering_grids_fortran() + + irrqgrid = np.zeros((3, self.nirrkpt)) + scattering_events = np.zeros(self.nirrkpt, dtype=int) + sigmas = np.zeros((self.nirrkpt, self.nband)) + for ikpt in range(self.nirrkpt): + irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + scattering_events[ikpt] = len(self.scattering_grids[ikpt]) + sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] + irrqgrid = np.asfortranarray(irrqgrid) + + scattering_grids = [] + weights = [] + for ikpt in range(self.nirrkpt): + for jkpt in range(len(self.scattering_grids[ikpt])): + scattering_grids.append(self.scattering_grids[ikpt][jkpt]) + weights.append(self.scattering_weights[ikpt][jkpt]) + num_scattering_events = len(scattering_grids) + if(sum(scattering_events) != num_scattering_events): + print('Difference in number of scattering events!') + if(sum(weights) != self.scattering_nkpt*self.nirrkpt): + print('Unexpected number of weights!') + scattering_grids = np.asfortranarray(scattering_grids).T + weights = np.asfortranarray(weights) + + classical = False + if(self.cp_mode == 'classical'): + classical = True + + selfengs = thermal_conductivity.get_lf.calculate_lifetimes_selfconsistently(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + + for ikpt in range(self.nirrkpt): + for iqpt in range(len(self.qstar_list[ikpt])): + jqpt = self.qstar_list[ikpt][iqpt] + lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 + shifts[jqpt,:] = selfengs[ikpt].real + + self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + self.freqs_shifts[lf_key] = shifts + + print('Calculated SSCHA lifetimes in: ', time.time() - start_time) + ################################################################################################################################## def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = False, kpoints = None, start_nkpts = 100): @@ -1885,7 +1959,7 @@ def get_heat_capacity(self, temperature): ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1898,7 +1972,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing print('Lifetimes for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon lifetimes for ' + format(temperature, '.1f') + ' K temperature!') - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, ne, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -1916,7 +1990,7 @@ def calculate_kappa_srta_diag(self, temperature, write_lifetimes, gauss_smearing ################################################################################################################################## - def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Physics volume 15, pages 809–813 (2019)). @@ -1929,7 +2003,7 @@ def calculate_kappa_srta_offdiag(self, temperature, write_lifetimes, gauss_smear if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, ne, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -2081,11 +2155,12 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): #################################################################################################################################### - def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): + def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): """ Get phonon lifetimes in the full Brillouin zone at temperature. + ne : Number of frequencies used in self-consistent solution. gauss_smearing : If true will use the Gaussian function to satisfy conservation laws, instead Lorentzian (only fortran) isotope_scattering : If true will calculate the scattering rates due to isotope concentration isotopes : The relative concentration and masses of isotopes @@ -2094,6 +2169,7 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering LA/P : Approximation used for the lifetimes. LA means one shot approximation defined in J. Phys.: Condens. Matter 33 363001 . Default value. P means perturbative approximation. The one used by most other codes! + SC : Solve for lifetimes and frequency shifts self-consistently! """ if(not self.set_up_scattering_grids): @@ -2246,6 +2322,9 @@ def get_lifetimes(self, temperature, gauss_smearing = False, isotope_scattering self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) self.freqs_shifts[lf_key] = shifts + elif(method == 'SC'): + self.get_lifetimes_selfconsistently(temperature, ne, gauss_smearing = gauss_smearing) + else: print('Unrecognized method! Exit!') raise RuntimeError('No such method for calculating phonon lifetimes!') From 3aa12d231375e085773f0780e573c532c480ed96 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 30 Aug 2022 12:57:00 +0200 Subject: [PATCH 034/204] Bug found in work_full_dynamic_correction_along_path_multiprocessing --- cellconstructor/Spectral.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ebb65f22..4552e606 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1254,6 +1254,8 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 diag_approx,nsm,smear_id_cm,smear_cm,filename_sp , x_length): print("iq=",iq) + + spectralf = np.zeros( (ne, nsm), dtype = np.float64 ) spectralf[:, :] = get_full_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), smear_id, smear, energies, T, static_limit, notransl , From 9296fb487a97dc175eff8e93688780f371907d69 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 30 Aug 2022 13:02:53 +0200 Subject: [PATCH 035/204] Bug fixed --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 4552e606..03e7565a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1255,7 +1255,7 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 x_length): print("iq=",iq) - spectralf = np.zeros( (ne, nsm), dtype = np.float64 ) + spectralf = np.zeros( (energies.shape[0], nsm), dtype = np.float64 ) spectralf[:, :] = get_full_dynamic_bubble(tensor2, tensor3, k_grid, np.array(q), smear_id, smear, energies, T, static_limit, notransl , From 40a7ae0c5d6ad076865f87cafe521453f07aac0f Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 5 Sep 2022 14:45:59 +0200 Subject: [PATCH 036/204] Recheck --- cellconstructor/ThermalConductivity.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index e6e75b06..c62e6bd4 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -7,6 +7,7 @@ import numpy as np import os, sys import scipy, scipy.optimize +from scipy import integrate import h5py import psutil @@ -1542,8 +1543,9 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 integrands_minus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 # print(integrands_plus.shape) - integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - #integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 + #integrals = (integrate.simps(integrands_plus, axis = len(integrands_plus.shape) - 1) + integrate.simps(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1718,6 +1720,8 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False if(self.delta_omega == 0.0 and not 'energies' in locals()): self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + elif(self.delta_omega != 0.0 and not 'energies' in locals()): + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega elif(self.delta_omega == 0.0 and energies is not None): self.delta_omega = energies[1] - energies[0] lf_key = format(temperature, '.1f') @@ -1776,7 +1780,7 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False ################################################################################################################################## - def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = False, kpoints = None, start_nkpts = 100): + def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, kpoints = None, start_nkpts = 100): """ Calculate phonon lineshapes in full Brillouin zone. @@ -2069,7 +2073,7 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gaus for iband in range(self.nband - 1): if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband + 1, self.nband): - if(self.freqs[iqpt, jband] != 0.0): + if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] - self.freqs[iqpt, iband] != 0.0): kappa_nondiag += self.freqs[iqpt, iband]*self.freqs[iqpt, jband]*(pops[iqpt, iband] - pops[iqpt, jband])/(self.freqs[iqpt, jband] - self.freqs[iqpt, iband])*\ np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) From c4a21740d17db7aaa00f7e80cc72fb4c462f1851 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 15 Sep 2022 07:47:41 +0200 Subject: [PATCH 037/204] added finite difference group velocities --- cellconstructor/ThermalConductivity.py | 191 ++++++++++++++++++------- 1 file changed, 136 insertions(+), 55 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index c62e6bd4..58094109 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -241,31 +241,31 @@ def same_vector(vec1, vec2, cell): break return res - ###################################################################################################################################### +###################################################################################################################################### - def check_degeneracy(x, tol): +def check_degeneracy(x, tol): - """ + """ - Simple check if there are degenerate phonon modes for a given k - point. + Simple check if there are degenerate phonon modes for a given k - point. - x - frequencies at the given k - point - tol - tolerance to be satisfied + x - frequencies at the given k - point + tol - tolerance to be satisfied - """ + """ - x1 = x.copy() - x1 = x1.tolist() - degs = [] - for i in range(len(x1)): - if(not any(i in sl for sl in degs)): - curr_degs = [] - curr_degs.append(i) - for j in range(i+1, len(x1)): - if(np.abs(x1[i]-x1[j]) < tol): - curr_degs.append(j) - degs.append(curr_degs) - return degs + x1 = x.copy() + x1 = x1.tolist() + degs = [] + for i in range(len(x1)): + if(not any(i in sl for sl in degs)): + curr_degs = [] + curr_degs.append(i) + for j in range(i+1, len(x1)): + if(np.abs(x1[i]-x1[j]) < tol): + curr_degs.append(j) + degs.append(curr_degs) + return degs def get_kpoints_in_path(path, nkpts, kprim): segments = path['path'] @@ -730,6 +730,12 @@ def apply_permutation_symmetry(tensor3, pairs): tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] = (tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] + tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T)/2.0 tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)] = tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)].T +def rotate_eigenvectors(ddm, eigs): + + _, eigvecs = np.linalg.eigh(np.dot(eigs.conj(), np.dot(ddm, eigs.T))) + rot_eigvecs = np.dot(eigvecs.T, eigs) + + return rot_eigvecs class ThermalConductivity: @@ -2349,8 +2355,9 @@ def setup_harmonic_properties(self, smearing_value = 0.00005): for ikpt, kpt in enumerate(self.k_points): self.freqs[ikpt], self.eigvecs[ikpt] = self.get_frequency_at_q(kpt) self.gvels[ikpt] = self.get_group_velocity(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) + #self.gvels[ikpt] = self.get_group_velocity_finite_difference(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) - self.symmetrize_group_velocities_over_star() + #self.symmetrize_group_velocities_over_star() #self.check_group_velocities() #self.check_frequencies() self.setup_smearings(smearing_value) @@ -2437,6 +2444,7 @@ def get_group_velocity(self, q, freqs, eigvecs): """ uc_positions = self.dyn.structure.coords.copy() + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) if(self.off_diag): tmp_gvel = np.zeros((self.nband, self.nband, 3)) @@ -2444,41 +2452,52 @@ def get_group_velocity(self, q, freqs, eigvecs): else: tmp_gvel = np.zeros((self.nband, 3)) gvel = np.zeros((self.nband, 3)) - #rq = np.dot(q, self.reciprocal_lattice) - phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi - exponents = np.exp(1j*phases) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat + degs = check_degeneracy(freqs, np.amax(freqs)*1.0e-8) + for icart in range(3): - auxfc = np.einsum('ijk,i->ijk', self.force_constants, self.ruc[:,icart])*complex(0.0, 1.0) - ddynmat = np.einsum('ijk,i->jk', auxfc, exponents) * mm_inv_mat - #for iat in range(len(uc_positions)): - # for jat in range(len(uc_positions)): - # if(iat != jat): - # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi - # ddynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + auxfc = np.zeros_like(self.force_constants[0], dtype = complex) + for iuc in range(len(self.force_constants)): + for iat in range(len(uc_positions)): + for jat in range(len(uc_positions)): + ruc = -self.ruc[iuc] + uc_positions[iat] - uc_positions[jat] + phase = np.dot(ruc, q)*2.0*np.pi + auxfc[3*iat:3*(iat+1),3*jat:3*(jat+1)] += complex(0.0,1.0)*ruc[icart]*self.force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) + ddynmat = auxfc * mm_inv_mat + if(icart == 0): + dirdynmat = ddynmat.copy() + rot_eigvecs = np.zeros_like(eigvecs) + for ideg, deg in enumerate(degs): + rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) if(is_q_gamma): if(self.off_diag): for iband in range(self.nband): if(freqs[iband] != 0.0): for jband in range(self.nband): if(freqs[jband] != 0.0): - gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) else: for iband in range(self.nband): if(freqs[iband] != 0.0): - tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) else: if(self.off_diag): for iband in range(self.nband): for jband in range(self.nband): - tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) else: for iband in range(self.nband): - tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + if(np.any(np.isnan(tmp_gvel))): + raise RuntimeError('NaN is group velocity matrix!') gvel = self.symmetrize_group_velocity(tmp_gvel, q) return gvel @@ -2486,6 +2505,71 @@ def get_group_velocity(self, q, freqs, eigvecs): ################################################################################################################################## + def get_group_velocity_finite_difference(self, q, freqs, eigvecs): + + """ + Calculate group velocity. Using analytical formula. + + q : wave vector in real space (without 2pi factor) + freqs : frequencies for this wave vector + eigvecs : eigenvectors for this wave vector + + """ + + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) + if(self.off_diag): + tmp_gvel = np.zeros((self.nband, self.nband, 3)) + gvel = np.zeros((self.nband, self.nband, 3)) + else: + tmp_gvel = np.zeros((self.nband, 3)) + gvel = np.zeros((self.nband, 3)) + + degs = check_degeneracy(freqs, np.amax(freqs)*1.0e-8) + + for icart in range(3): + dynmat0 = self.get_dynamical_matrix(q) + dq = np.zeros_like(q) + dq[icart] = np.sum(np.linalg.norm(self.reciprocal_lattice[:,icart]))/1000.0 + q1 = q + dq + dynmat1 = self.get_dynamical_matrix(q1) + q2 = q - dq + dynmat2 = self.get_dynamical_matrix(q2) + ddynmat = (dynmat1 - dynmat2)/np.linalg.norm(dq)/2.0/2.0/np.pi + if(icart == 0): + dirdynmat = ddynmat.copy() + rot_eigvecs = np.zeros_like(eigvecs) + for ideg, deg in enumerate(degs): + rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) + if(is_q_gamma): + if(self.off_diag): + for iband in range(self.nband): + if(freqs[iband] != 0.0): + for jband in range(self.nband): + if(freqs[jband] != 0.0): + #gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + else: + for iband in range(self.nband): + if(freqs[iband] != 0.0): + # tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + else: + if(self.off_diag): + for iband in range(self.nband): + for jband in range(self.nband): + #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + else: + for iband in range(self.nband): + #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + + gvel = self.symmetrize_group_velocity(tmp_gvel, q) + + return gvel + + ################################################################################################################################## + def symmetrize_group_velocity(self, vels, q): """ @@ -2588,24 +2672,7 @@ def get_frequency_at_q(self, q): """ - uc_positions = self.dyn.structure.coords.copy() - #uc_positions = np.dot(uc_positions, np.linalg.inv(self.dyn.structure.unit_cell)) - #uc_positions -= np.rint(uc_positions) - #uc_positions = np.dot(uc_positions, self.dyn.structure.unit_cell) - - m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() - mm_mat = np.sqrt(np.outer(m, m)) - mm_inv_mat = 1.0 / mm_mat - #rq = np.dot(q, self.reciprocal_lattice) - phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi - exponents = np.exp(1j*phases) - dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat - #for iat in range(len(uc_positions)): - # for jat in range(len(uc_positions)): - # if(iat != jat): - # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi - # dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) - dynmat = (dynmat + dynmat.conj().T)/2.0 + dynmat = self.get_dynamical_matrix(q) w2_q, pols_q = np.linalg.eigh(dynmat) is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) if(is_q_gamma): @@ -2638,9 +2705,23 @@ def get_dynamical_matrix(self, q): m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat - phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi - exponents = np.exp(1j*phases) - dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat + dynmat = np.zeros_like(self.force_constants[0], dtype = complex) + #phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi + #exponents = np.exp(1j*phases) + #dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat + #for iat in range(len(uc_positions)): + # for jat in range(len(uc_positions)): + # if(iat != jat): + # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi + # dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) + for ir in range(len(self.ruc)): + for iat in range(len(uc_positions)): + for jat in range(len(uc_positions)): + r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] + phase = np.dot(r, q)*2.0*np.pi + dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) + dynmat = dynmat*mm_inv_mat + dynmat = (dynmat + dynmat.conj().T)/2.0 return dynmat From bece15ae1c55bc5cbff3378dc671966289e6c701 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 16 Sep 2022 15:23:27 +0200 Subject: [PATCH 038/204] Added different definitions of group velocities! --- cellconstructor/ThermalConductivity.py | 330 +++++++++++++++++-------- 1 file changed, 225 insertions(+), 105 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 58094109..f01bbc0c 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -802,9 +802,9 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): - self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) + self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) else: - self.gvels = np.zeros((self.nkpt, self.nband, 3)) + self.gvels = np.zeros((self.nkpt, self.nband, 3), dtype = complex) self.sigmas = np.zeros_like(self.freqs) # Lifetimes, frequency shifts, lineshapes, heat_capacities and thermal conductivities are stored in dictionaries # Dictionary key is the temperature at which property is calculated on @@ -937,9 +937,9 @@ def load(self, filename): self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): - self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) + self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) else: - self.gvels = np.zeros((self.nkpt, self.nband, 3)) + self.gvels = np.zeros((self.nkpt, self.nband, 3), dtype = complex) self.sigmas = np.zeros_like(self.freqs) self.irr_k_points = [] @@ -1270,7 +1270,7 @@ def setup_smearings(self, smearing_value = 0.00005): """ if(self.smearing_type == 'adaptive'): - if(np.all(self.freqs == 0.0) or np.all(self.gvels == 0.0)): + if(np.all(self.freqs == 0.0) or np.all(self.gvels.real == 0.0)): print('Harmonic properties are all zero! Try reruning the harmonic calculation! ') return 1 delta_q = 0.0 @@ -1360,9 +1360,9 @@ def calc_spectral_kappa_gk_diag(self, temperature): integrands = (integrands_plus + integrands_minus) if(self.off_diag): - spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels.conj(), self.gvels,integrands).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 else: - spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels.conj(), self.gvels,integrands).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 spec_kappa = spec_kappa*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*self.delta_omega print('Total kappa is: ', np.diag(tot_kappa)) @@ -1390,9 +1390,9 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): for iband in range(self.nband): weight = gaussian(energies[ien], self.freqs[iqpt, iband], self.sigmas[iqpt, iband]) if(self.off_diag): - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband], self.gvels[iqpt,iband, iband]) + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband].conj(), self.gvels[iqpt,iband, iband]).real else: - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband], self.gvels[iqpt,iband]) + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband].conj(), self.gvels[iqpt,iband]).real spec_kappa = spec_kappa*SSCHA_TO_MS**2/self.volume/float(self.nkpt)*1.0e30#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*delta_en print('Total kappa is: ', np.diag(tot_kappa)) @@ -1469,6 +1469,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: + #kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag_isaeva(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 @@ -1552,7 +1553,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 #integrals = (integrate.simps(integrands_plus, axis = len(integrands_plus.shape) - 1) + integrate.simps(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1584,7 +1585,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi - kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1597,7 +1598,8 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 - kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])\ + kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ + np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real\ *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag += kappa_nondiag.T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1992,7 +1994,7 @@ def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smea if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real kappa += kappa.T kappa = kappa/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 @@ -2022,7 +2024,7 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s # scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real kappa_nondiag = np.zeros_like(kappa_diag) for iqpt in range(self.nkpt): @@ -2030,10 +2032,13 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband + 1, self.nband): if(self.freqs[iqpt, jband] != 0.0): - vel_fact = np.sqrt(2.0*self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al - kappa_nondiag += (self.freqs[iqpt, iband] + self.freqs[iqpt, jband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])*\ - (self.freqs[iqpt, jband]*self.cp[cp_key][iqpt, iband] + self.freqs[iqpt, iband]*self.cp[cp_key][iqpt, jband])*np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*vel_fact**2/\ - self.freqs[iqpt,iband]/self.freqs[iqpt, jband]/2.0/(4.0*(self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + a1 = (self.freqs[iqpt, jband] + self.freqs[iqpt, iband])/4.0 + a2 = self.cp[cp_key][iqpt, iband]/self.freqs[iqpt, iband] + self.cp[cp_key][iqpt, jband]/self.freqs[iqpt, jband] + a3 = 0.5*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband]) + a4 = (self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2/4.0 + kappa_nondiag += a1*a2*a3/a4*np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real*vel_fact**2 + kappa_nondiag = 2.0*kappa_nondiag/SSCHA_TO_THZ/1.0e12 kappa_diag += kappa_diag.T @@ -2045,7 +2050,7 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s ################################################################################################################################################################################ - def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_offdiag_isaeva(self, temperature, ne, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculates both diagonal and off diagonal contribution to the lattice thermal conductivity (Nature Communications volume 10, Article number: 3853 (2019)). @@ -2058,7 +2063,7 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gaus if(lf_key in self.lifetimes.keys()): print('Lifetimes for this temperature have already been calculated. Continuing ...') else: - self.get_lifetimes(temperature, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) + self.get_lifetimes(temperature, ne, gauss_smearing = gauss_smearing, isotope_scattering = isotope_scattering, isotopes = isotopes, method = lf_method) if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: @@ -2067,7 +2072,7 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gaus # scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels,self.gvels,self.lifetimes[lf_key]) + kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real pops = np.zeros_like(self.freqs) for iqpt in range(self.nkpt): @@ -2081,7 +2086,7 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, write_lifetimes, gaus for jband in range(iband + 1, self.nband): if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] - self.freqs[iqpt, iband] != 0.0): kappa_nondiag += self.freqs[iqpt, iband]*self.freqs[iqpt, jband]*(pops[iqpt, iband] - pops[iqpt, jband])/(self.freqs[iqpt, jband] - self.freqs[iqpt, iband])*\ - np.outer(self.gvels[iqpt, iband, jband], self.gvels[iqpt, jband, iband])*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ + np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) kappa_nondiag = 2.0*kappa_nondiag*HPLANCK/temperature @@ -2354,10 +2359,11 @@ def setup_harmonic_properties(self, smearing_value = 0.00005): for ikpt, kpt in enumerate(self.k_points): self.freqs[ikpt], self.eigvecs[ikpt] = self.get_frequency_at_q(kpt) + #self.gvels[ikpt] = self.get_group_velocity_wigner(kpt) self.gvels[ikpt] = self.get_group_velocity(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) #self.gvels[ikpt] = self.get_group_velocity_finite_difference(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) - #self.symmetrize_group_velocities_over_star() + self.symmetrize_group_velocities_over_star() #self.check_group_velocities() #self.check_frequencies() self.setup_smearings(smearing_value) @@ -2392,8 +2398,12 @@ def check_group_velocities(self): """ - tot_r = self.symmetry.QE_s[:,:,:self.symmetry.QE_nsymq] - nsym = np.shape(tot_r)[-1] + cell = get_spglib_cell(self.dyn) + tot_r = spglib.get_symmetry_dataset(cell)['rotations'] + nsym = len(tot_r) + for i in range(nsym): + tot_r[i] = tot_r[i] + nsym = len(tot_r) print('Total number of symmetry operations: ', nsym) @@ -2405,28 +2415,22 @@ def check_group_velocities(self): rotation = np.zeros((3,3)) found_rot = False for ir in range(0, nsym): - q2 = np.dot(tot_r[:,:,ir], q0) - q3 = np.dot(np.dot(-1.0*np.eye(3), tot_r[:,:,ir]), q0) + q2 = np.dot(tot_r[ir,:,:], q0) if(same_vector(q2, q1, np.eye(3))): - print('Pure rotation') - rotation = np.dot(np.linalg.inv(self.unitcell.T), np.dot(tot_r[:,:,ir], self.unitcell.T)) - found_rot = True - break - elif(same_vector(q3, q1, np.eye(3))): - print('Inverse and rotation') - rotation = np.dot(np.linalg.inv(self.unitcell.T), np.dot(np.dot(-1.0*np.eye(3),tot_r[:,:,ir]), self.unitcell.T)) + #print('Pure rotation') + rotation = np.dot(self.reciprocal_lattice.T, np.dot(tot_r[ir,:,:], np.linalg.inv(self.reciprocal_lattice.T))) found_rot = True break if(found_rot): check_if_rotation(rotation, self.symmetry.threshold) if(self.off_diag): - vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + vel1 = np.einsum('ij,klj->kli', np.linalg.inv(rotation), self.gvels[self.qstar_list[istar][jqpt]]) else: - vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[self.qstar_list[istar][jqpt]]) - if(np.any(vel0 - vel1) > 1.0e-4): + vel1 = np.einsum('ij,kj->ki', np.linalg.inv(rotation), self.gvels[self.qstar_list[istar][jqpt]]) + if(np.any(np.abs(vel0 - vel1) > 1.0e-4)): print('Velocities in star not agreeing!', istar, jqpt) - print(vel0) - print(vel1) + print(vel0[np.where(vel0 - vel1 > 1.0e-4)]) + print(vel1[np.where(vel0 - vel1 > 1.0e-4)]) else: print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) @@ -2447,17 +2451,18 @@ def get_group_velocity(self, q, freqs, eigvecs): is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) if(self.off_diag): - tmp_gvel = np.zeros((self.nband, self.nband, 3)) - gvel = np.zeros((self.nband, self.nband, 3)) + tmp_gvel = np.zeros((self.nband, self.nband, 3), dtype = complex) + gvel = np.zeros((self.nband, self.nband, 3), dtype = complex) else: - tmp_gvel = np.zeros((self.nband, 3)) - gvel = np.zeros((self.nband, 3)) + tmp_gvel = np.zeros((self.nband, 3), dtype = complex) + gvel = np.zeros((self.nband, 3), dtype = complex) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat degs = check_degeneracy(freqs, np.amax(freqs)*1.0e-8) + ddynmat = [] for icart in range(3): auxfc = np.zeros_like(self.force_constants[0], dtype = complex) for iuc in range(len(self.force_constants)): @@ -2466,45 +2471,141 @@ def get_group_velocity(self, q, freqs, eigvecs): ruc = -self.ruc[iuc] + uc_positions[iat] - uc_positions[jat] phase = np.dot(ruc, q)*2.0*np.pi auxfc[3*iat:3*(iat+1),3*jat:3*(jat+1)] += complex(0.0,1.0)*ruc[icart]*self.force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) - ddynmat = auxfc * mm_inv_mat + ddynmat.append(auxfc * mm_inv_mat) if(icart == 0): dirdynmat = ddynmat.copy() - rot_eigvecs = np.zeros_like(eigvecs) - for ideg, deg in enumerate(degs): - rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) - if(is_q_gamma): - if(self.off_diag): - for iband in range(self.nband): - if(freqs[iband] != 0.0): - for jband in range(self.nband): - if(freqs[jband] != 0.0): - #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - else: - for iband in range(self.nband): - if(freqs[iband] != 0.0): - #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - else: - if(self.off_diag): - for iband in range(self.nband): - for jband in range(self.nband): - #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - else: - for iband in range(self.nband): - #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + ddynmat = np.array(ddynmat) + tmp_gvel = [] + freqs_matrix = np.einsum('i,j->ij', freqs, freqs) + freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) + for icart in range(3): + tmp_gvel.append(np.dot(eigvecs.conj(), np.dot(ddynmat[icart], eigvecs.T)).real/2.0*np.sqrt(freqs_matrix)) + tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) + #rot_eigvecs = np.zeros_like(eigvecs) + #for ideg, deg in enumerate(degs): + # rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) + #if(is_q_gamma): + # if(self.off_diag): + # for iband in range(self.nband): + # if(freqs[iband] != 0.0): + # for jband in range(self.nband): + # if(freqs[jband] != 0.0): + # tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # #tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # else: + # for iband in range(self.nband): + # if(freqs[iband] != 0.0): + # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + #else: + # if(self.off_diag): + # for iband in range(self.nband): + # for jband in range(self.nband): + # tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # #tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # else: + # for iband in range(self.nband): + # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + + if(not self.off_diag): + tmp_gvel = np.einsum('iij->ij', tmp_gvel) + else: + for i in range(3): + gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 if(np.any(np.isnan(tmp_gvel))): raise RuntimeError('NaN is group velocity matrix!') gvel = self.symmetrize_group_velocity(tmp_gvel, q) - + + return gvel + ################################################################################################################################# + + def get_group_velocity_wigner(self, q): + + """ + + Calculate group velocities following definition in "Wigner formulation of thermal transport in solids" Simoncelli et al. + + """ + + + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) + if(self.off_diag): + tmp_gvel = np.zeros((self.nband, self.nband, 3)) + gvel = np.zeros((self.nband, self.nband, 3)) + else: + tmp_gvel = np.zeros((self.nband, 3)) + gvel = np.zeros((self.nband, 3)) + + dynmat0 = self.get_dynamical_matrix(q) + eigvals, eigvecs = np.linalg.eigh(dynmat0) + + degs = check_degeneracy(eigvals, np.amax(eigvals)*1.0e-8) + ddynmat = [] + for icart in range(3): + dq = np.zeros_like(q) + dq[icart] = np.sum(np.linalg.norm(self.reciprocal_lattice[:,icart]))/1000.0 + q1 = q + dq + dynmat1 = self.get_dynamical_matrix(q1) + sqrt_dynmat1 = self.sqrt_dynamical_matrix(is_q_gamma, dynmat1) + q2 = q - dq + dynmat2 = self.get_dynamical_matrix(q2) + sqrt_dynmat2 = self.sqrt_dynamical_matrix(is_q_gamma, dynmat2) + ddynmat.append((sqrt_dynmat1 - sqrt_dynmat2)/np.linalg.norm(dq)/2.0/2.0/np.pi) + if(icart == 0): + dirdynmat = ddynmat[0].copy() + + tmp_gvel = [] + for icart in range(3): + tmp_gvel.append(np.dot(eigvecs.conj().T, np.dot(ddynmat[icart], eigvecs))) + tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) + + if(not self.off_diag): + tmp_gvel = np.einsum('iij->ij', tmp_gvel).real + else: + gvel = np.zeros_like(tmp_gvel) + for i in range(3): + gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 + gvel = self.symmetrize_group_velocity(tmp_gvel, q) + + return gvel ################################################################################################################################## + def sqrt_dynamical_matrix(self, is_q_gamma, dm): + + """ + + Taken from the Phono3py code! + + """ + + + eigvals, eigvecs = np.linalg.eigh(dm) + eigvals = eigvals.real + freqs = np.sign(eigvals) * np.sqrt(abs(eigvals)) + + if is_q_gamma: + freqs[0] = 0.0 + eigvecs[:, 0] = 0.0 + freqs[1] = 0.0 + eigvecs[:, 1] = 0.0 + freqs[2] = 0.0 + eigvecs[:, 2] = 0.0 + if any(f < 0.0 for f in freqs): + print("ERROR: negative frequency=", freqs) + + omega_matrix = np.sqrt(np.matmul(eigvecs.T.conj(), np.matmul(dm, eigvecs))) + omega_matrix = np.diag(np.diag(omega_matrix)) + sqrt_dm = np.matmul(eigvecs, np.matmul(omega_matrix, eigvecs.T.conj())) + + return sqrt_dm + + ################################################################################################################### + def get_group_velocity_finite_difference(self, q, freqs, eigvecs): """ @@ -2526,6 +2627,7 @@ def get_group_velocity_finite_difference(self, q, freqs, eigvecs): degs = check_degeneracy(freqs, np.amax(freqs)*1.0e-8) + ddynmat = [] for icart in range(3): dynmat0 = self.get_dynamical_matrix(q) dq = np.zeros_like(q) @@ -2534,37 +2636,47 @@ def get_group_velocity_finite_difference(self, q, freqs, eigvecs): dynmat1 = self.get_dynamical_matrix(q1) q2 = q - dq dynmat2 = self.get_dynamical_matrix(q2) - ddynmat = (dynmat1 - dynmat2)/np.linalg.norm(dq)/2.0/2.0/np.pi + ddynmat.append((dynmat1 - dynmat2)/np.linalg.norm(dq)/2.0/2.0/np.pi) if(icart == 0): - dirdynmat = ddynmat.copy() - rot_eigvecs = np.zeros_like(eigvecs) - for ideg, deg in enumerate(degs): - rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) - if(is_q_gamma): - if(self.off_diag): - for iband in range(self.nband): - if(freqs[iband] != 0.0): - for jband in range(self.nband): - if(freqs[jband] != 0.0): - #gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - else: - for iband in range(self.nband): - if(freqs[iband] != 0.0): - # tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - else: - if(self.off_diag): - for iband in range(self.nband): - for jband in range(self.nband): - #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - else: - for iband in range(self.nband): - #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + dirdynmat = ddynmat[0].copy() + ddynmat = np.array(ddynmat) + tmp_gvel = [] + freqs_matrix = np.einsum('i,j->ij', freqs, freqs) + freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) + for icart in range(3): + tmp_gvel.append(np.dot(eigvecs.conj(), np.dot(ddynmat[icart], eigvecs.T))/2.0*np.sqrt(freqs_matrix)) + tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) + #rot_eigvecs = np.zeros_like(eigvecs) + #for ideg, deg in enumerate(degs): + # rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) + #if(is_q_gamma): + # if(self.off_diag): + # for iband in range(self.nband): + # if(freqs[iband] != 0.0): + # for jband in range(self.nband): + # if(freqs[jband] != 0.0): + # #gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # else: + # for iband in range(self.nband): + # if(freqs[iband] != 0.0): + # # tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + #else: + # if(self.off_diag): + # for iband in range(self.nband): + # for jband in range(self.nband): + # #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) + # else: + # for iband in range(self.nband): + # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) + # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - gvel = self.symmetrize_group_velocity(tmp_gvel, q) + if(not self.off_diag): + tmp_gvel = np.einsum('iij->ij', tmp_gvel).real + + gvel = self.symmetrize_group_velocity(tmp_gvel, q) return gvel @@ -2581,13 +2693,17 @@ def symmetrize_group_velocity(self, vels, q): """ + if(self.off_diag): + for i in range(3): + vels[:,:,i] = (vels[:,:,i] + vels[:,:,i].T)/2.0 + qred = np.dot(q, np.linalg.inv(self.reciprocal_lattice)) qred -= np.rint(qred) cell = get_spglib_cell(self.dyn) tot_r = spglib.get_symmetry_dataset(cell)['rotations'] nsym = len(tot_r) for i in range(nsym): - tot_r[i] = tot_r[i].T + tot_r[i] = tot_r[i] rot_q = [] for i in range(nsym): @@ -2607,6 +2723,10 @@ def symmetrize_group_velocity(self, vels, q): else: rot_vels = vels.copy() + if(self.off_diag): + for i in range(3): + rot_vels[:,:,i] = (rot_vels[:,:,i] + rot_vels[:,:,i].T)/2.0 + return rot_vels ################################################################################################################################# @@ -2623,7 +2743,7 @@ def symmetrize_group_velocities_over_star(self): tot_r = spglib.get_symmetry_dataset(cell)['rotations'] nsym = len(tot_r) for i in range(nsym): - tot_r[i] = tot_r[i].T + tot_r[i] = tot_r[i] for istar in range(self.nirrkpt): @@ -2652,7 +2772,7 @@ def symmetrize_group_velocities_over_star(self): else: print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) if(len(rotations) != len(self.qstar_list[istar])): - print('Number of rotations does not match number of q points in the star: ', len(rotations) + 1, len(self.qstar_list[istar])) + print('Number of rotations does not match number of q points in the star: ', len(rotations), len(self.qstar_list[istar])) vel0 = vel0/float(len(rotations)) for jqpt in range(len(self.qstar_list[istar])): if(self.off_diag): @@ -2847,9 +2967,9 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) for icart in range(3): if(self.off_diag): - outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart]*SSCHA_TO_MS, '.12e')) + outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart].real*SSCHA_TO_MS, '.12e')) else: - outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart]*SSCHA_TO_MS, '.12e')) + outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart].real*SSCHA_TO_MS, '.12e')) outfile.write(3*' ' + format(self.sigmas[ikpt][iband]*SSCHA_TO_THZ, '.12e')) outfile.write('\n') From 81df50e3a6d2d1169a457ef1da528eb22f8afcda Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 10 Oct 2022 14:05:35 +0200 Subject: [PATCH 039/204] Cleaning ... --- cellconstructor/ThermalConductivity.py | 745 +++++++++++-------------- 1 file changed, 318 insertions(+), 427 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index f01bbc0c..70682f54 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -148,6 +148,8 @@ def check_if_rotation(rot, thr): print('Transpose and inverse of rotation matrix are not the same! Should not happen!') print(np.linalg.inv(rot)) print(rot.T) + print(rot) + raise RuntimeError('Not a rotation!') except: print('Something wrong when trying to calculate inverse of rotation matrix. Possibly singular!') print(rot) @@ -307,16 +309,13 @@ def get_kpoints_in_path(path, nkpts, kprim): def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): - #print(psutil.virtual_memory().percent) rprim = tensor3.unitcell_structure.unit_cell.copy() irprim = np.linalg.inv(rprim) rsup = tensor3.supercell_structure.unit_cell.copy() irsup = np.linalg.inv(rsup) - #print(rprim) positions = tensor3.unitcell_structure.coords.copy() xpos = np.dot(positions, np.linalg.inv(rprim)) natom = len(xpos) - #print(xpos) symbols = tensor3.unitcell_structure.atoms unique_symbols = np.unique(symbols) unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 @@ -325,7 +324,6 @@ def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): for jat in range(len(unique_symbols)): if(symbols[iat] == unique_symbols[jat]): numbers[iat] = unique_numbers[jat] - #print(numbers) cell = (rprim, xpos, numbers) if(tensor3.n_R == tensor3.n_sup**2): print('ForceTensor most likely not previously centered! ') @@ -345,19 +343,8 @@ def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): hfc3 = np.asfortranarray(hfc3) hr_vector3 = np.asfortranarray(hr_vector3) hr_vector2 = np.asfortranarray(hr_vector2) - #print(np.shape(hfc3), np.shape(hr_vector3), np.shape(hr_vector2), tensor3.n_R, natom) - #print(tot_trip) maxtrip = thermal_conductivity.third_order_cond_centering.number_of_triplets(hfc3, hr_vector2, hr_vector3, tot_trip, natom, tensor3.n_R) - # print(maxtrip, tensor3.n_R, natom) - # print(psutil.virtual_memory().percent) - # print(np.shape(hfc3), np.shape(hr_vector2), np.shape(hr_vector3)) - # print('This should occupy: ' + format((np.prod(np.shape(hfc3)) + np.prod(np.shape(hr_vector2)) + np.prod(np.shape(hr_vector3)))*8.0/1024.0**3, '.3f') + ' GB of memory!') fc3, r_vector2, r_vector3, ntrip = thermal_conductivity.third_order_cond_centering.distribute_fc3(hfc3, hr_vector2, hr_vector3, tot_trip, maxtrip, natom, tensor3.n_R) - #ntrip = 0 - #for i in range(len(r_vector2)): - # if(i != 0 and np.linalg.norm(r_vector2[i]) < 1.0e-6 and np.linalg.norm(r_vector3[i]) < 1.0e-6): - # ntrip = i - # break print('Final number of triplets: ', ntrip) tensor3.n_R = ntrip tensor3.r_vector2 = r_vector2[0:ntrip,:].T @@ -572,26 +559,6 @@ def stupid_centering_fc3_v2(tensor3, Far = 1): index0 = 0 else: index0 = np.argsort(n_R)[-1] - print(n_R) - for ir in range(natom**3): - print(len(multiplicity[ir])) - #for ir in range(tensor3.n_R): - # print(multiplicity[:][ir]) - #print('Largest number of triplets for: ', index0) - #for itrip in range(len(new_r_vector2)): - # if(itrip != index0): - # print('Checking triplet: ', itrip) - # for i in range(len(new_r_vector2[index0])): - # found = False - # for j in range(len(new_r_vector2[itrip])): - # if(np.linalg.norm(new_r_vector2[itrip][j] - new_r_vector2[index0][i]) < 1.0e-6): - # found = True - # break - # if(not found): - # print('For triplet: ', itrip) - # print('Could not find: ', np.dot(new_r_vector2[index0][i], irprim)) - #raise RuntimeError('Number of lattice vectors for all triplets is not the same! ') - print(n_R) r_vector2 = new_r_vector2[index0].copy() r_vector3 = new_r_vector3[index0].copy() extra = 0 @@ -623,43 +590,6 @@ def stupid_centering_fc3_v2(tensor3, Far = 1): fc3[iuc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat] = new_tensor[index][juc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat]#*multiplicity[index][juc]/multiplicity[index][iuc] found = True break - #if(not found): - #print('Still can not find! Very weird') - # match1 = False - # match2 = False - # for ir in range(tensor3.n_R): - # rvec2 = tensor3.r_vector2[:,ir].copy() - # xvec2 = np.dot(rvec2, irsup) - # rvec3 = tensor3.r_vector3[:,ir].copy() - # xvec3 = np.dot(rvec3, irsup) - # for i1 in range(-1,2): - # if(not match1): - # for j1 in range(-1,2): - # if(not match1): - # for k1 in range(-1,2): - # xvec21 = xvec2 + np.array([i1,j1,k1]) - # rvec21 = np.dot(xvec21, rsup) - # if(np.linalg.norm(rvec21 - r_vector2[iuc]) < 1.0e-6): - # match1 = True - # break - # for i1 in range(-1,2): - # if(not match2): - # for j1 in range(-1,2): - # if(not match2): - # for k1 in range(-1,2): - # xvec31 = xvec3 + np.array([i1,j1,k1]) - # rvec31 = np.dot(xvec31, rsup) - # if(np.linalg.norm(rvec31 - r_vector3[iuc]) < 1.0e-6): - # match2 = True - # break - # if(match1 and match2): - # print('Matched!', ir, index, float(iuc)/float(len(r_vector2))) - # break - # if(match1 and match2): - # fc3[iuc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat] = tensor3.tensor[ir][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat]/float(multiplicity[index][ir]) - # else: - # print(match1, match2) - # raise RuntimeError('Could not find triplet!') print('Final number of triplets: ', len(r_vector2)) tensor3.n_R = len(r_vector2) tensor3.r_vector2 = np.array(r_vector2).T @@ -718,6 +648,23 @@ def stupid_centering_fc3_v2(tensor3, Far = 1): return tensor3 +def find_q_mq_pairs(kpoints): + + pairs = [] + found = [False for x in range(len(kpoints))] + for iqpt in range(len(kpoints)): + if(not found[iqpt]): + kpt = kpoints[iqpt] + for jqpt in range(len(kpoints)): + if(not found[jqpt] and not found[iqpt] and iqpt != jqpt): + kpt1 = kpoints[jqpt] + if(np.linalg.norm(kpt + kpt1) < 1.0e-6): + found[iqpt] = True + found[jqpt] = True + pairs.append([iqpt, jqpt]) + break + return pairs + def apply_permutation_symmetry(tensor3, pairs): for ipair in range(len(pairs)): if(pairs[ipair][0] != pairs[ipair][1]): @@ -726,20 +673,24 @@ def apply_permutation_symmetry(tensor3, pairs): for i in range(3*tensor3.nat): for iat in range(tensor3.nat): for jat in range(tensor3.nat): - #if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] = (tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] + tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T)/2.0 tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)] = tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)].T +def find_minimum_vector(v1, m): + rv1 = np.dot(v1, np.linalg.inv(m)) + rv2 = rv1 - np.rint(rv1) + return np.dot(rv2, m) + def rotate_eigenvectors(ddm, eigs): - _, eigvecs = np.linalg.eigh(np.dot(eigs.conj(), np.dot(ddm, eigs.T))) - rot_eigvecs = np.dot(eigvecs.T, eigs) + _, eigvecs = np.linalg.eigh(np.dot(eigs.conj().T, np.dot(ddm, eigs))) + rot_eigvecs = np.dot(eigvecs, eigs) return rot_eigvecs class ThermalConductivity: - def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', off_diag = False): + def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', group_velocity_mode = 'analytical', off_diag = False): """ @@ -749,15 +700,17 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari Necesary: - dyn : SSCHA dynamical matrix object - tensor3 : SSCHA 3rd order force constants + dyn : SSCHA dynamical matrix object + tensor3 : SSCHA 3rd order force constants - kpoint_grid : Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and + kpoint_grid : Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and the calculation of the phonon lifetimes. Default is 2. - smearing_scale : Scale for the smearing constant if adaptive smearing is used. Default value is 2.0 - smearing_type : Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). - cp_mode : Flag determining how phonon occupation factors are calculated (quantum/classical), default is quantum - off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. + scattering_grid : Grid size for the Brilouin integration in determining the phonon lifetimes. Default is to be the same as kpoint_grid + smearing_scale : Scale for the smearing constant if adaptive smearing is used. Default value is 2.0 + smearing_type : Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). + cp_mode : Flag determining how phonon occupation factors are calculated (quantum/classical), default is quantum + group_velocity_mode : How to calculate group velocities. 'analytical', 'finite_difference', 'wigner' + off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. """ @@ -776,11 +729,11 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.scattering_grid = self.kpoint_grid.copy() self.smearing_scale = smearing_scale self.unitcell = self.dyn.structure.unit_cell - print('Primitive cell: ') - print(self.unitcell) + #print('Primitive cell: ') + #print(self.unitcell) self.supercell = self.dyn.structure.generate_supercell(dyn.GetSupercell()).unit_cell - print('Supercell: ') - print(self.supercell) + #print('Supercell: ') + #print(self.supercell) self.smearing_type = smearing_type self.cp_mode = cp_mode self.off_diag = off_diag @@ -789,22 +742,27 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.reciprocal_lattice = np.linalg.inv(self.unitcell).T self.force_constants = [] self.ruc = [] - self.set_force_constants(dyn) # uncentered force constants ! + self.set_force_constants(dyn) self.nuc = len(self.ruc) self.symmetry = symmetries.QE_Symmetry(self.dyn.structure) + self.symmetry.SetupQPoint() + self.nsyms = self.symmetry.QE_nsym + syms = np.array(self.symmetry.QE_s.copy()).transpose(2,0,1) - self.set_kpoints_alternative() + self.set_kpoints_spglib() self.nband = 3*self.dyn.structure.N_atoms self.delta_omega = 0.0 + self.group_velocity_mode = group_velocity_mode self.freqs = np.zeros((self.nkpt, self.nband)) self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) else: - self.gvels = np.zeros((self.nkpt, self.nband, 3), dtype = complex) + self.gvels = np.zeros((self.nkpt, self.nband, 3)) + self.ddms = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) self.sigmas = np.zeros_like(self.freqs) # Lifetimes, frequency shifts, lineshapes, heat_capacities and thermal conductivities are stored in dictionaries # Dictionary key is the temperature at which property is calculated on @@ -851,13 +809,13 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): irrqpts = [hf.create_group('irreducible_kpoint' + str(i + 1)) for i in range(self.nirrkpt)] for ikpt in range(self.nirrkpt): irrqpts[ikpt].create_dataset('k_point', data = self.irr_k_points[ikpt]) - irrqpts[ikpt].create_dataset('star', data = self.qstar_list[ikpt]) - irrqpts[ikpt].create_dataset('frequency', data = self.freqs[self.qstar_list[ikpt][0]]) + irrqpts[ikpt].create_dataset('star', data = self.qstar[ikpt]) + irrqpts[ikpt].create_dataset('frequency', data = self.freqs[self.qstar[ikpt][0]]) eigvecs = [] gvels = [] sigmas = [] for istar in range(len(self.qstar[ikpt])): - jkpt = self.qstar_list[ikpt][istar] + jkpt = self.qstar[ikpt][istar] eigvecs.append(self.eigvecs[jkpt]) gvels.append(self.gvels[jkpt]) sigmas.append(self.sigmas[jkpt]) @@ -872,13 +830,13 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): keys.append(key) if(len(keys) > 0): for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('lifetimes_' + keys[ik], data = self.lifetimes[keys[ik]][self.qstar_list[ikpt][0]]) + irrqpts[ikpt].create_dataset('lifetimes_' + keys[ik], data = self.lifetimes[keys[ik]][self.qstar[ikpt][0]]) keys = [] for key in self.freqs_shifts.keys(): keys.append(key) if(len(keys) > 0): for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('freqs_shifts_' + keys[ik], data = self.freqs_shifts[keys[ik]][self.qstar_list[ikpt][0]]) + irrqpts[ikpt].create_dataset('freqs_shifts_' + keys[ik], data = self.freqs_shifts[keys[ik]][self.qstar[ikpt][0]]) keys = [] for key in self.lineshapes.keys(): keys.append(key) @@ -890,13 +848,13 @@ def save(self, filename = 'sscha_thermal_conductivity.h5'): else: if(ne != np.shape(self.lineshapes[keys[ik]])[-1]): raise RuntimeError('Number of energy/frequency points not same for all temperatures!') - irrqpts[ikpt].create_dataset('lineshapes_' + keys[ik], data = self.lineshapes[keys[ik]][self.qstar_list[ikpt][0]]) + irrqpts[ikpt].create_dataset('lineshapes_' + keys[ik], data = self.lineshapes[keys[ik]][self.qstar[ikpt][0]]) keys = [] for key in self.cp.keys(): keys.append(key) if(len(keys) > 0): for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('cp_' + keys[ik], data = self.cp[keys[ik]][self.qstar_list[ikpt][0]]) + irrqpts[ikpt].create_dataset('cp_' + keys[ik], data = self.cp[keys[ik]][self.qstar[ikpt][0]]) keys = [] for key in self.kappa.keys(): keys.append(key) @@ -937,22 +895,22 @@ def load(self, filename): self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): - self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) + self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) else: - self.gvels = np.zeros((self.nkpt, self.nband, 3), dtype = complex) + self.gvels = np.zeros((self.nkpt, self.nband, 3)) self.sigmas = np.zeros_like(self.freqs) self.irr_k_points = [] - self.qstar_list = [] + self.qstar = [] for i in range(self.nirrkpt): self.irr_k_points.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('k_point'))) - self.qstar_list.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('star'))) + self.qstar.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('star'))) eigvecs = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('eigenvectors')) gvels = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('group_velocities')) sigmas = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('sigmas')) - for istar in range(len(self.qstar_list[-1])): - jkpt = self.qstar_list[-1][istar] + for istar in range(len(self.qstar[-1])): + jkpt = self.qstar[-1][istar] self.freqs[jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('frequency')) self.eigvecs[jkpt] = eigvecs[istar] self.gvels[jkpt] = gvels[istar] @@ -988,107 +946,52 @@ def load(self, filename): temp = key.split('_')[-1] self.kappa[temp] = np.array(hf.get(key)) -############################################################################################################################################ - - def set_kpoints(self): - - """ - Sets up the k point grid. Finds irreducible points and their map to the full Brillouin zone. - - """ - - time0 = time.time() - time_init = time.time() - self.k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.kpoint_grid) - self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) - self.scattering_k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.scattering_grid) - self.scattering_qpoints = np.dot(np.array(self.scattering_k_points), self.unitcell.T) - print('Generated grid in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - self.irr_k_points = self.symmetry.SelectIrreducibleQ(self.k_points) - print('Generated irreducible grid in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - self.qstar = [] - for iqpt in range(len(self.irr_k_points)): - self.qstar.append(self.symmetry.GetQStar(self.irr_k_points[iqpt])) - print('Generated q stars in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - self.qstar_list = [] - for iqstar in range(len(self.qstar)): - curr_qstar_list = [] - for iqpt in range(len(self.qstar[iqstar])): - found = False - for jqpt in range(len(self.k_points)): - if(same_vector(np.array(self.qstar[iqstar][iqpt]), np.array(self.k_points[jqpt]), self.reciprocal_lattice)): - found = True - curr_qstar_list.append(jqpt) - break - if(not found): - print('Could not find this q point in self.k_points!') - self.qstar_list.append(curr_qstar_list) - print('Generated g star list in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - #print(self.qstar_list) - - self.nkpt = np.shape(self.k_points)[0] - self.scattering_nkpt = np.shape(self.scattering_k_points)[0] - self.nirrkpt = np.shape(self.irr_k_points)[0] - self.weights = np.zeros(self.nirrkpt, dtype = int) - for iqpt in range(self.nirrkpt): - self.weights[iqpt] = len(self.qstar_list[iqpt]) - print('Found ' + str(self.nkpt) + ' q points in the grid!') - print('Found ' + str(self.nirrkpt) + ' q points in irreducible grid!') - print('Setting up q points took ' + format(time.time() - time_init, '.2e') + ' seconds!') - - ################################################################################################################################## - - def set_kpoints_alternative(self): + ################################################################################################################################### - """ - Faster version of setting up of k points. Still too slow. Should try fortran version. + def set_kpoints_spglib(self): - """ + cell = get_spglib_cell(self.dyn) + mapping, grid = spglib.get_ir_reciprocal_mesh(self.kpoint_grid, cell, is_shift=[0, 0, 0]) + rotations = spglib.get_symmetry_dataset(cell)['rotations'] - time0 = time.time() - time_init = time.time() + self.irr_k_points = np.array(grid[np.unique(mapping)] / np.array(self.kpoint_grid, dtype=float)) + self.irr_k_points = np.dot(self.irr_k_points, self.reciprocal_lattice) + self.qpoints = grid / np.array(self.kpoint_grid, dtype=float) + self.k_points = np.dot(self.qpoints, self.reciprocal_lattice) + self.rotations = np.array(rotations).copy() - aux_kgrid = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.kpoint_grid) - print('Generated grid in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - self.irr_k_points = self.symmetry.SelectIrreducibleQ(aux_kgrid) #self.symmetry.SetupQStar(self.k_points) - print('Generated irreducible grid in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() self.qstar = [] - for iqpt in range(len(self.irr_k_points)): - self.qstar.append(self.symmetry.GetQStar(self.irr_k_points[iqpt])) - print('Generated q star in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - k_points = [] - self.qstar_list = [] - qpt_index = 0 - for iqpt in range(len(self.qstar)): - curr_qstar_list = [] - for jqpt in range(len(self.qstar[iqpt])): - curr_qstar_list.append(qpt_index) - qpt_index += 1 - k_points.append(self.qstar[iqpt][jqpt]) - self.qstar_list.append(curr_qstar_list) - print('Generated q star list in ' + format(time.time() - time0, '.2e') + ' seconds.') - time0 = time.time() - self.k_points = np.array(k_points) - self.qpoints = np.dot(np.array(self.k_points), self.unitcell.T) - self.scattering_k_points = CC.symmetries.GetQGrid(self.dyn.structure.unit_cell, self.scattering_grid) - self.scattering_qpoints = np.dot(np.array(self.scattering_k_points), self.unitcell.T) + for i in np.unique(mapping): + curr_star = [] + for j, j_map in enumerate(mapping): + if(i == j_map): + curr_star.append(j) + self.qstar.append(curr_star) + + self.little_group = [[] for x in range(len(self.k_points))] + for istar in self.qstar: + for iqpt in istar: + curr_little_group = [] + for irot, rot in enumerate(rotations): + qpt1 = np.dot(rot.T, self.qpoints[iqpt]) + diffq = qpt1 - self.qpoints[iqpt] + diffq -= np.rint(diffq) + if(np.linalg.norm(diffq) < 1.0e-6): + curr_little_group.append(irot) + self.little_group[iqpt].extend(curr_little_group) + if(len(istar) * len(self.little_group[iqpt]) != len(rotations)): + raise RuntimeError('Number of symmetry operation wrong!', len(istar), len(self.little_group[iqpt]), len(rotations)) + + mapping1, grid1 = spglib.get_ir_reciprocal_mesh(self.scattering_grid, cell, is_shift=[0, 0, 0]) + self.scattering_qpoints = np.array(grid1 / np.array(self.scattering_grid, dtype=float)) + self.scattering_k_points = np.dot(self.scattering_qpoints, self.reciprocal_lattice) self.nkpt = np.shape(self.k_points)[0] self.scattering_nkpt = np.shape(self.scattering_k_points)[0] self.nirrkpt = np.shape(self.irr_k_points)[0] self.weights = np.zeros(self.nirrkpt, dtype = int) for iqpt in range(self.nirrkpt): - self.weights[iqpt] = len(self.qstar_list[iqpt]) + self.weights[iqpt] = len(self.qstar[iqpt]) self.set_up_scattering_grids = False - print('Found ' + str(self.nkpt) + ' q points in the grid!') - print('Found ' + str(self.nirrkpt) + ' q points in irreducible grid!') - print('Setting up q points took ' + format(time.time() - time_init, '.2e') + ' seconds!') ################################################################################################################################### @@ -1111,7 +1014,7 @@ def set_scattering_grids(self): curr_grid = [] curr_w = [] rot_q = [] - q1 = self.qpoints[self.qstar_list[iqpt][0]] + q1 = self.qpoints[self.qstar[iqpt][0]] for isym in range(nsym): if(same_vector(q1, np.dot(tot_r[isym], q1), np.eye(3))): rot_q.append(tot_r[isym]) @@ -1123,15 +1026,12 @@ def set_scattering_grids(self): pair_found = False for i in range(len(curr_grid)): if(not pair_found): - #if(same_vector(q3, curr_grid[i][0], self.reciprocal_lattice) and same_vector(q2, curr_grid[i][1], self.reciprocal_lattice)): if(same_vector(q3, curr_grid[i][0], np.eye(3)) and same_vector(q2, curr_grid[i][1], np.eye(3))): pair_found = True curr_w[i] += 1 break else: for isym in range(curr_nsym): - #if(same_vector(q3, np.dot(rot_q[isym], curr_grid[i][0]), self.reciprocal_lattice) and\ - # same_vector(q2, np.dot(rot_q[isym], curr_grid[i][1]), self.reciprocal_lattice)): if(same_vector(q3, np.dot(rot_q[isym], curr_grid[i][0]), np.eye(3)) and\ same_vector(q2, np.dot(rot_q[isym], curr_grid[i][1]), np.eye(3))): pair_found = True @@ -1176,16 +1076,14 @@ def set_scattering_grids_fortran(self): tot_t = spglib.get_symmetry_dataset(cell)['translations'] rotations = [] for i in range(len(tot_r)): - # print(tot_t[i]) if(np.all(tot_t[i] < 1.0e-6)): rotations.append(tot_r[i]) rotations = np.asfortranarray(rotations) nsym = len(rotations) - # print(nsym) irrgrid = [] for iqpt in range(self.nirrkpt): - irrgrid.append(self.qpoints[self.qstar_list[iqpt][0]]) + irrgrid.append(self.qpoints[self.qstar[iqpt][0]]) irrgrid = np.asfortranarray(irrgrid) (scattering_grid, scattering_weight) = thermal_conductivity.scattering_grids.get_scattering_q_grid(rotations, irrgrid, self.qpoints, \ self.scattering_qpoints, self.nirrkpt, self.nkpt, self.scattering_nkpt, nsym) @@ -1223,9 +1121,9 @@ def set_scattering_grids_simple(self): self.scattering_weights = [] start_time = time.time() for iqpt in range(self.nirrkpt): - self.scattering_grids.append(self.k_points) - self.scattering_weights.append(np.ones(self.nkpt)) - if(sum(self.scattering_weights[-1]) != self.nkpt): + self.scattering_grids.append(self.scattering_k_points) + self.scattering_weights.append(np.ones(self.scattering_nkpt)) + if(sum(self.scattering_weights[-1]) != self.scattering_nkpt): print('WARNING! Sum of weights for ' + str(iqpt + 1) + '. q point does not match total number of q points!') print(sum(self.scattering_weights[-1]), self.nkpt) print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') @@ -1270,9 +1168,12 @@ def setup_smearings(self, smearing_value = 0.00005): """ if(self.smearing_type == 'adaptive'): - if(np.all(self.freqs == 0.0) or np.all(self.gvels.real == 0.0)): + if(np.all(self.freqs == 0.0) or np.all(self.gvels == 0.0)): print('Harmonic properties are all zero! Try reruning the harmonic calculation! ') - return 1 + if(np.all(self.freqs == 0.0)): + print('It is frequencies!') + if(np.all(self.gvels == 0.0)): + print('It is group velocities!') delta_q = 0.0 for i in range(len(self.reciprocal_lattice)): if(np.linalg.norm(self.reciprocal_lattice[i]/float(self.kpoint_grid[i])) > delta_q): @@ -1285,11 +1186,10 @@ def setup_smearings(self, smearing_value = 0.00005): self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale else: self.sigmas[ikpt][iband] = 0.0 - min_smear = np.amax(self.sigmas)/100.0 #np.amin(self.sigmas[self.sigmas > 1.0e-6]) - #print(min_smear) + min_smear = np.amax(self.sigmas)/100.0 # We can't have scattering zero for modes with 0 group velocity, so we set it to this number! self.sigmas[self.sigmas < min_smear] = min_smear #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 - if(self.smearing_type == 'constant'): + elif(self.smearing_type == 'constant'): self.sigmas[:,:] = smearing_value ################################################################################################################################## @@ -1360,9 +1260,9 @@ def calc_spectral_kappa_gk_diag(self, temperature): integrands = (integrands_plus + integrands_minus) if(self.off_diag): - spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels.conj(), self.gvels,integrands).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 else: - spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels.conj(), self.gvels,integrands).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 spec_kappa = spec_kappa*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*self.delta_omega print('Total kappa is: ', np.diag(tot_kappa)) @@ -1390,9 +1290,9 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): for iband in range(self.nband): weight = gaussian(energies[ien], self.freqs[iqpt, iband], self.sigmas[iqpt, iband]) if(self.off_diag): - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband].conj(), self.gvels[iqpt,iband, iband]).real + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband], self.gvels[iqpt,iband, iband]) else: - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband].conj(), self.gvels[iqpt,iband]).real + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband], self.gvels[iqpt,iband]) spec_kappa = spec_kappa*SSCHA_TO_MS**2/self.volume/float(self.nkpt)*1.0e30#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*delta_en print('Total kappa is: ', np.diag(tot_kappa)) @@ -1401,7 +1301,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### - def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ + def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', offdiag_mode = 'wigner', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): """ @@ -1412,6 +1312,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = mode : Method to calculate lattice thermal conductivity: SRTA : Single relaxation time approximation (NOT selfconsistent solution) solution of Boltzmann transport equation GK : Green-Kubo method (npj Computational Materials volume 7, Article number: 57 (2021)) + offdiag_mode : How to treat the off diagonal terms. 'gk' - Isaeva et al. Nat. Comm., 'wigner' - Simoncelli et al. Nature gauss_smearing : If true will use the Gaussian function to satisfy energy conservation insted of Lorentzian lf_method : In case of mode == SRTA, specifies the way to calculate lifetimes. See method in get_lifetimes function. write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. @@ -1469,8 +1370,10 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write('\n') self.kappa[tc_key] = kappa else: - #kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag_isaeva(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) - kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) + if(offdiag_mode == 'isaeva'): + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag_isaeva(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) + elif(offdiag_mode == 'wigner'): + kappa_diag, kappa_nondiag = self.calculate_kappa_srta_offdiag(temperatures[itemp], ne, write_lifetimes, gauss_smearing = gauss_smearing, isotope_scattering=isotope_scattering, isotopes=isotopes, lf_method = lf_method) kappa_diag = kappa_diag/self.volume/float(self.nkpt)*1.0e30 kappa_nondiag = kappa_nondiag/self.volume/float(self.nkpt)*1.0e30 kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) @@ -1553,7 +1456,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 #integrals = (integrate.simps(integrands_plus, axis = len(integrands_plus.shape) - 1) + integrate.simps(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1585,7 +1488,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi - kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1595,11 +1498,15 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga if(self.freqs[iqpt, iband] != 0.0): for jband in range(iband, self.nband): if(iband != jband and self.freqs[iqpt, jband] != 0.0): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + else: + vel_fact = 1.0 integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ - np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real\ + np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband])/vel_fact**2\ *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag += kappa_nondiag.T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1629,7 +1536,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) for ikpt in range(self.nirrkpt): - jkpt = self.qstar_list[ikpt][0] + jkpt = self.qstar[ikpt][0] print('Calculating lineshapes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') curr_ls = self.get_diag_dynamic_bubble(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], energies, temperature) print('Normalization of lineshapes (should be 0.5): ') @@ -1643,8 +1550,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') self.write_lineshape(filename, curr_ls, jkpt, energies) - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lineshapes[jqpt,:] = curr_ls*2.0 print('Shape of lineshapes', lineshapes.shape) self.lineshapes[ls_key] = lineshapes @@ -1653,18 +1560,15 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) if(not self.set_up_scattering_grids): - #if(gauss_smearing): - # self.set_scattering_grids_simple() - #else: self.set_scattering_grids_fortran() irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): - irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + irrqgrid[:,ikpt] = self.k_points[self.qstar[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) - sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] + sigmas[ikpt] = self.sigmas[self.qstar[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) scattering_grids = [] @@ -1692,9 +1596,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): - jkpt = self.qstar_list[ikpt][0] - #print('Normalization of lineshapes (should be 0.5): ') - #print(np.sum(curr_ls[ikpt], axis=1)*energies[0]) + jkpt = self.qstar[ikpt][0] if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): for iband in range(self.nband): if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): @@ -1703,8 +1605,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') self.write_lineshape(filename, curr_ls[ikpt], jkpt, energies) - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 print('Shape of lineshapes', lineshapes.shape) self.lineshapes[ls_key] = lineshapes @@ -1737,18 +1639,15 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros_like(lifetimes) if(not self.set_up_scattering_grids): - #if(gauss_smearing): - # self.set_scattering_grids_simple() - #else: self.set_scattering_grids_fortran() irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): - irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + irrqgrid[:,ikpt] = self.k_points[self.qstar[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) - sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] + sigmas[ikpt] = self.sigmas[self.qstar[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) scattering_grids = [] @@ -1776,8 +1675,8 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 shifts[jqpt,:] = selfengs[ikpt].real @@ -1971,7 +1870,7 @@ def get_heat_capacity(self, temperature): ################################################################################################################################## - def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smearing = False, isotope_scattering = True, isotopes = None, lf_method = 'fortran-LA'): + def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smearing = False, isotope_scattering = False, isotopes = None, lf_method = 'fortran-LA'): """ Calculate lattice thermal conductivity using single relaxation time approximation at temperature. Calculates only including diagonal term. @@ -1994,7 +1893,7 @@ def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smea if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real + kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels.real,self.gvels.real,self.lifetimes[lf_key]) kappa += kappa.T kappa = kappa/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 @@ -2020,19 +1919,21 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: self.get_heat_capacity(temperature) - scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) -# scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) + scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*1.0e12*2.0*np.pi)/2.0 if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real kappa_nondiag = np.zeros_like(kappa_diag) for iqpt in range(self.nkpt): - for iband in range(self.nband - 1): + for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): - for jband in range(iband + 1, self.nband): - if(self.freqs[iqpt, jband] != 0.0): - vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + for jband in range(self.nband): + if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] != self.freqs[iqpt, iband] and iband != jband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al a1 = (self.freqs[iqpt, jband] + self.freqs[iqpt, iband])/4.0 a2 = self.cp[cp_key][iqpt, iband]/self.freqs[iqpt, iband] + self.cp[cp_key][iqpt, jband]/self.freqs[iqpt, jband] a3 = 0.5*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband]) @@ -2069,7 +1970,6 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, ne, write_lifetimes, else: self.get_heat_capacity(temperature) scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) -# scatt_rates = 1.0/(self.lifetimes[lf_key]*SSCHA_TO_THZ*2.0*np.pi*1.0e12) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real @@ -2081,15 +1981,19 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, ne, write_lifetimes, kappa_nondiag = np.zeros_like(kappa_diag) for iqpt in range(self.nkpt): - for iband in range(self.nband - 1): + for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): - for jband in range(iband + 1, self.nband): - if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] - self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): + if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] - self.freqs[iqpt, iband] != 0.0 and iband != jband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + else: + vel_fact = 1.0 kappa_nondiag += self.freqs[iqpt, iband]*self.freqs[iqpt, jband]*(pops[iqpt, iband] - pops[iqpt, jband])/(self.freqs[iqpt, jband] - self.freqs[iqpt, iband])*\ - np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ + np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real/vel_fact**2*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) - kappa_nondiag = 2.0*kappa_nondiag*HPLANCK/temperature + kappa_nondiag = kappa_nondiag*HPLANCK/temperature kappa_diag += kappa_diag.T kappa_nondiag += kappa_nondiag.T @@ -2113,6 +2017,11 @@ def get_frequencies(self): def get_scattering_rates_isotope(self, isotopes = None): + """ + + Still not implemented! + + """ start_time = time.time() self.scattering_rates_isotope = np.zeros((self.nkpt, self.nband)) @@ -2140,10 +2049,10 @@ def get_scattering_rates_isotope(self, isotopes = None): print('G factor of ' + self.dyn.structure.atoms[i] + ' is ' + format(g_factor[i], '.4f') + '.') for ikpt in range(self.nirrkpt): - jkpt = self.qstar_list[ikpt][0] + jkpt = self.qstar[ikpt][0] curr_scatt_rate = self.get_scattering_rates_isotope_at_q(jkpt, g_factor, av_mass) - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] self.scattering_rates_isotope[jqpt,:] = curr_scatt_rate self.got_scattering_rates_isotopes = True @@ -2159,7 +2068,7 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): for jband in range(self.nband): factor = 0.0 for iat in range(len(self.dyn.structure.atoms)): - factor += g_factor[iat]*np.dot(self.eigvecs[iqpt,iband,3*iat:3*(iat+1)].conj(), self.eigvecs[jqpt,jband,3*iat:3*(iat+1)])**2 + factor += g_factor[iat]*np.dot(self.eigvecs[iqpt,3*iat:3*(iat+1),iband].conj(), self.eigvecs[jqpt,3*iat:3*(iat+1),jband])**2 scatt_rate[iband] += gaussian(self.freqs[iqpt,iband], self.freqs[jqpt,jband], self.sigmas[iqpt, iband])*factor if(np.isnan(scatt_rate[iband])): print(gaussian(self.freqs[iqpt,iband], self.freqs[jqpt,jband], self.sigmas[iqpt, iband]), factor) @@ -2205,7 +2114,7 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) for ikpt in range(self.nirrkpt): - jkpt = self.qstar_list[ikpt][0] + jkpt = self.qstar[ikpt][0] print('Calculating lifetimes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') curr_freq, curr_shift, curr_lw = self.get_lifetimes_at_q(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], temperature) curr_lf = np.divide(np.ones_like(curr_lw, dtype=float), curr_lw, out=np.zeros_like(curr_lw), where=curr_lw!=0.0)/2.0 @@ -2214,8 +2123,8 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): curr_lf[iband] = 0.0 curr_shift[iband] = 0.0 - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lifetimes[jqpt,:] = curr_lf shifts[jqpt,:] = curr_shift print('Shape of lifetimes', lifetimes.shape) @@ -2227,7 +2136,7 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) for ikpt in range(self.nirrkpt): - jkpt = self.qstar_list[ikpt][0] + jkpt = self.qstar[ikpt][0] print('Calculating lifetimes: ' + format(float(ikpt)/float(self.nirrkpt)*100.0, '.2f') + ' %') selfnrg = np.diag(self.get_just_diag_dynamic_bubble(self.kpoint_grid, self.k_points[jkpt], self.sigmas[jkpt], self.freqs[jkpt], temperature)) curr_lf = -1.0*np.divide(selfnrg.imag, self.freqs[jkpt], out=np.zeros_like(self.freqs[jkpt]), where=self.freqs[jkpt]!=0.0)/2.0 @@ -2237,8 +2146,8 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): curr_lf[iband] = 0.0 curr_shifts[iband] = 0.0 - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lifetimes[jqpt,:] = np.divide(np.ones_like(curr_lf, dtype=float), curr_lf, out=np.zeros_like(curr_lf), where=curr_lf!=0.0)/2.0 shifts[jqpt,:] = curr_shifts print('Shape of lifetimes', lifetimes.shape) @@ -2252,9 +2161,9 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter scattering_events = np.zeros(self.nirrkpt, dtype=int) sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): - irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + irrqgrid[:,ikpt] = self.k_points[self.qstar[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) - sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] + sigmas[ikpt] = self.sigmas[self.qstar[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) @@ -2284,8 +2193,8 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter num_scattering_events) for ikpt in range(self.nirrkpt): - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 shifts[jqpt, :] = selfengs[ikpt].real self.lifetimes[lf_key] = lifetimes/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) @@ -2298,9 +2207,9 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter scattering_events = np.zeros(self.nirrkpt, dtype=int) sigmas = np.zeros((self.nirrkpt, self.nband)) for ikpt in range(self.nirrkpt): - irrqgrid[:,ikpt] = self.k_points[self.qstar_list[ikpt][0]].copy() + irrqgrid[:,ikpt] = self.k_points[self.qstar[ikpt][0]].copy() scattering_events[ikpt] = len(self.scattering_grids[ikpt]) - sigmas[ikpt] = self.sigmas[self.qstar_list[ikpt][0]] + sigmas[ikpt] = self.sigmas[self.qstar[ikpt][0]] irrqgrid = np.asfortranarray(irrqgrid) lifetimes = np.zeros((self.nkpt, self.nband)) shifts = np.zeros((self.nkpt, self.nband)) @@ -2329,8 +2238,8 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter gauss_smearing, classical, self.nirrkpt, self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] lifetimes[jqpt,:] = -1.0*np.divide(np.ones_like(selfengs[ikpt].imag, dtype=float), selfengs[ikpt].imag, out=np.zeros_like(selfengs[ikpt].imag), where=selfengs[ikpt].imag!=0.0)/2.0 shifts[jqpt,:] = selfengs[ikpt].real @@ -2359,18 +2268,37 @@ def setup_harmonic_properties(self, smearing_value = 0.00005): for ikpt, kpt in enumerate(self.k_points): self.freqs[ikpt], self.eigvecs[ikpt] = self.get_frequency_at_q(kpt) - #self.gvels[ikpt] = self.get_group_velocity_wigner(kpt) - self.gvels[ikpt] = self.get_group_velocity(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) - #self.gvels[ikpt] = self.get_group_velocity_finite_difference(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) + if(self.group_velocity_mode == 'wigner'): + self.gvels[ikpt], self.ddms[ikpt] = self.get_group_velocity_wigner(kpt) + elif(self.group_velocity_mode == 'analytical'): + self.gvels[ikpt], self.ddms[ikpt] = self.get_group_velocity(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) + elif(self.group_velocity_mode == 'finite_difference'): + self.gvels[ikpt], self.ddms[ikpt] = self.get_group_velocity_finite_difference(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) + else: + raise RuntimeError('Can not recognize the group_velocity_mode!') + self.gvels[ikpt] = self.symmetrize_group_velocity_by_index(self.gvels[ikpt], ikpt) self.symmetrize_group_velocities_over_star() - #self.check_group_velocities() - #self.check_frequencies() + self.check_group_velocities() + self.check_frequencies() self.setup_smearings(smearing_value) print('Harmonic properties are set up!') ################################################################################################################################# + def symmetrize_eigenvectors(self): + + pairs = find_q_mq_pairs(self.k_points) + print('Found ' + str(len(pairs)) + ' q, -q pairs!') + for ipair in range(len(pairs)): + if(np.any(np.abs(self.eigvecs[pairs[0]] - self.eigvecs[pairs[1]].conj()) > 1.0e-6)): + print('Eigenvector symmetry not satisfied!') + self.eigvecs[pairs[0]] = (self.eigvecs[pairs[0]] + self.eigvecs[pairs[1]].conj())/2.0 + self.eigvecs[pairs[1]] = self.eigvecs[pairs[0]].conj() + + + ################################################################################################################################# + def check_frequencies(self): """ @@ -2380,9 +2308,9 @@ def check_frequencies(self): """ for istar in range(self.nirrkpt): - freqs0 = self.freqs[self.qstar_list[istar][0]] - for jqpt in range(1, len(self.qstar_list[istar])): - freqs1 = self.freqs[self.qstar_list[istar][jqpt]] + freqs0 = self.freqs[self.qstar[istar][0]] + for jqpt in range(1, len(self.qstar[istar])): + freqs1 = self.freqs[self.qstar[istar][jqpt]] if(np.any(np.abs(freqs0 - freqs1) > 1.0e-6*np.amax(freqs0))): print('WARNING! Frequencies in star not the same. ', istar, jqpt) print(freqs0) @@ -2394,45 +2322,36 @@ def check_group_velocities(self): """ - Check whether the group velocities for wave vectors in q star are all the same. + Check if group velocities in q star are all related by symmetry operation ! """ - cell = get_spglib_cell(self.dyn) - tot_r = spglib.get_symmetry_dataset(cell)['rotations'] - nsym = len(tot_r) - for i in range(nsym): - tot_r[i] = tot_r[i] - nsym = len(tot_r) - print('Total number of symmetry operations: ', nsym) - - - for istar in range(self.nirrkpt): - q0 = np.dot(self.k_points[self.qstar_list[istar][0]], np.linalg.inv(self.reciprocal_lattice)) - vel0 = self.gvels[self.qstar_list[istar][0]].copy() - for jqpt in range(1, len(self.qstar_list[istar])): - q1 = np.dot(self.k_points[self.qstar_list[istar][jqpt]], np.linalg.inv(self.reciprocal_lattice)) - rotation = np.zeros((3,3)) + for istar in self.qstar: + q0 = self.qpoints[istar[0]] + vel0 = self.gvels[istar[0]].copy() + for iqpt in istar: found_rot = False - for ir in range(0, nsym): - q2 = np.dot(tot_r[ir,:,:], q0) - if(same_vector(q2, q1, np.eye(3))): - #print('Pure rotation') - rotation = np.dot(self.reciprocal_lattice.T, np.dot(tot_r[ir,:,:], np.linalg.inv(self.reciprocal_lattice.T))) + q1 = self.qpoints[iqpt] + for irot in range(len(self.rotations)): + q2 = np.dot(self.rotations[irot].T, q1) + diffq = q2 - q0 + diffq -= np.rint(diffq) + if(np.linalg.norm(diffq) < 1.0e-6): + #rotation = np.dot(self.reciprocal_lattice.T, np.dot(np.linalg.inv(self.rotations[irot].T), np.linalg.inv(self.reciprocal_lattice.T))) + rotation = np.dot(self.reciprocal_lattice.T, np.dot(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) found_rot = True break if(found_rot): - check_if_rotation(rotation, self.symmetry.threshold) if(self.off_diag): - vel1 = np.einsum('ij,klj->kli', np.linalg.inv(rotation), self.gvels[self.qstar_list[istar][jqpt]]) + vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[iqpt]) else: - vel1 = np.einsum('ij,kj->ki', np.linalg.inv(rotation), self.gvels[self.qstar_list[istar][jqpt]]) + vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[iqpt]) if(np.any(np.abs(vel0 - vel1) > 1.0e-4)): - print('Velocities in star not agreeing!', istar, jqpt) + print('Velocities in star not agreeing!', istar, iqpt) print(vel0[np.where(vel0 - vel1 > 1.0e-4)]) print(vel1[np.where(vel0 - vel1 > 1.0e-4)]) else: - print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) + print('Could not find rotation between vectors in star! ', self.qpoints[iqpt], self.qpoints[istar[0]]) ################################################################################################################################# @@ -2451,10 +2370,8 @@ def get_group_velocity(self, q, freqs, eigvecs): is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, q) if(self.off_diag): - tmp_gvel = np.zeros((self.nband, self.nband, 3), dtype = complex) gvel = np.zeros((self.nband, self.nband, 3), dtype = complex) else: - tmp_gvel = np.zeros((self.nband, 3), dtype = complex) gvel = np.zeros((self.nband, 3), dtype = complex) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) @@ -2479,47 +2396,19 @@ def get_group_velocity(self, q, freqs, eigvecs): freqs_matrix = np.einsum('i,j->ij', freqs, freqs) freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) for icart in range(3): - tmp_gvel.append(np.dot(eigvecs.conj(), np.dot(ddynmat[icart], eigvecs.T)).real/2.0*np.sqrt(freqs_matrix)) + tmp_gvel.append(np.dot(eigvecs.T.conj(), np.dot(ddynmat[icart], eigvecs))/2.0*np.sqrt(freqs_matrix)) tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) - #rot_eigvecs = np.zeros_like(eigvecs) - #for ideg, deg in enumerate(degs): - # rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) - #if(is_q_gamma): - # if(self.off_diag): - # for iband in range(self.nband): - # if(freqs[iband] != 0.0): - # for jband in range(self.nband): - # if(freqs[jband] != 0.0): - # tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # #tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # else: - # for iband in range(self.nband): - # if(freqs[iband] != 0.0): - # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - #else: - # if(self.off_diag): - # for iband in range(self.nband): - # for jband in range(self.nband): - # tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # #tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # else: - # for iband in range(self.nband): - # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) if(not self.off_diag): - tmp_gvel = np.einsum('iij->ij', tmp_gvel) + gvel = np.einsum('iij->ij', tmp_gvel) else: for i in range(3): gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 if(np.any(np.isnan(tmp_gvel))): raise RuntimeError('NaN is group velocity matrix!') - gvel = self.symmetrize_group_velocity(tmp_gvel, q) - - return gvel + return gvel, ddynmat.transpose((1,2,0)) ################################################################################################################################# @@ -2547,7 +2436,7 @@ def get_group_velocity_wigner(self, q): ddynmat = [] for icart in range(3): dq = np.zeros_like(q) - dq[icart] = np.sum(np.linalg.norm(self.reciprocal_lattice[:,icart]))/1000.0 + dq[icart] = np.sum(np.amax(np.linalg.norm(self.reciprocal_lattice[:,:], axis = 1)))/100000.0 q1 = q + dq dynmat1 = self.get_dynamical_matrix(q1) sqrt_dynmat1 = self.sqrt_dynamical_matrix(is_q_gamma, dynmat1) @@ -2558,37 +2447,32 @@ def get_group_velocity_wigner(self, q): if(icart == 0): dirdynmat = ddynmat[0].copy() + #rot_eigvecs = np.zeros_like(eigvecs) + #for ideg, deg in enumerate(degs): + # rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) tmp_gvel = [] for icart in range(3): - tmp_gvel.append(np.dot(eigvecs.conj().T, np.dot(ddynmat[icart], eigvecs))) + tmp_gvel.append(np.dot(eigvecs.T.conj(), np.dot(ddynmat[icart], eigvecs))) tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) if(not self.off_diag): - tmp_gvel = np.einsum('iij->ij', tmp_gvel).real + gvel = np.einsum('iij->ij', tmp_gvel).real else: gvel = np.zeros_like(tmp_gvel) for i in range(3): gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 - gvel = self.symmetrize_group_velocity(tmp_gvel, q) - return gvel + return gvel, np.array(ddynmat).transpose((1,2,0)) ################################################################################################################################## - def sqrt_dynamical_matrix(self, is_q_gamma, dm): - - """ - - Taken from the Phono3py code! - - """ - + def sqrt_dynamical_matrix(self, flag_gamma, dm): eigvals, eigvecs = np.linalg.eigh(dm) eigvals = eigvals.real freqs = np.sign(eigvals) * np.sqrt(abs(eigvals)) - if is_q_gamma: + if flag_gamma: freqs[0] = 0.0 eigvecs[:, 0] = 0.0 freqs[1] = 0.0 @@ -2604,7 +2488,7 @@ def sqrt_dynamical_matrix(self, is_q_gamma, dm): return sqrt_dm - ################################################################################################################### + ################################################################################################################################## def get_group_velocity_finite_difference(self, q, freqs, eigvecs): @@ -2644,41 +2528,17 @@ def get_group_velocity_finite_difference(self, q, freqs, eigvecs): freqs_matrix = np.einsum('i,j->ij', freqs, freqs) freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) for icart in range(3): - tmp_gvel.append(np.dot(eigvecs.conj(), np.dot(ddynmat[icart], eigvecs.T))/2.0*np.sqrt(freqs_matrix)) + tmp_gvel.append(np.dot(eigvecs.T.conj(), np.dot(ddynmat[icart], eigvecs))/2.0*np.sqrt(freqs_matrix)) tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) - #rot_eigvecs = np.zeros_like(eigvecs) - #for ideg, deg in enumerate(degs): - # rot_eigvecs[deg, :] = rotate_eigenvectors(dirdynmat, eigvecs[deg, :]) - #if(is_q_gamma): - # if(self.off_diag): - # for iband in range(self.nband): - # if(freqs[iband] != 0.0): - # for jband in range(self.nband): - # if(freqs[jband] != 0.0): - # #gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # else: - # for iband in range(self.nband): - # if(freqs[iband] != 0.0): - # # tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - #else: - # if(self.off_diag): - # for iband in range(self.nband): - # for jband in range(self.nband): - # #tmp_gvel[iband,jband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # tmp_gvel[iband,jband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[jband])).real/2.0/np.sqrt(freqs[jband]*freqs[iband])#*np.sqrt(EV_TO_J/AU) - # else: - # for iband in range(self.nband): - # #tmp_gvel[iband][icart] = np.dot(eigvecs[iband].conj(), np.dot(ddynmat, eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) - # tmp_gvel[iband][icart] = np.dot(rot_eigvecs[iband].conj(), np.dot(ddynmat, rot_eigvecs[iband])).real/2.0/freqs[iband]#*np.sqrt(EV_TO_J/AU) if(not self.off_diag): - tmp_gvel = np.einsum('iij->ij', tmp_gvel).real + gvel = np.einsum('iij->ij', tmp_gvel).real + else: + gvel = np.zeros_like(tmp_gvel) + for i in range(3): + gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 - gvel = self.symmetrize_group_velocity(tmp_gvel, q) - - return gvel + return gvel, np.array(ddynmat).transpose((1,2,0)) ################################################################################################################################## @@ -2702,19 +2562,21 @@ def symmetrize_group_velocity(self, vels, q): cell = get_spglib_cell(self.dyn) tot_r = spglib.get_symmetry_dataset(cell)['rotations'] nsym = len(tot_r) - for i in range(nsym): - tot_r[i] = tot_r[i] + for i in range(self.nsyms): + tot_r[i] = tot_r[i].T rot_q = [] for i in range(nsym): diff = qred- np.dot(tot_r[i,:,:], qred) - if (np.all(np.abs(diff) < self.symmetry.threshold)): + diff -= np.rint(diff) + if (np.all(np.abs(diff) < 1.0e-6)): rot_q.append(tot_r[i,:,:]) if(len(rot_q) > 0): + print('Size of the small group is: ', len(rot_q)) rot_vels = np.zeros_like(vels) for i in range(len(rot_q)): + #rot_q[i] = np.dot(self.reciprocal_lattice.T, np.dot(np.linalg.inv(rot_q[i]), np.linalg.inv(self.reciprocal_lattice.T))) rot_q[i] = np.dot(self.reciprocal_lattice.T, np.dot(rot_q[i], np.linalg.inv(self.reciprocal_lattice.T))) - check_if_rotation(rot_q[i], self.symmetry.threshold) if(self.off_diag): rot_vels += np.einsum('ij,klj->kli', rot_q[i], vels) else: @@ -2729,56 +2591,81 @@ def symmetrize_group_velocity(self, vels, q): return rot_vels - ################################################################################################################################# + ################################################################################################################################ - def symmetrize_group_velocities_over_star(self): + def symmetrize_group_velocity_by_index(self, vels, iqpt): """ - Symmetrize group velocities over q star. + Symmetrize group velocites according to the little group of wave vector. + + vels : group velocities at this wave vector + iqpt : index of the wave vector in question! """ - cell = get_spglib_cell(self.dyn) - tot_r = spglib.get_symmetry_dataset(cell)['rotations'] - nsym = len(tot_r) - for i in range(nsym): - tot_r[i] = tot_r[i] + rot_q = self.rotations[self.little_group[iqpt]].copy() + if(self.off_diag): + for i in range(3): + vels[:,:,i] = (vels[:,:,i] + vels[:,:,i].T)/2.0 - for istar in range(self.nirrkpt): - q0 = np.dot(self.k_points[self.qstar_list[istar][0]], np.linalg.inv(self.reciprocal_lattice)) - vel0 = self.gvels[self.qstar_list[istar][0]].copy() + rot_vels = np.zeros_like(vels) + for rot in rot_q: + #rot_c = np.dot(self.reciprocal_lattice.T, np.dot(np.linalg.inv(rot.T), np.linalg.inv(self.reciprocal_lattice.T))) + rot_c = np.dot(self.reciprocal_lattice.T, np.dot(rot.T, np.linalg.inv(self.reciprocal_lattice.T))) + if(self.off_diag): + rot_vels += np.einsum('ij,klj->kli', rot_c, vels) + else: + rot_vels += np.einsum('ij,kj->ki', rot_c, vels) + rot_vels /= float(len(rot_q)) + + if(self.off_diag): + for i in range(3): + rot_vels[:,:,i] = (rot_vels[:,:,i] + rot_vels[:,:,i].T)/2.0 + + return rot_vels + + ################################################################################################################################# + + def symmetrize_group_velocities_over_star(self): + + for istar in self.qstar: + q0 = self.qpoints[istar[0]] + vel0 = np.zeros_like(self.gvels[istar[0]]) rotations = [] - rotations.append(np.eye(3)) - for jqpt in range(1, len(self.qstar_list[istar])): - q1 = np.dot(self.k_points[self.qstar_list[istar][jqpt]], np.linalg.inv(self.reciprocal_lattice)) - rotation = np.zeros((3,3)) + for iqpt in istar: found_rot = False - for ir in range(0, nsym): - q2 = np.dot(tot_r[ir,:,:], q1) - if(same_vector(q2, q0, np.eye(3))): - rotation = np.dot(self.reciprocal_lattice.T, np.dot(tot_r[ir,:,:], np.linalg.inv(self.reciprocal_lattice.T))) + q1 = self.qpoints[iqpt] + for irot in range(len(self.rotations)): + q2 = np.dot(self.rotations[irot].T, q1) + diffq = q2 - q0 + diffq -= np.rint(diffq) + if(np.linalg.norm(diffq) < 1.0e-6): + #rotation = np.dot(self.reciprocal_lattice.T, np.dot(np.linalg.inv(self.rotations[irot].T), np.linalg.inv(self.reciprocal_lattice.T))) + rotation = np.dot(self.reciprocal_lattice.T, np.dot(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) found_rot = True break if(found_rot): - check_if_rotation(rotation, self.symmetry.threshold) rotations.append(rotation) if(self.off_diag): - vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + vel1 = np.einsum('ij,klj->kli', rotation, self.gvels[iqpt]) else: - vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[self.qstar_list[istar][jqpt]]) + vel1 = np.einsum('ij,kj->ki', rotation, self.gvels[iqpt]) vel0 += vel1 else: - print('Could not find rotation between vectors in star! ', istar, jqpt, self.qstar_list[istar][0], self.qstar_list[istar][jqpt]) - if(len(rotations) != len(self.qstar_list[istar])): - print('Number of rotations does not match number of q points in the star: ', len(rotations), len(self.qstar_list[istar])) + print('Could not find rotation between vectors in star! ') + print(q0) + print(q1) + if(len(rotations) != len(istar)): + print('Number of rotations does not match number of q points in the star: ', len(rotations), len(istar)) vel0 = vel0/float(len(rotations)) - for jqpt in range(len(self.qstar_list[istar])): + for irot, jqpt in enumerate(istar): if(self.off_diag): - self.gvels[self.qstar_list[istar][jqpt]] = np.einsum('ij,klj->kli', np.linalg.inv(rotations[jqpt]), vel0) + self.gvels[jqpt] = np.einsum('ij,klj->kli', np.linalg.inv(rotations[irot]), vel0) else: - self.gvels[self.qstar_list[istar][jqpt]] = np.einsum('ij,kj->ki', np.linalg.inv(rotations[jqpt]), vel0) + self.gvels[jqpt] = np.einsum('ij,kj->ki', np.linalg.inv(rotations[irot]), vel0) + ################################################################################################################################# @@ -2807,7 +2694,7 @@ def get_frequency_at_q(self, q): else: w_q = np.sqrt(w2_q) - return w_q, pols_q.T + return w_q, pols_q ################################################################################################################################### @@ -2822,22 +2709,16 @@ def get_dynamical_matrix(self, q): """ uc_positions = self.dyn.structure.coords.copy() + for ruc in uc_positions: + ruc = find_minimum_vector(ruc, self.unitcell) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat dynmat = np.zeros_like(self.force_constants[0], dtype = complex) - #phases = np.einsum('ij,j->i', self.ruc, q)*2.0*np.pi - #exponents = np.exp(1j*phases) - #dynmat = np.einsum('ijk,i->jk', self.force_constants, exponents) * mm_inv_mat - #for iat in range(len(uc_positions)): - # for jat in range(len(uc_positions)): - # if(iat != jat): - # extra_phase = np.dot(uc_positions[iat] - uc_positions[jat], q)*2.0*np.pi - # dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] *= np.exp(1j*extra_phase) for ir in range(len(self.ruc)): for iat in range(len(uc_positions)): for jat in range(len(uc_positions)): - r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] + r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] phase = np.dot(r, q)*2.0*np.pi dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) dynmat = dynmat*mm_inv_mat @@ -2955,6 +2836,10 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti """ + if(self.group_velocity_mode == 'wigner'): + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + else: + vel_fact = 1.0 with open(filename, 'w+') as outfile: outfile.write('# ' + format('Frequencies (THz)', STR_FMT)) outfile.write(' ' + format('Group velocity x (m/s)', STR_FMT)) @@ -2967,9 +2852,9 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) for icart in range(3): if(self.off_diag): - outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart].real*SSCHA_TO_MS, '.12e')) + outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart]*SSCHA_TO_MS/vel_fact, '.12e')) else: - outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart].real*SSCHA_TO_MS, '.12e')) + outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart]*SSCHA_TO_MS, '.12e')) outfile.write(3*' ' + format(self.sigmas[ikpt][iband]*SSCHA_TO_THZ, '.12e')) outfile.write('\n') @@ -3485,6 +3370,12 @@ def compute_k(inputs): def calculate_mode_gruneisen(self): + """ + + Does not work! + + """ + uc_positions = self.dyn.structure.coords.copy() natom = len(uc_positions) masses = self.dyn.structure.get_masses_array() From 5eadb2042e5a31ea22b85795157e55b9d7b625df Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 12 Oct 2022 12:19:19 +0200 Subject: [PATCH 040/204] Cleaning ... --- cellconstructor/ThermalConductivity.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 70682f54..cdd35eaa 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1456,7 +1456,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 #integrals = (integrate.simps(integrands_plus, axis = len(integrands_plus.shape) - 1) + integrate.simps(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1488,7 +1488,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi - kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels, self.gvels, integrals, self.freqs, self.freqs)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1506,7 +1506,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ - np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband])/vel_fact**2\ + np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real/vel_fact**2\ *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag += kappa_nondiag.T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi From 71f53713d1634e248190a25d08413f915288eb7b Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Sun, 23 Oct 2022 11:10:05 +0200 Subject: [PATCH 041/204] Added no mode mixing calculation! --- FModules/get_lf.f90 | 341 ++++++++++++++++++++++++- FModules/third_order_cond.f90 | 241 ++++++++++++++++- cellconstructor/ThermalConductivity.py | 172 +++++++++---- 3 files changed, 682 insertions(+), 72 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index d5b49a28..c6ec50d4 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -108,7 +108,8 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ endif endif - call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + !call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + call calculate_spectral_function(energies, w_q, self_energy, nat, ne, lineshape) !call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) do i = 1, 3*nat @@ -129,6 +130,141 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ end subroutine calculate_lineshapes + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & + classical, energies, ne, nirrqpt, nat, nfc2, nfc3, n_events, lineshapes) + + use omp_lib + use third_order_cond + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, ne, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat), energies(ne) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt), smear_id(3*nat, nirrqpt) + real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian, classical + real(kind=DP), dimension(nirrqpt, 3*nat, 3*nat, ne), intent(out) :: lineshapes + + integer :: iqpt, i, ie, jqpt, tot_qpt, prev_events, nthreads, iband, jband + integer :: iband1, jband1 + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q +! real(kind=DP), dimension(ne, 3*nat) :: lineshape + real(kind=DP), allocatable, dimension(:,:,:) :: lineshape + complex(kind=DP), allocatable, dimension(:, :, :) :: self_energy, self_energy_cart +! complex(kind=DP), dimension(ne, 3*nat) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + + lineshapes(:,:,:,:) = 0.0_DP + kprim = transpose(inv(rprim)) + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif +! print*, 'Got parallelize' + + !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, self_energy_cart, d2_q, lineshape) & + !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & + !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, lineshapes, & + !$OMP irrqgrid, qgrid, weights, gaussian, classical) + do iqpt = 1, nirrqpt + allocate(lineshape(3*nat, 3*nat, ne), self_energy(ne, 3*nat, 3*nat), self_energy_cart(ne, 3*nat, 3*nat)) +! print*, iqpt + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + lineshape(:,:,:) = 0.0_DP + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) + do iband = 1, 3*nat + d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) + enddo + d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix!' + w_neg_freqs = .True. + endif +! print*, 'Interpolate frequency' + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo +! print*, 'Got grids' + call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & + nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & + energies, .not. parallelize, gaussian, classical, self_energy) + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in self_energy' + endif + + do iband = 1, 3*nat + do jband = 1, 3*nat + do iband1 = 1, 3*nat + do jband1 = 1, 3*nat + self_energy_cart(:, jband, iband) = & + self_energy(:,jband1,iband1)*pols_q(jband1,jband)*conjg(pols_q(iband1,iband)) + enddo + enddo + enddo + enddo + + call calculate_spectral_function_nomode_mixing(energies,d2_q,self_energy_cart,.true.,lineshape,masses,nat,ne) + + lineshapes(iqpt, :, :, :) = lineshape + else + lineshapes(iqpt,:,:,:) = 0.0_DP + endif + deallocate(lineshape, self_energy, self_energy_cart) + + enddo + !$OMP END PARALLEL DO + + + end subroutine calculate_lineshapes_nomode_mixing + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & @@ -244,7 +380,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ endif enddo else - selfengs(iqpt, i) = complex(0.0_DP, 0.0_DP) + selfengs(iqpt, :) = complex(0.0_DP, 0.0_DP) endif deallocate(self_energy) @@ -285,19 +421,34 @@ subroutine solve_selfconsistent_equation(ne, nband, w_q, self_energy, energies, enddo rew = dble(self_energy(ie0-1, iband)) + (curr_freq - energies(ie-1))*& (dble(self_energy(ie0,iband)) - dble(self_energy(ie0-1, iband)))/den - curr_freq = sqrt(w_q(iband)**2 + rew) - d_freq = curr_freq - prev_freq - enddo - omega(iband) = curr_freq - do ie = 2, ne - if(omega(iband) - energies(ie) < 0.0_DP .and. omega(iband) - energies(ie-1) > 0.0_DP) then - ie0 = ie + if(w_q(iband)**2 + rew > 0.0_DP) then + curr_freq = sqrt(w_q(iband)**2 + rew) + else + curr_freq = 0.0_DP EXIT endif + d_freq = curr_freq - prev_freq + if(curr_freq .ne. curr_freq) then + print*, 'NaN in selfconsistent procedure!' + print*, ie0, self_energy(ie0-1, iband), self_energy(ie0, iband), rew, w_q(iband)**2 + STOP + endif enddo - imw = aimag(self_energy(ie0-1, iband)) + (omega(iband) - energies(ie-1))*& - (aimag(self_energy(ie0,iband)) - aimag(self_energy(ie0-1, iband)))/den - tau(iband) = imw/2.0_DP/w_q(iband) + omega(iband) = curr_freq + if(curr_freq > 0.0_DP) then + do ie = 2, ne + if(omega(iband) - energies(ie) < 0.0_DP .and. omega(iband) - energies(ie-1) > 0.0_DP) then + ie0 = ie + EXIT + endif + enddo + imw = aimag(self_energy(ie0-1, iband)) + (omega(iband) - energies(ie-1))*& + (aimag(self_energy(ie0,iband)) - aimag(self_energy(ie0-1, iband)))/den + tau(iband) = imw/2.0_DP/w_q(iband) + else + omega(iband) = 0.0_DP + tau(iband) = 0.0_DP + endif else omega(iband) = 0.0_DP tau(iband) = 0.0_DP @@ -901,6 +1052,172 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 !$OMP END PARALLEL DO ! print*, 'Finished with self energy!' end subroutine calculate_self_energy_P + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2, nfc3, ne, qgrid, & + weights, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear, T, energies, & + parallelize, gaussian, classical, self_energy) + + use omp_lib + use third_order_cond + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nqpt, nat, nfc2, nfc3, ne + integer, intent(in) :: weights(nqpt) + real(kind=DP), intent(in) :: w_q(3*nat), qpt(3), qgrid(3,nqpt) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat), kprim(3,3) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2), pos(3, nat) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: masses(nat) + real(kind=DP), intent(in) :: smear(3*nat), energies(ne) + real(kind=DP), intent(in) :: T + complex(kind=DP), intent(in) :: pols_q(3*nat,3*nat) + logical, intent(in) :: is_q_gamma, parallelize, gaussian, classical + complex(kind=DP), intent(out) :: self_energy(ne, 3*nat, 3*nat) + + integer :: jqpt, iat, jat, kat, i, j, k, i1, j1, k1 + real(kind=DP), allocatable, dimension(:) :: kpt, mkpt, w2_k, w2_mk_mq, w_k, w_mk_mq + real(kind=DP), allocatable, dimension(:, :) :: freqs_array + real(kind=DP), allocatable, dimension(:, :, :) :: mass_array + complex(kind=DP), allocatable, dimension(:, :, :) :: selfnrg + complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols + logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg + logical, dimension(3) :: if_gammas + + + self_energy = complex(0.0_DP, 0.0_DP) + !$OMP PARALLEL DO IF(parallelize) & + !$OMP DEFAULT(NONE) & + !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & + !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & + !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & + !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & + !$OMP REDUCTION(+:self_energy) + do jqpt = 1, nqpt +! print*, jqpt + allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) + allocate(selfnrg(ne, 3*nat, 3*nat)) + allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) + allocate(kpt(3), mkpt(3)) + allocate(w2_k(3*nat), w2_mk_mq(3*nat), w_k(3*nat), w_mk_mq(3*nat)) + allocate(freqs_array(3*nat, 3)) + is_k_neg = .False. + is_mk_mq_neg = .False. + ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3(:,:,:) = complex(0.0_DP, 0.0_DP) + d3_pols(:,:,:) = complex(0.0_DP, 0.0_DP) + + kpt = qgrid(:, jqpt) + mkpt = -1.0_DP*qpt - kpt + call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + + call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) + call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) + if(any(w2_k < 0.0_DP) .and. .not. is_k_gamma) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_k_gamma + print*, kpt + print*, vec_dot_mat(qpt, inv(kprim)) + print*, vec_dot_mat(kpt, inv(kprim)) + print*, vec_dot_mat(mkpt, inv(kprim)) + print*, kprim + print*, w2_k + is_k_neg = .True. + endif + if(any(w2_mk_mq < 0.0_DP) .and. .not. is_mk_mq_gamma) then + print*, 'Negative eigenvalue of dynamical matrix! Exit!', is_mk_mq_gamma, 'mk_mq_gamma' + print*, mkpt + print*, vec_dot_mat(qpt, inv(kprim)) + print*, vec_dot_mat(kpt, inv(kprim)) + print*, vec_dot_mat(mkpt, inv(kprim)) + print*, kprim + print*, w2_mk_mq + is_mk_mq_neg = .True. + endif +! print*, 'Calculated frequencies! ' + if(.not. is_k_neg .and. .not. is_mk_mq_neg) then + w_k = sqrt(w2_k) + w_mk_mq = sqrt(w2_mk_mq) + + do iat = 1, nat + do i = 1, 3 + do jat = 1, nat + do j = 1, 3 + do kat = 1, nat + do k = 1, 3 + d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & + ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& + /sqrt(masses(iat)*masses(jat)*masses(kat)) + enddo + enddo + enddo + enddo + enddo + enddo +! d3 = ifc3*mass_array + +! do i = 1, 3*nat +! do j = 1, 3*nat +! do k = 1, 3*nat +! do i1 = 1, 3*nat +! do j1 = 1, 3*nat +! do k1 = 1, 3*nat +! d3_pols(k,j,i) = d3_pols(k,j,i) + & +! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) +! enddo +! enddo +! enddo +! enddo +! enddo +! enddo + + do i = 1, 3*nat + do i1 = 1, 3*nat + d3_pols(:,:,i) = d3_pols(:,:,i) + & + matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + enddo + enddo +! print*, 'Got d3pols' + + freqs_array(:, 1) = w_q + freqs_array(:, 2) = w_k + freqs_array(:, 3) = w_mk_mq + + if_gammas(1) = is_q_gamma + if_gammas(2) = is_k_gamma + if_gammas(3) = is_mk_mq_gamma + + selfnrg = complex(0.0_DP,0.0_DP) + call compute_full_dynamic_bubble_single(energies, smear, T, freqs_array, if_gammas, & + d3_pols, ne, 3*nat, gaussian, classical, selfnrg) +! print*, 'Got selfnrg!' + self_energy = self_energy + selfnrg*dble(weights(jqpt)) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN for jqpt', jqpt + endif + deallocate(ifc3, d3, d3_pols, selfnrg) + deallocate(pols_k, pols_mk_mq) + deallocate(kpt, mkpt) + deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) + deallocate(freqs_array) + else + deallocate(ifc3, d3, d3_pols, selfnrg) + deallocate(pols_k, pols_mk_mq) + deallocate(kpt, mkpt) + deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) + deallocate(freqs_array) + endif + enddo + !$OMP END PARALLEL DO +! print*, 'Finished with self energy!' + end subroutine calculate_self_energy_full !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index b2453633..55a1746e 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -17,13 +17,13 @@ subroutine interpol_v2(fc,R2,R3,pos,q2,q3,fc_interp,n_blocks,nat) COMPLEX(DP) :: phase, phase1 INTEGER :: i_block, a,b,c ! - fc_interp = cmplx(0._dp, 0._dp) + fc_interp = cmplx(0._dp, 0._dp, kind=DP) ! DO i_block = 1, n_blocks !arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) arg = tpi*(dot_product(q2, R2(:,i_block)) + dot_product(q3, R3(:,i_block))) - phase = exp(cmplx(0.0_DP, arg))!CMPLX(Cos(arg),Sin(arg), kind=DP) + phase = exp(cmplx(0.0_DP, arg,kind=DP))!CMPLX(Cos(arg),Sin(arg), kind=DP) fc_interp = fc_interp + phase*fc(i_block,:,:,:) ! @@ -69,6 +69,70 @@ subroutine interpol_v3(fc,pos,R2,R3,q1,q2,q3,fc_interp,n_blocks,nat) end subroutine interpol_v3 + subroutine compute_full_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, & + classical, bubble) + + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + ! + complex(kind=DP), dimension(ne,n_mod,n_mod),intent(OUT) :: bubble + ! + integer, intent(IN) :: ne + real(kind=DP), intent(IN) :: energies(ne) + real(kind=DP), intent(IN) :: sigma(n_mod) + real(kind=DP), intent(IN) :: T + real(kind=DP), intent(IN) :: freq(n_mod,3) + logical , intent(IN) :: gaussian + logical , intent(IN) :: is_gamma(3) + logical , intent(IN) :: classical + complex(kind=DP), dimension(n_mod,n_mod,n_mod), intent(IN) :: D3 + integer, intent(IN) :: n_mod + ! + real(kind=DP) :: q2(n_mod,3),q3(n_mod,3), curr_sigma + complex(kind=DP) :: Lambda_23(ne) + integer :: i, rho2, rho3, nu,mu + logical, parameter :: static_limit = .false. + + q2(:,1)=freq(:,2) + q3(:,1)=freq(:,3) + + q2(:,2)=0.0_dp + q3(:,2)=0.0_dp + do i = 1, n_mod + if (.not. is_gamma(2) .or. i > 3) q2(i,2)=1.0_dp/freq(i,2) + if (.not. is_gamma(3) .or. i > 3) q3(i,2)=1.0_dp/freq(i,3) + end do + + if(classical) then + call eq_freq(T, n_mod, freq(:,2), q2(:,3)) + call eq_freq(T, n_mod, freq(:,3), q3(:,3)) + else + call bose_freq(T, n_mod, freq(:,2), q2(:,3)) + call bose_freq(T, n_mod, freq(:,3), q3(:,3)) + endif + ! + bubble=cmplx(0.0_dp,0.0_dp,kind=DP) + ! + DO rho3=1,n_mod + DO rho2=1,n_mod + ! + curr_sigma = (sigma(rho2) + sigma(rho3))/2.0_DP + call Lambda_dynamic_single(ne,energies,curr_sigma,T,static_limit,q2(rho2,:),q3(rho3,:), gaussian, Lambda_23) + ! + DO nu = 1,n_mod + DO mu = 1,n_mod + bubble(:,mu,nu) = bubble(:,mu,nu) + & + CONJG(D3(mu,rho2,rho3))*Lambda_23*D3(nu,rho2,rho3) + END DO + END DO + ! + END DO + END DO + ! + end subroutine compute_full_dynamic_bubble_single + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3,ne,n_mod, gaussian, & classical, bubble) implicit none @@ -107,7 +171,7 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, call bose_freq(T, n_mod, freq(:,3), q3(:,3)) endif - bubble=CMPLX(0.0_dp,0.0_dp) + bubble=CMPLX(0.0_dp,0.0_dp, kind=DP) DO rho3=1,n_mod DO rho2=1,n_mod @@ -122,6 +186,14 @@ subroutine compute_diag_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, bubble(:,mu) = bubble(:,mu) + & CONJG(D3(mu,rho2,rho3))*Lambda_23*D3(mu,rho2,rho3) ! + if(any(bubble(:,mu) .ne. bubble(:,mu))) then + if(any(D3 .ne. D3)) then + print*, 'Its D3' + else + print*, 'Its Lambda_23' + endif + STOP + endif END DO ! END DO @@ -166,7 +238,7 @@ subroutine compute_perturb_selfnrg_single(sigma,T,freq,is_gamma,D3,n_mod, gaussi endif - selfnrg=CMPLX(0.0_dp,0.0_dp) + selfnrg=CMPLX(0.0_dp,0.0_dp,kind=DP) DO mu = 1,n_mod DO rho3=1,n_mod @@ -283,7 +355,13 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus re_p = 0.0_DP endif ctm_P = CMPLX(re_p, im_p, kind=DP) - + if(ctm_P .ne. ctm_P) then + print*, re_p, im_p + print*, bose_P, gaussian_function(energies(ie) - omega_P, sigma) + print*, energies(ie), omega_P, sigma + print*, '361' + STOP + endif im_p = bose_M *gaussian_function(energies(ie) + omega_M, sigma) im_p1 = bose_M *gaussian_function(energies(ie) - omega_M, sigma) if(energies(ie) + omega_M .ne. 0.0_DP) then @@ -297,6 +375,13 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus re_p1 = 0.0_DP endif ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) + if(ctm_M .ne. ctm_M) then + print*, '376' + print*, re_p, im_p, re_p1, im_p1 + print*, bose_M, gaussian_function(energies(ie) + omega_M, sigma), & + gaussian_function(energies(ie) - omega_M, sigma) + STOP + endif ctm(ie) = ctm_P + ctm_M ENDDO ELSE @@ -385,6 +470,80 @@ subroutine Lambda_dynamic_value_single(n_mod,value,sigma,T,w_q2,w_q3,gaussian,La ENDIF ! end subroutine Lambda_dynamic_value_single + + subroutine calculate_spectral_function(ener, d2_freq, selfnrg, nat, ne, spectralf) + + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + real(kind=dp),parameter :: pi = 3.141592653589793_dp + ! + real(kind=dp), intent(in) :: ener(ne) + integer, intent(in) :: ne,nat + real(kind=dp), intent(in) :: d2_freq(3*nat) + complex(kind=dp), intent(in) :: selfnrg(ne,3*nat) + ! + real(kind=dp), intent(out) :: spectralf(ne,3*nat) + ! + integer :: nat3,mu,ie, iband + real(kind=dp) :: a,b + complex(kind=dp), dimension(ne, 3*nat) :: zq + + do iband = 1, 3*nat + zq(:,iband) = sqrt(d2_freq(iband)**2 + selfnrg(:,iband)) + do ie = 1, ne + a = 0.0_DP + b = 0.0_DP + if(((ener(ie) - dble(zq(ie, iband)))**2 + aimag(zq(ie,iband))**2) .ne. 0.0_DP) then + a = -1.0_DP*aimag(zq(ie,iband))/((ener(ie) - dble(zq(ie, iband)))**2 + aimag(zq(ie,iband))**2) + endif + if(((ener(ie) + dble(zq(ie, iband)))**2 + aimag(zq(ie,iband))**2) .ne. 0.0_DP) then + b = aimag(zq(ie,iband))/((ener(ie) + dble(zq(ie, iband)))**2 + aimag(zq(ie,iband))**2) + endif + spectralf(ie, iband) = (a + b)/2.0_DP/pi + enddo + enddo + + end subroutine calculate_spectral_function + + subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectralf,mass,nat,ne) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + real(kind=dp),parameter :: twopi = 6.283185307179586_dp + ! + real(kind=dp), intent(in) :: mass(nat), ener(ne) + integer, intent(in) :: ne,nat + complex(kind=dp), intent(in) :: d2(3*nat,3*nat) + complex(kind=dp), intent(in) :: Pi(ne,3*nat,3*nat) + logical, intent(in) :: notransl + ! + real(kind=dp), intent(out) :: spectralf(3*nat, 3*nat, ne) + ! + integer :: nat3,n,m,ie + complex(kind=dp) :: G(3*nat,3*nat) + complex(kind=dp) :: fact + + nat3=3*nat + + spectralf=0.0_dp + ! + DO ie = 1,ne + G=cmplx(0.0_dp,0.0_dp,kind=DP) + FORALL (m=1:nat3, n=1:nat3) + G(n,m) = -Pi(ie,n,m) + END FORALL + G=G-d2 + DO n=1,nat3 + G(n,n)=G(n,n)+(ener(ie))**2 + ENDDO + G = cinv(G) + IF ( notransl ) THEN + CALL eliminate_transl(G,mass,nat) + END IF + spectralf(:,:,ie)=spectralf(:,:,ie)-2.0_DP*DIMAG(G)*ener(ie)/twopi + ENDDO + ! + + end subroutine calculate_spectral_function_nomode_mixing ! ! ======================== accessory routines ======================================== ! @@ -479,5 +638,77 @@ FUNCTION gaussian_function(x,sigma) gaussian_function = exp(-0.5_DP*(x/sigma)**2)/sqrt(2.0_DP/PI)/sigma ! multiplied with pi END FUNCTION + + SUBROUTINE eliminate_transl(A,mass,nat) + ! + IMPLICIT NONE + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + INTEGER, intent(in) :: nat + COMPLEX(DP), intent(inout) :: A(3*nat,3*nat) + real(kind=dp), intent(in) :: mass(nat) + + COMPLEX(DP) :: QAUX(3,3,nat,nat) + COMPLEX(DP) :: Q(nat*3,nat*3) + REAL(DP) :: Mtot,mi,mj + INTEGER :: i,j,alpha,beta + ! + ! DEFINE Q=1-P, P is TRANSLATION PROJECTOR + QAUX=(0.0_DP,0.0_DP) + ! build -P + Mtot=SUM(mass) + DO i=1,nat + DO j=1,nat + mj=mass(j) + mi=mass(i) + DO alpha=1,3 + QAUX(alpha,alpha,i,j)=-(1.0_dp,0.0_dp)*SQRT(mi*mj)/Mtot + END DO + END DO + END DO + ! build Q + DO i=1,nat + DO alpha=1,3 + QAUX(alpha,alpha,i,i)=1.0_dp+QAUX(alpha,alpha,i,i) + END DO + END DO + ! + DO j=1, nat + DO i=1, nat + DO alpha=1,3 + DO beta=1,3 + Q(3*(i-1)+alpha,3*(j-1)+beta)=QAUX(alpha,beta,i,j) + END DO + END DO + END DO + END DO + ! PROJECT + A=matmul(A,Q) + ! + END SUBROUTINE eliminate_transl + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + function cinv(A) result(Ainv) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + complex(kind=DP),intent(in) :: A(:,:) + complex(kind=DP) :: Ainv(size(A,1),size(A,2)) + complex(kind=DP) :: work(size(A,1)) ! work array for LAPACK + integer :: n,info,ipiv(size(A,1)) ! pivot indices + + ! Store A in Ainv to prevent it from being overwritten by LAPACK + Ainv = A + n = size(A,1) + ! ZGETRF computes an LU factorization of a general M-by-N matrix A + ! using partial pivoting with row interchanges. + call ZGETRF(n,n,Ainv,n,ipiv,info) + if (info.ne.0) stop 'Matrix is numerically singular!' + ! ZGETRI computes the inverse of a matrix using the LU factorization + ! computed by zGETRF. + call ZGETRI(n,Ainv,n,ipiv,work,n,info) + if (info.ne.0) stop 'Matrix inversion failed!' + end function cinv end module diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index cdd35eaa..b5a53684 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1189,6 +1189,8 @@ def setup_smearings(self, smearing_value = 0.00005): min_smear = np.amax(self.sigmas)/100.0 # We can't have scattering zero for modes with 0 group velocity, so we set it to this number! self.sigmas[self.sigmas < min_smear] = min_smear #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 + if(np.all(self.sigmas == 0.0)): + raise RuntimeError('All smearing values are zero!') elif(self.smearing_type == 'constant'): self.sigmas[:,:] = smearing_value @@ -1515,7 +1517,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga ################################################################################################################################# - def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = False): + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', no_mode_mixing = False, gauss_smearing = False): """ Calculate phonon lineshapes in full Brillouin zone. @@ -1532,6 +1534,9 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort self.delta_omega = energies[1] - energies[0] ls_key = format(temperature, '.1f') + if(no_mode_mixing): + print('WARNING! no_mode_mixing approach has been selected. Calculation of kappa in GK will not be possible!') + if(method == 'python'): lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) @@ -1558,9 +1563,12 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort elif(method == 'fortran'): - lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) + if(no_mode_mixing): + lineshapes = np.zeros((self.nkpt, self.nband, self.nband, len(energies))) + else: + lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) if(not self.set_up_scattering_grids): - self.set_scattering_grids_fortran() + self.set_scattering_grids_simple() irrqgrid = np.zeros((3, self.nirrkpt)) scattering_events = np.zeros(self.nirrkpt, dtype=int) @@ -1589,25 +1597,39 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort if(self.cp_mode == 'classical'): classical = True - curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ - self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ - self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ - self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + if(no_mode_mixing): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_nomode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + else: + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(self.nirrkpt): jkpt = self.qstar[ikpt][0] - if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): - for iband in range(self.nband): - if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): - curr_ls[ikpt, iband] = 0.0 - if(write_lineshapes): - filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') - self.write_lineshape(filename, curr_ls[ikpt], jkpt, energies) + if(not no_mode_mixing): + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): + for iband in range(self.nband): + if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): + curr_ls[ikpt, iband] = 0.0 for iqpt in range(len(self.qstar[ikpt])): jqpt = self.qstar[ikpt][iqpt] - lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 + if(no_mode_mixing): + #for iband in range(self.nband): + # for jband in range(self.nband): + # curr_ls[ikpt, iband,jband,:] = curr_ls[ikpt, iband,jband,:]/np.sum(curr_ls[ikpt,iband,jband,:])/(energies[1]-energies[0]) # Forcing the normalization. Not sure if the best option! + lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:] + else: + lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 + if(write_lineshapes): + filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') + self.write_lineshape(filename, lineshapes[ikpt], jkpt, energies, no_mode_mixing) print('Shape of lineshapes', lineshapes.shape) self.lineshapes[ls_key] = lineshapes @@ -1687,7 +1709,7 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False ################################################################################################################################## - def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, kpoints = None, start_nkpts = 100): + def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, no_mode_mixing = False, kpoints = None, start_nkpts = 100): """ Calculate phonon lineshapes in full Brillouin zone. @@ -1703,6 +1725,8 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec start_time = time.time() tics = [] + distances = [] + segments = [] if(kpoints is None): import seekpath rat = np.dot(self.dyn.structure.coords, np.linalg.inv(self.dyn.structure.unit_cell)) @@ -1726,21 +1750,29 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec print(len(tics), len(segments) + 1) kpoints = np.array(kpoints) else: - kpoints = kpoints#np.dot(kpoints, self.reciprocal_lattice) + kpoints = np.array(kpoints)#np.dot(kpoints, self.reciprocal_lattice) + distances = np.zeros(len(kpoints), dtype=float) + for ikpt in range(1, len(kpoints)): + distances[ikpt] = distances[ikpt - 1] + np.linalg.norm(kpoints[ikpt] - kpoints[ikpt - 1]) + if(len(distances) > 1): + distances /= distances[-1] nkpts = len(kpoints) freqs = np.zeros((nkpts, self.nband)) for ikpt in range(nkpts): freqs[ikpt], _ = self.get_frequency_at_q(kpoints[ikpt]) maxfreq = np.amax(freqs)*2.1 - energies = np.arange(ne, dtype=float)/float(ne)*maxfreq + energies = (np.arange(ne, dtype=float) + 1.0)/float(ne)*maxfreq - lineshapes = np.zeros((nkpts, self.nband, ne)) + if(no_mode_mixing): + lineshapes = np.zeros((nkpts, self.nband, self.nband, ne)) + else: + lineshapes = np.zeros((nkpts, self.nband, ne)) irrqgrid = kpoints.T scattering_events = np.zeros(nkpts, dtype=int) sigmas = np.zeros((nkpts, self.nband)) - sigmas[:,:] = self.sigmas[0,0] + sigmas[:,:] = np.amax(self.sigmas) for ikpt in range(nkpts): scattering_events[ikpt] = len(self.scattering_qpoints) irrqgrid = np.asfortranarray(irrqgrid) @@ -1765,18 +1797,29 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec if(self.cp_mode == 'classical'): classical = True - curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ - self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ - self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ - self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + if(no_mode_mixing): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_nomode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + else: + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(nkpts): - if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, kpoints[ikpt])): - for iband in range(self.nband): - if(freqs[ikpt, iband] < np.amax(freqs[ikpt])*1.0e-6): - curr_ls[ikpt, iband] = 0.0 - lineshapes[ikpt,:,:] = curr_ls[ikpt,:,:]*2.0 + if(not no_mode_mixing): + if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, kpoints[ikpt])): + for iband in range(self.nband): + if(freqs[ikpt, iband] < np.amax(freqs[ikpt])*1.0e-6): + curr_ls[ikpt, iband] = 0.0 + if(no_mode_mixing): + lineshapes[ikpt,:,:,:] = curr_ls[ikpt,:,:,:] + else: + lineshapes[ikpt,:,:] = curr_ls[ikpt,:,:]*2.0 with open('Qpoints_along_line', 'w+') as outfile: for ikpt in range(nkpts): @@ -1786,33 +1829,45 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec outfile.write('\n') with open(filename, 'w+') as outfile: - outfile.write('# Path and tics: \n') - outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) - for i in range(len(segments) - 1): - if(segments[i][1] == segments[i + 1][0]): - outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) - else: - outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) - outfile.write(' ' + segments[len(segments)-1][1] + ' ' + format(tics[len(segments)], '.8f') + '\n') - outfile.write('# normalized distance energy (THz) lineshape (1/THz) \n') + if(len(tics) > 0 and len(segments) > 0): + outfile.write('# Path and tics: \n') + outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) + for i in range(len(segments) - 1): + if(segments[i][1] == segments[i + 1][0]): + outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) + else: + outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) + outfile.write(' ' + segments[len(segments)-1][1] + ' ' + format(tics[len(segments)], '.8f') + '\n') + outfile.write('# normalized distance energy (THz) lineshape (1/THz) \n') + else: + outfile.write('# User defined kpoint line ... \n') for ikpt in range(nkpts): for ie in range(ne): outfile.write(' ' + format(distances[ikpt], '.12e')) outfile.write(' ' + format(energies[ie]*SSCHA_TO_THZ, '.12e')) for iband in range(self.nband): - outfile.write(' ' + format(lineshapes[ikpt,iband,ie]/SSCHA_TO_THZ, '.12e')) + if(no_mode_mixing): + for jband in range(self.nband): + outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie]/SSCHA_TO_THZ, '.12e')) + else: + outfile.write(' ' + format(lineshapes[ikpt,iband,ie]/SSCHA_TO_THZ, '.12e')) + if(no_mode_mixing): + outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie])/SSCHA_TO_THZ, '.12e')) outfile.write('\n') outfile.write('\n') with open(filename + '_phonons', 'w+') as outfile: - outfile.write('# Path and tics: \n') - outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) - for i in range(len(segments) - 1): - if(segments[i][1] == segments[i + 1][0]): - outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) - else: - outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) - outfile.write(' ' + segments[-1][1] + ' ' + format(tics[-1], '.8f') + '\n') + if(len(tics) > 0 and len(segments) > 0): + outfile.write('# Path and tics: \n') + outfile.write('# ' + segments[0][0] + ' ' + format(tics[0], '.8f')) + for i in range(len(segments) - 1): + if(segments[i][1] == segments[i + 1][0]): + outfile.write(' ' + segments[i][1] + ' ' + format(tics[i+1], '.8f')) + else: + outfile.write(' ' + segments[i][1] + ' | ' + segments[i+1][0] + ' ' + format(tics[i+1], '.8f')) + outfile.write(' ' + segments[-1][1] + ' ' + format(tics[-1], '.8f') + '\n') + else: + outfile.write('# User defined kpoints ... \n') outfile.write('# normalized distance frequency (THz) \n') for ikpt in range(nkpts): outfile.write(' ' + format(distances[ikpt], '.12e')) @@ -1823,16 +1878,17 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec print('Calculated SSCHA lineshapes in: ', time.time() - start_time) ################################################################################################################################## - def write_lineshape(self, filename, curr_ls, jkpt, energies): + def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): """ Function to write phonon lineshapes onto a file. - filename : title of the file at which lineshape is to be written. - curr_ls : lineshape to be written - jkpt : the index of the k point for which lineshapes are to be written - energies : frequencies at which lineshapes have been calculated + filename : title of the file at which lineshape is to be written. + curr_ls : lineshape to be written + jkpt : the index of the k point for which lineshapes are to be written + energies : frequencies at which lineshapes have been calculated + no_mode_mixing : Defines the shape of input curr_ls. if true curr_ls = (nband, nband, ne) """ @@ -1848,7 +1904,13 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies): for ien in range(len(energies)): outfile.write(3*' ' + format(energies[ien]*SSCHA_TO_THZ, '.12e')) for iband in range(self.nband): - outfile.write(3*' ' + format(curr_ls[iband, ien]/SSCHA_TO_THZ, '.12e')) + if(no_mode_mixing): + for jband in range(self.nband): + outfile.write(3*' ' + format(curr_ls[iband, jband, ien]/SSCHA_TO_THZ, '.12e')) + else: + outfile.write(3*' ' + format(curr_ls[iband, ien]/SSCHA_TO_THZ, '.12e')) + if(no_mode_mixing): + outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien])/SSCHA_TO_THZ, '.12e')) outfile.write('\n') ################################################################################################################################## From b14d5b656727cea3b55607f356403e1cd19548ec Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 16 Nov 2022 12:30:55 +0100 Subject: [PATCH 042/204] Fix lint errors --- cellconstructor/Spectral.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index e8d4e306..3bb15bb7 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -569,7 +569,7 @@ def get_static_correction_along_path_multiprocessing(dyn, lengthT = x_length_exp.T result = [] parameters = zip(iq_list, q_list,itertools.repeat(tensor2),itertools.repeat(tensor3), - itertools.repeat(k_grid),itertools.repeat(T), + itertools.repeat(k_grid),itertools.repeat(T),itertools.repeat(dyn), itertools.repeat(mm_mat),itertools.repeat(name_dyn), itertools.repeat(frequencies),itertools.repeat(v2_wq), itertools.repeat(print_dyn),itertools.repeat(lengthT)) @@ -601,7 +601,7 @@ def get_static_correction_along_path_multiprocessing(dyn, # ================================================================================== def multiprocessing_work_static_correction_along_path(iq,q,tensor2,tensor3,k_grid,T, - mm_mat,name_dyn,frequencies,v2_wq,print_dyn,lengthT): + dyn,mm_mat,name_dyn,frequencies,v2_wq,print_dyn,lengthT): print("iq=",iq) dynq, v2_wq[iq,:] = get_static_bubble(tensor2=tensor2, tensor3=tensor3, k_grid=k_grid, q=np.array(q), @@ -2268,7 +2268,7 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) tensor2.Center() - structure = tensor2.unitcell_structure + # structure = tensor2.unitcell_structure @@ -2493,6 +2493,7 @@ def findne(val,e0,de): res_os=np.zeros((n_mod,2),dtype=np.float64) # one-shot shifted freq and linewidth res_pert=np.zeros((n_mod,2),dtype=np.float64) # perturbative shifted freq and linewidth + structure = tensor2.unitcell_structure is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q_path[iq]) for ifreq in range(n_mod): done=False From 144fee17baa6e4cbad0612db314affe68285ce86 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 17 Nov 2022 10:37:32 +0100 Subject: [PATCH 043/204] skeleton function for dielectric --- cellconstructor/Spectral.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3bb15bb7..3b9bad9b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3143,3 +3143,32 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") + +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... + """ + Input data: + omega = Frequency + epsilon_inf = dielctric constant of vacuum + N = + a = atom a -> M(a) mass of atom a + b = atom b -> Z(b) atomic number of atom b + nu = damping constant + --------- + Z() = Born effective charge + M() = Atomic masses + e() = + omega_nu = resonant frequency + Big_omega = + """ + #electric_charge = 4.803e-10 #Fr (CGS) + electric_charge = 1.602176462e-19 #C (SI) + + response1 = -(N/Big_omega) * electric_charge**2 + for a in range(atom_a): + for b in range(atom_b): + temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) + response2 += temp + response_function = response1*response2 + + epsilon=epsilon_inf+4*np.pi*response_function + return 0 From 9f36b5efec2073a69e1c30fbccc70716a3ed4ab6 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 17 Nov 2022 10:39:57 +0100 Subject: [PATCH 044/204] Added comments --- cellconstructor/Spectral.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3b9bad9b..b012fccc 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3159,6 +3159,8 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleto e() = omega_nu = resonant frequency Big_omega = + Output: + epsilon = Dielectric function (SI) """ #electric_charge = 4.803e-10 #Fr (CGS) electric_charge = 1.602176462e-19 #C (SI) From 29f0ba091244ce7ba428d96bf68a56f452a42d38 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 17 Nov 2022 10:44:46 +0100 Subject: [PATCH 045/204] Commenting the skeleton of the dielectric function for lint reasons --- cellconstructor/Spectral.py | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index b012fccc..b801b10e 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,33 +3144,33 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... - """ - Input data: - omega = Frequency - epsilon_inf = dielctric constant of vacuum - N = - a = atom a -> M(a) mass of atom a - b = atom b -> Z(b) atomic number of atom b - nu = damping constant - --------- - Z() = Born effective charge - M() = Atomic masses - e() = - omega_nu = resonant frequency - Big_omega = - Output: - epsilon = Dielectric function (SI) - """ - #electric_charge = 4.803e-10 #Fr (CGS) - electric_charge = 1.602176462e-19 #C (SI) - - response1 = -(N/Big_omega) * electric_charge**2 - for a in range(atom_a): - for b in range(atom_b): - temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) - response2 += temp - response_function = response1*response2 - - epsilon=epsilon_inf+4*np.pi*response_function - return 0 +# def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... +# """ +# Input data: +# omega = Frequency +# epsilon_inf = dielctric constant of vacuum +# N = +# a = atom a -> M(a) mass of atom a +# b = atom b -> Z(b) atomic number of atom b +# nu = damping constant +# --------- +# Z() = Born effective charge +# M() = Atomic masses +# e() = +# omega_nu = resonant frequency +# Big_omega = +# Output: +# epsilon = Dielectric function (SI) +# """ +# #electric_charge = 4.803e-10 #Fr (CGS) +# electric_charge = 1.602176462e-19 #C (SI) +# +# response1 = -(N/Big_omega) * electric_charge**2 +# for a in range(atom_a): +# for b in range(atom_b): +# temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) +# response2 += temp +# response_function = response1*response2 +# +# epsilon=epsilon_inf+4*np.pi*response_function +# return 0 From 7a0f9d8ac7374798524ae17b1b8fed41d531ed71 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 17 Nov 2022 12:53:04 +0100 Subject: [PATCH 046/204] Corrected no mode mixing --- FModules/get_lf.f90 | 340 +++++++++++++++++++------ FModules/third_order_cond.f90 | 32 ++- cellconstructor/ThermalConductivity.py | 328 ++++++++++++++++++------ 3 files changed, 547 insertions(+), 153 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index c6ec50d4..d98df888 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -38,7 +38,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ real(kind=DP), allocatable, dimension(:, :) :: lineshape complex(kind=DP), allocatable, dimension(:, :) :: self_energy ! complex(kind=DP), dimension(ne, 3*nat) :: self_energy - complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize @@ -56,7 +56,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ ! print*, 'Got parallelize' !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & - !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, d2_q, is_q_gamma, self_energy, & !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, lineshape) & !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, lineshapes, & @@ -68,7 +68,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' lineshape(:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -102,14 +102,25 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ print*, 'NaN in self_energy' endif if(gaussian) then - call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies) + call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies, w_q) + !call hilbert_transform_via_FFT(ne, 3*nat, self_energy) if(any(self_energy .ne. self_energy)) then print*, 'NaN in Kramers Kronig' endif endif - !call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) - call calculate_spectral_function(energies, w_q, self_energy, nat, ne, lineshape) + !open(file = 'Self_energy', unit = 1) + !do i = 1, ne + ! write(1,"(E20.12)",advance="no") energies(i) + ! do jqpt = 1, 3*nat + ! write(1,"(2E20.12)",advance="no") dble(self_energy(i,jqpt)), aimag(self_energy(i,jqpt)) + ! enddo + ! write(1,*) ' ' + !enddo + !close(1) + + call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) + !call calculate_spectral_function(energies, w_q, self_energy, nat, ne, lineshape) !call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) do i = 1, 3*nat @@ -200,12 +211,12 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' lineshape(:,:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) - d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) - do iband = 1, 3*nat - d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) - enddo - d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + !d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) + !do iband = 1, 3*nat + ! d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) + !enddo + !d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -216,6 +227,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev if(.not. w_neg_freqs) then w_q = sqrt(w2_q) self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) + self_energy_cart(:,:,:) = complex(0.0_DP, 0.0_DP) allocate(curr_grid(3, scatt_events(iqpt))) allocate(curr_w(scatt_events(iqpt))) if(iqpt > 1) then @@ -227,7 +239,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo -! print*, 'Got grids' + print*, 'Got grids' call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) @@ -235,24 +247,43 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev tot_qpt = sum(curr_w) deallocate(curr_w) self_energy = self_energy/dble(tot_qpt) + if(gaussian) then + call calculate_real_part_via_Kramers_Kronig_2d(ne, 3*nat, self_energy, energies, w_q) + !call hilbert_transform_via_FFT(ne, 3*nat, self_energy) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in Kramers Kronig' + endif + endif if(any(self_energy .ne. self_energy)) then print*, 'NaN in self_energy' endif - do iband = 1, 3*nat do jband = 1, 3*nat do iband1 = 1, 3*nat do jband1 = 1, 3*nat - self_energy_cart(:, jband, iband) = & - self_energy(:,jband1,iband1)*pols_q(jband1,jband)*conjg(pols_q(iband1,iband)) + self_energy_cart(:, jband, iband) = self_energy_cart(:, jband, iband) + & + self_energy(:,jband1,iband1)*pols_q(jband,jband1)*conjg(pols_q(iband,iband1)) enddo enddo enddo enddo - call calculate_spectral_function_nomode_mixing(energies,d2_q,self_energy_cart,.true.,lineshape,masses,nat,ne) - - lineshapes(iqpt, :, :, :) = lineshape + !open(file = 'Self_energy_nmm', unit = 1) + !do i = 1, ne + !write(1,"(E20.12)",advance="no") energies(i) + !do iband = 1, 3*nat + !do jband = 1, 3*nat + ! write(1,"(2E20.12)",advance="no") dble(self_energy_cart(i,iband,jband)), & + ! aimag(self_energy_cart(i,iband,jband)) + !enddo + !enddo + !write(1,*) ' ' + !enddo + !close(1) + + call calculate_spectral_function_nomode_mixing(energies,d2_q,self_energy_cart,is_q_gamma,lineshape,masses,nat,ne) + + lineshapes(iqpt, :, :, :) = lineshape*2.0_DP else lineshapes(iqpt,:,:,:) = 0.0_DP endif @@ -300,7 +331,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ real(kind=DP), dimension(3,3) :: kprim real(kind=DP), dimension(3*nat) :: w2_q, w_q, tau, omega complex(kind=DP), allocatable, dimension(:, :) :: self_energy - complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize @@ -318,7 +349,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ ! print*, 'Got parallelize' !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & - !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, d2_q, is_q_gamma, self_energy, & !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, tau, omega) & !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, selfengs, & @@ -329,7 +360,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ w_neg_freqs = .False. print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -363,7 +394,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ print*, 'NaN in self_energy' endif if(gaussian) then - call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies) + call calculate_real_part_via_Kramers_Kronig(ne, 3*nat, self_energy, energies, w_q) if(any(self_energy .ne. self_energy)) then print*, 'NaN in Kramers Kronig' endif @@ -524,7 +555,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even real(kind=DP), dimension(3*nat) :: w2_q, w_q complex(kind=DP), dimension(3*nat, 3*nat) :: self_energy ! complex(kind=DP), allocatable, dimension(:,:) :: self_energy - complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize @@ -543,14 +574,14 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(SHARED) & - !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, d2_q, is_q_gamma, self_energy, & !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt) do iqpt = 1, nirrqpt w_neg_freqs = .False. print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then print*, 'Negative eigenvalue of dynamical matrix! Exit!' @@ -631,7 +662,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 real(kind=DP), dimension(3,3) :: kprim real(kind=DP), dimension(3*nat) :: w2_q, w_q complex(kind=DP), dimension(3*nat) :: self_energy - complex(kind=DP), dimension(3*nat,3*nat) :: pols_q + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q real(kind=DP), allocatable, dimension(:,:) :: curr_grid integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize @@ -651,7 +682,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(SHARED) & - !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, d2_q, is_q_gamma, self_energy, & !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt) do iqpt = 1, nirrqpt @@ -660,7 +691,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 !call cpu_time(curr_time) !print*, 'Since start: ', curr_time - start_time, ' seconds!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) ! print*, 'Got frequencies' if(any(w2_q < 0.0_DP)) then @@ -743,7 +774,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc real(kind=DP), dimension(3*nat, 3) :: freqs_array real(kind=DP), dimension(3, 3) :: ikprim complex(kind=DP), dimension(3*nat) :: selfnrg - complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq + complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 ! complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg @@ -764,7 +795,8 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc ! print*, 'Calculating self-energy!' !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, mkpt_r, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & - !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, iat, jat, kat, freqs_array, if_gammas, is_k_neg, is_mk_mq_neg, selfnrg) & + !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, pols_k2, pols_mk_mq2, iat, jat, kat, freqs_array, if_gammas, & + !$OMP is_k_neg, is_mk_mq_neg, selfnrg) & !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, pos, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & !$OMP r2_2, w_q, pols_q, mass_array, gaussian, classical, ikprim) & !$OMP REDUCTION(+:self_energy) @@ -792,8 +824,8 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc enddo call interpol_v2(fc3, r3_2, r3_3,pos, kpt, mkpt, ifc3, nfc3, nat) ! call interpol_v3(fc3, pos, r3_2, r3_3, qpt, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -906,8 +938,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 real(kind=DP), allocatable, dimension(:, :, :) :: mass_array !complex(kind=DP), dimension(ne, 3*nat) :: selfnrg complex(kind=DP), allocatable, dimension(:, :) :: selfnrg -! complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq - complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq + complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas @@ -928,7 +959,8 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 ! print*, 'Starting with self energy!' !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & - !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & + !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, pols_k2, w2_mk_mq, pols_mk_mq, pols_mk_mq2,& + !$OMP is_k_gamma, is_mk_mq_gamma, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & @@ -938,6 +970,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) allocate(selfnrg(ne, 3*nat)) allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) + allocate(pols_k2(3*nat,3*nat), pols_mk_mq2(3*nat,3*nat)) allocate(kpt(3), mkpt(3)) allocate(w2_k(3*nat), w2_mk_mq(3*nat), w_k(3*nat), w_mk_mq(3*nat)) allocate(freqs_array(3*nat, 3)) @@ -950,8 +983,8 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -1038,12 +1071,14 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 endif deallocate(ifc3, d3, d3_pols, selfnrg) deallocate(pols_k, pols_mk_mq) + deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) deallocate(freqs_array) else deallocate(ifc3, d3, d3_pols, selfnrg) deallocate(pols_k, pols_mk_mq) + deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) deallocate(freqs_array) @@ -1085,25 +1120,29 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n real(kind=DP), allocatable, dimension(:, :) :: freqs_array real(kind=DP), allocatable, dimension(:, :, :) :: mass_array complex(kind=DP), allocatable, dimension(:, :, :) :: selfnrg - complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq + complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas - self_energy = complex(0.0_DP, 0.0_DP) + print*, 'Initialize self energy!' + self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) + print*, 'Initialized self energy!' !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & - !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, w2_mk_mq, pols_mk_mq, is_k_gamma, is_mk_mq_gamma, & + !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, pols_k2, w2_mk_mq, pols_mk_mq, pols_mk_mq2,& + !$OMP is_k_gamma, is_mk_mq_gamma, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt -! print*, jqpt + !print*, jqpt allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) allocate(selfnrg(ne, 3*nat, 3*nat)) allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) + allocate(pols_k2(3*nat,3*nat), pols_mk_mq2(3*nat,3*nat)) allocate(kpt(3), mkpt(3)) allocate(w2_k(3*nat), w2_mk_mq(3*nat), w_k(3*nat), w_mk_mq(3*nat)) allocate(freqs_array(3*nat, 3)) @@ -1116,8 +1155,8 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -1161,22 +1200,6 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n enddo enddo enddo -! d3 = ifc3*mass_array - -! do i = 1, 3*nat -! do j = 1, 3*nat -! do k = 1, 3*nat -! do i1 = 1, 3*nat -! do j1 = 1, 3*nat -! do k1 = 1, 3*nat -! d3_pols(k,j,i) = d3_pols(k,j,i) + & -! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) -! enddo -! enddo -! enddo -! enddo -! enddo -! enddo do i = 1, 3*nat do i1 = 1, 3*nat @@ -1184,7 +1207,6 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) enddo enddo -! print*, 'Got d3pols' freqs_array(:, 1) = w_q freqs_array(:, 2) = w_k @@ -1204,12 +1226,14 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n endif deallocate(ifc3, d3, d3_pols, selfnrg) deallocate(pols_k, pols_mk_mq) + deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) deallocate(freqs_array) else deallocate(ifc3, d3, d3_pols, selfnrg) deallocate(pols_k, pols_mk_mq) + deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) deallocate(freqs_array) @@ -1284,39 +1308,209 @@ end function vec_dot_mat !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energies) + subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energies, freq) implicit none integer, parameter :: DP = selected_real_kind(14,200) real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 integer, intent(in) :: ne, nband - real(kind=DP), intent(in) :: energies(ne) + real(kind=DP), intent(in) :: energies(ne), freq(nband) complex(kind=DP), intent(inout) :: self_energy(ne, nband) integer :: iband, i, j - real(kind=DP) :: diff, suma, rse + real(kind=DP) :: diff, suma, rse, correction + real(kind=DP), dimension(ne) :: im_part + + do iband = 1, nband + !im_part = self_energy(:,iband)/freq(iband)/2.0_DP + do i = 1, ne + rse = 0.0_DP + do j = 1, ne + if(i .ne. j) then + diff = 1.0_DP/(energies(j) - energies(i)) + suma = 1.0_DP/(energies(j) + energies(i)) + !rse = rse + im_part(j)*(diff + suma)*(energies(2) - energies(1))/PI + rse = rse + aimag(self_energy(j, iband))*(diff - suma)*(energies(2) - energies(1))/PI + else + suma = 1.0_DP/(energies(j) + energies(i)) + rse = rse - aimag(self_energy(j, iband))*suma*(energies(2) - energies(1))/PI + endif + enddo + if(i > 1 .and. i < ne) then + correction = (aimag(self_energy(i+1, iband)) - aimag(self_energy(i-1, iband)))/2.0_DP + else + correction = 0.0_DP + endif + !self_energy(i, iband) = complex((rse + correction)*2.0_DP*freq(iband), aimag(self_energy(i, iband))) + self_energy(i, iband) = complex(rse + correction, aimag(self_energy(i, iband))) + enddo + enddo + + end subroutine + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_real_part_via_Kramers_Kronig_2d(ne, nband, self_energy, energies, freq) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: ne, nband + real(kind=DP), intent(in) :: energies(ne), freq(nband) + complex(kind=DP), intent(inout) :: self_energy(ne, nband, nband) + + integer :: iband, jband, i, j + real(kind=DP) :: diff, suma, rse, correction do iband = 1, nband + do jband = 1, nband do i = 1, ne - !diff = 1.0_DP/(energies - energies(i)) - !diff(i) = 0.0_DP - !suma = 1.0_DP/(energies + energies(i)) - !real(self_energy(i, iband)) = sum(aimag(self_energy(:, iband))*(diff + suma))*(energies(2) - energies(1))/PI rse = 0.0_DP do j = 1, ne if(i .ne. j) then diff = 1.0_DP/(energies(j) - energies(i)) suma = 1.0_DP/(energies(j) + energies(i)) - rse = rse + aimag(self_energy(j, iband))*(diff + suma)*(energies(2) - energies(1))/PI + rse = rse + aimag(self_energy(j, iband, jband))*(diff - suma)*(energies(2) - energies(1))/PI + else + suma = 1.0_DP/(energies(j) + energies(i)) + rse = rse - aimag(self_energy(j, iband, jband))*suma*(energies(2) - energies(1))/PI endif enddo - self_energy(i, iband) = complex(rse, aimag(self_energy(i, iband))) + if(i > 1 .and. i < ne) then + correction = (aimag(self_energy(i+1, iband, jband)) - aimag(self_energy(i-1, iband, jband)))/2.0_DP + else + correction = 0.0_DP + endif + self_energy(i, iband, jband) = complex(rse + correction, aimag(self_energy(i, iband, jband))) + enddo enddo enddo end subroutine + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine hilbert_transform_via_FFT(ne, nband, self_energy) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: ne, nband + complex(kind=DP), intent(inout) :: self_energy(ne, nband) + + integer :: iband, ie + real(kind=DP) :: dummy(2*ne + 1) + + dummy = 0.0_DP + do iband = 1, nband + dummy(ne + 2:2*ne + 1) = aimag(self_energy(:,iband)) + dummy(1:ne) = -aimag(self_energy(:,iband)) + call ht(dummy, 2*ne + 1) + do ie = 1, ne + self_energy(ie,iband) = complex(dummy(ie), aimag(self_energy(ie,iband))) + enddo + enddo + + + end subroutine hilbert_transform_via_FFT + + subroutine ht(x,n) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + complex(kind=DP), parameter :: CI = (0.0_DP, 1.0_DP) + integer, intent(in) :: n + real(kind=DP), intent(inout) :: x(n) + + complex(kind=DP), allocatable, dimension(:) :: C + integer :: npt,imid + + ! pad x to a power of 2 + + npt = 2**(INT(LOG10(dble(n))/0.30104)+1) + + allocate(C(npt)) + C=cmplx(0.0_DP,0.0_DP, kind=DP) + C(1:n)=cmplx(x(1:n),0.0_DP, kind=DP) + + call CFFT(C,npt,1) + C=C/dble(npt) + + imid = npt / 2 + C(1:imid-1) = -CI * C(1:imid-1) + C(imid) = 0.0_DP + C(imid+1:npt) = CI * C(imid+1:npt) ! neg. spectrum (i) + + ! inverse Fourier transform + call CFFT(C,npt,-1) + + ! output + x(1:n)=dble(C(1:n)) + + deallocate(C) + + end subroutine ht + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine CFFT(x,n,isig) + + implicit none + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: n, isig + complex(kind=DP), intent(inout) :: x(n) + integer :: i1, i2a, i2b, i3, i3rev, ip1, ip2, isig1 + real(kind=DP) :: theta, sinth + complex(kind=DP) :: temp, w, wstp + + isig1 = -isig + i3rev = 1 + + DO i3 = 1, n + IF ( i3 < i3rev ) THEN + temp = x(i3) + x(i3) = x(i3rev) + x(i3rev) = temp + ENDIF + ip1 = n / 2 + DO WHILE ( i3rev > ip1 ) + IF ( ip1 <= 1 ) EXIT + i3rev = i3rev - ip1 + ip1 = ip1 / 2 + END DO + i3rev = i3rev + ip1 + END DO + + ip1 = 1 + + DO WHILE (ip1 < n) + ip2 = ip1 * 2 + theta = 2.0_DP*pi/ dble(isig1*ip2) + sinth = sin( theta / 2.0_DP) + wstp = complex(-2.0_DP*sinth*sinth, SIN(theta)) + w = 1.0_DP + + DO i1 = 1, ip1 + DO i3 = i1, n, ip2 + i2a = i3 + i2b = i2a + ip1 + temp = w*x(i2b) + x(i2b) = x(i2a) - temp + x(i2a) = x(i2a) + temp + END DO + w = w*wstp+w + END DO + ip1 = ip2 + END DO + + RETURN + END SUBROUTINE CFFT + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! function inv(A) result(Ainv) @@ -1345,7 +1539,7 @@ end function inv !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q) + subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q, pols_q1) implicit none integer, parameter :: DP = selected_real_kind(14,200) @@ -1358,12 +1552,11 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q) real(kind=DP), dimension(3), intent(in) :: q real(kind=DP), dimension(3*nat), intent(out) :: w2_q - complex(kind=DP), dimension(3*nat, 3*nat), intent(out) :: pols_q + complex(kind=DP), dimension(3*nat, 3*nat), intent(out) :: pols_q, pols_q1 integer :: ir, iat, jat, INFO, LWORK, i, j complex(kind=DP), dimension(6*nat + 1) :: WORK real(kind=DP), dimension(9*nat - 2) :: RWORK - complex(kind=DP), dimension(3*nat, 3*nat) :: pols_q1 real(kind=DP) :: phase @@ -1385,6 +1578,7 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q) enddo pols_q = (pols_q1 + conjg(transpose(pols_q1)))/2.0_DP + pols_q1 = (pols_q1 + conjg(transpose(pols_q1)))/2.0_DP LWORK = -1 call zheev('V', 'L', 3*nat, pols_q, 3*nat, w2_q, WORK, LWORK, RWORK, INFO) LWORK = MIN( size(WORK), INT( WORK( 1 ) ) ) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 55a1746e..056b5f4c 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -122,7 +122,7 @@ subroutine compute_full_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, DO nu = 1,n_mod DO mu = 1,n_mod bubble(:,mu,nu) = bubble(:,mu,nu) + & - CONJG(D3(mu,rho2,rho3))*Lambda_23*D3(nu,rho2,rho3) + CONJG(D3(mu,rho2,rho3))*Lambda_23(:)*D3(nu,rho2,rho3) END DO END DO ! @@ -538,8 +538,12 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra G = cinv(G) IF ( notransl ) THEN CALL eliminate_transl(G,mass,nat) - END IF - spectralf(:,:,ie)=spectralf(:,:,ie)-2.0_DP*DIMAG(G)*ener(ie)/twopi + END IF + do n = 1, nat3 + do m = 1, nat3 + spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi + enddo + enddo ENDDO ! @@ -695,20 +699,34 @@ function cinv(A) result(Ainv) complex(kind=DP),intent(in) :: A(:,:) complex(kind=DP) :: Ainv(size(A,1),size(A,2)) - complex(kind=DP) :: work(size(A,1)) ! work array for LAPACK - integer :: n,info,ipiv(size(A,1)) ! pivot indices + complex(kind=DP), allocatable :: work(:) ! work array for LAPACK + integer :: n,info,ipiv(size(A,1)), lda, lwork, nb ! pivot indices + INTEGER,EXTERNAL :: ILAENV ! Store A in Ainv to prevent it from being overwritten by LAPACK Ainv = A n = size(A,1) + lda = n + ! + nb = ILAENV( 1, 'ZHEEV', 'U', n, -1, -1, -1 ) + lwork=n*nb + ALLOCATE(work(lwork)) + ! ! ZGETRF computes an LU factorization of a general M-by-N matrix A ! using partial pivoting with row interchanges. - call ZGETRF(n,n,Ainv,n,ipiv,info) + CALL ZGETRF(n, n, Ainv, lda, ipiv, info) if (info.ne.0) stop 'Matrix is numerically singular!' ! ZGETRI computes the inverse of a matrix using the LU factorization ! computed by zGETRF. - call ZGETRI(n,Ainv,n,ipiv,work,n,info) + CALL ZGETRI(n, Ainv, lda, ipiv, work, lwork, info) if (info.ne.0) stop 'Matrix inversion failed!' + + !call ZGETRF(n,n,Ainv,n,ipiv,info) + !if (info.ne.0) stop 'Matrix is numerically singular!' + ! ZGETRI computes the inverse of a matrix using the LU factorization + ! computed by zGETRF. + !call ZGETRI(n,Ainv,n,ipiv,work,n,info) + !if (info.ne.0) stop 'Matrix inversion failed!' end function cinv end module diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index b5a53684..5b8c22e9 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1186,9 +1186,8 @@ def setup_smearings(self, smearing_value = 0.00005): self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale else: self.sigmas[ikpt][iband] = 0.0 - min_smear = np.amax(self.sigmas)/100.0 # We can't have scattering zero for modes with 0 group velocity, so we set it to this number! + min_smear = np.amax(self.sigmas)/10.0 # We can't have scattering zero for modes with 0 group velocity, so we set it to this number! self.sigmas[self.sigmas < min_smear] = min_smear - #self.sigmas[self.freqs <= np.amin(self.freqs)*10] = min_smear/10.0 if(np.all(self.sigmas == 0.0)): raise RuntimeError('All smearing values are zero!') elif(self.smearing_type == 'constant'): @@ -1256,15 +1255,33 @@ def calc_spectral_kappa_gk_diag(self, temperature): spec_kappa = np.zeros((3,3,self.lineshapes[ls_key].shape[-1])) energies = np.arange(spec_kappa.shape[-1], dtype=float)*self.delta_omega + self.delta_omega exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + integrands_plus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 exponents = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 + integrands_minus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 integrands = (integrands_plus + integrands_minus) - - if(self.off_diag): - spec_kappa = np.einsum('ijjk,ijjl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 - else: - spec_kappa = np.einsum('ijk,ijl,ijm->klm', self.gvels, self.gvels,integrands)*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + if(self.off_diag): + gvel = np.zeros_like(self.gvels[iqpt, iband, iband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) + spec_kappa += np.einsum('ij,k->ijk',gvel_sum,integrands[iqpt, iband])*self.freqs[iqpt, iband]**2 + else: + gvel = np.zeros_like(self.gvels[iqpt, iband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) + spec_kappa += np.einsum('ij,k->ijk',gvel_sum,integrands[iqpt, iband])*self.freqs[iqpt, iband]**2 spec_kappa = spec_kappa*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*self.delta_omega print('Total kappa is: ', np.diag(tot_kappa)) @@ -1292,9 +1309,23 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): for iband in range(self.nband): weight = gaussian(energies[ien], self.freqs[iqpt, iband], self.sigmas[iqpt, iband]) if(self.off_diag): - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband,iband], self.gvels[iqpt,iband, iband]) + gvel = np.zeros_like(self.gvels[iqpt, iband, iband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/float(len(self.rotations)) + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*gvel_sum*self.lifetimes[key][iqpt][iband]*weight else: - spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*self.lifetimes[key][iqpt,iband]*weight*np.outer(self.gvels[iqpt,iband], self.gvels[iqpt,iband]) + gvel = np.zeros_like(self.gvels[iqpt, iband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/float(len(self.rotations)) + spec_kappa[:,:,ien] += self.cp[key][iqpt,iband]*gvel_sum*self.lifetimes[key][iqpt][iband]*weight spec_kappa = spec_kappa*SSCHA_TO_MS**2/self.volume/float(self.nkpt)*1.0e30#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*delta_en print('Total kappa is: ', np.diag(tot_kappa)) @@ -1447,7 +1478,6 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss print('Lineshapes for this temperature have already been calculated. Continuing ...') else: self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) - kappa = 0.0 exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) #integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents/(exponents - 1.0)**2 integrands_plus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 @@ -1458,7 +1488,21 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 integrals = (np.trapz(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.trapz(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 #integrals = (integrate.simps(integrands_plus, axis = len(integrands_plus.shape) - 1) + integrate.simps(integrands_minus, axis = len(integrands_minus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + #kappa = np.einsum('ijk,ijl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = np.zeros((3,3)) + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + gvel = np.zeros_like(self.gvels[iqpt, iband]) + gvel_sum = np.zeros_like(kappa, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) + kappa += gvel_sum*integrals[iqpt][iband]*self.freqs[iqpt][iband]**2 + kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1482,34 +1526,77 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga print('Lineshapes for this temperature have already been calculated. Continuing ...') else: self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) - kappa_diag = np.zeros((3,3)) + #kappa_diag = np.zeros((3,3)) exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) #integrands_plus = self.lineshapes[ls_key]**2*energies**2*exponents_plus/(exponents_plus - 1.0)**2 - integrands_plus = self.lineshapes[ls_key]**2*exponents_plus/(exponents_plus - 1.0)**2 + #integrands_plus = self.lineshapes[ls_key]**2*exponents_plus/(exponents_plus - 1.0)**2 exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) #integrands_minus = self.lineshapes[ls_key]**2*energies**2*exponents_minus/(exponents_minus - 1.0)**2 - integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 - integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi - kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 - kappa_diag += kappa_diag.T - kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + #integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 + #integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ)*1.0e12/2.0*2.0*np.pi + #kappa_diag = np.einsum('ijjk,ijjl,ij,ij,ij->kl', self.gvels.conj(), self.gvels, integrals, self.freqs, self.freqs).real*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + #kappa_diag += kappa_diag.T + #kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + #kappa_nondiag = np.zeros_like(kappa_diag) + #for iqpt in range(self.nkpt): + # for iband in range(self.nband-1): + # if(self.freqs[iqpt, iband] != 0.0): + # for jband in range(iband, self.nband): + # if(iband != jband and self.freqs[iqpt, jband] != 0.0): + # if(self.group_velocity_mode == 'wigner'): + # vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + # else: + # vel_fact = 1.0 + # integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 + # integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 + # integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 + # kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ + # np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real/vel_fact**2\ + # *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa_diag = np.zeros((3,3)) kappa_nondiag = np.zeros_like(kappa_diag) - for iqpt in range(self.nkpt): - for iband in range(self.nband-1): - if(self.freqs[iqpt, iband] != 0.0): - for jband in range(iband, self.nband): - if(iband != jband and self.freqs[iqpt, jband] != 0.0): + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): if(self.group_velocity_mode == 'wigner'): - vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al - else: vel_fact = 1.0 - integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 - integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 - integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/4.0 - kappa_nondiag += integrals*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)**2/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ - np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real/vel_fact**2\ - *SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + if(self.freqs[iqpt, jband] != 0.0 and iband != jband): + integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 + integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + kappa_nondiag += integrals*self.freqs[iqpt,iband]**2*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ + gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 + elif(self.freqs[iqpt, jband] != 0.0 and iband == jband): + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + integrands_plus = self.lineshapes[ls_key][iqpt, iband]**2*exponents_plus/(exponents_plus - 1.0)**2 + integrands_minus = self.lineshapes[ls_key][iqpt, iband]**2*exponents_minus/(exponents_minus - 1.0)**2 + integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega + kappa_diag += gvel_sum*integrals*self.freqs[iqpt][iband]**2*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 + # Here freqs[iqpt,iband] is squared instead of power of 4 because imag self-energy in SSCHA is defined as 2*freqs[iqpt,iband]*Gamma[iqpt, iband] + # Factor of 1/2 comes from the fact that we multiplied the lineshapes with 2.0 after we calculated them! + + kappa_diag += kappa_diag.T + kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + kappa_nondiag += kappa_nondiag.T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1709,7 +1796,7 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False ################################################################################################################################## - def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, no_mode_mixing = False, kpoints = None, start_nkpts = 100): + def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, no_mode_mixing = False, kpoints = None, start_nkpts = 100, smear = None): """ Calculate phonon lineshapes in full Brillouin zone. @@ -1771,8 +1858,21 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec irrqgrid = kpoints.T scattering_events = np.zeros(nkpts, dtype=int) - sigmas = np.zeros((nkpts, self.nband)) - sigmas[:,:] = np.amax(self.sigmas) + if(smear is None): + sigmas = np.zeros((nkpts, self.nband)) + sigmas[:,:] = np.amax(self.sigmas) + else: + if(nkpts > 1): + if(np.shape(smear) == np.shape(freqs)): + sigmas = smear + else: + print(np.shape(smear), np.shape(freqs)) + raise RuntimeError('Smearing array does not match shape of the kpoints!') + else: + if(len(smear) == len(freqs[0])): + sigmas = smear + else: + raise RuntimeError('Smearing array does not match shape of the kpoints!') for ikpt in range(nkpts): scattering_events[ikpt] = len(self.scattering_qpoints) irrqgrid = np.asfortranarray(irrqgrid) @@ -1818,8 +1918,19 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec curr_ls[ikpt, iband] = 0.0 if(no_mode_mixing): lineshapes[ikpt,:,:,:] = curr_ls[ikpt,:,:,:] + tot_const_diag = 0.0 + tot_const_nondiag = 0.0 + for iband in range(len(lineshapes[ikpt])): + tot_const_diag += np.sum(lineshapes[ikpt][iband][iband])*(energies[2] - energies[1]) + for jband in range(len(lineshapes[ikpt][iband])): + print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[ikpt][iband][jband])*(energies[2] - energies[1])) + tot_const_nondiag += np.sum(lineshapes[ikpt][iband][jband])*(energies[2] - energies[1]) + print('Normalization constant diagonal: ', tot_const_diag) + print('Normalization constant all elements: ', tot_const_diag) else: lineshapes[ikpt,:,:] = curr_ls[ikpt,:,:]*2.0 + for iband in range(len(lineshapes[ikpt])): + print('Normalization constant: ', np.sum(lineshapes[ikpt][iband])*(energies[2] - energies[1])) with open('Qpoints_along_line', 'w+') as outfile: for ikpt in range(nkpts): @@ -1954,10 +2065,22 @@ def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smea if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - - kappa = np.einsum('ij,ijk,ijl,ij->kl',self.cp[cp_key],self.gvels.real,self.gvels.real,self.lifetimes[lf_key]) + + kappa = np.zeros((3,3)) + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + gvel = np.zeros_like(self.gvels[iqpt, iband]) + gvel_sum = np.zeros_like(kappa, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/float(len(self.rotations)) + kappa += self.cp[cp_key][iqpt][iband]*gvel_sum*self.lifetimes[lf_key][iqpt][iband] kappa += kappa.T - kappa = kappa/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + kappa = kappa/2.0*SSCHA_TO_MS**2 return kappa @@ -1981,34 +2104,62 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: self.get_heat_capacity(temperature) - scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*1.0e12*2.0*np.pi)/2.0 + scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*1.0e12*2.0*np.pi) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real + kappa_diag = np.zeros((3,3)) kappa_nondiag = np.zeros_like(kappa_diag) - for iqpt in range(self.nkpt): - for iband in range(self.nband): - if(self.freqs[iqpt, iband] != 0.0): - for jband in range(self.nband): - if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] != self.freqs[iqpt, iband] and iband != jband): - if(self.group_velocity_mode == 'wigner'): - vel_fact = 1.0 - else: - vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al - a1 = (self.freqs[iqpt, jband] + self.freqs[iqpt, iband])/4.0 - a2 = self.cp[cp_key][iqpt, iband]/self.freqs[iqpt, iband] + self.cp[cp_key][iqpt, jband]/self.freqs[iqpt, jband] - a3 = 0.5*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband]) - a4 = (self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2/4.0 - kappa_nondiag += a1*a2*a3/a4*np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real*vel_fact**2 - - kappa_nondiag = 2.0*kappa_nondiag/SSCHA_TO_THZ/1.0e12 + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): + #if(self.freqs[iqpt, jband] != 0.0 and np.abs(self.freqs[iqpt, jband] - self.freqs[iqpt, iband]) > 1.0e-4/SSCHA_TO_THZ and iband != jband): + if(self.freqs[iqpt, jband] != 0.0 and iband != jband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2 + a1 = (self.freqs[iqpt, jband] + self.freqs[iqpt, iband])/4.0 + a2 = self.cp[cp_key][iqpt, iband]/self.freqs[iqpt, iband] + self.cp[cp_key][iqpt, jband]/self.freqs[iqpt, jband] + a3 = 0.5*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband]) + a4 = ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband]))**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2/4.0 + kappa_nondiag += a1*a2*a3/a4*gvel_sum/2.0/np.pi/float(len(self.rotations))#*float(len(istar)) + elif(self.freqs[iqpt, jband] != 0.0 and iband == jband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2 + a1 = (self.freqs[iqpt, jband] + self.freqs[iqpt, iband])/4.0 + a2 = self.cp[cp_key][iqpt, iband]/self.freqs[iqpt, iband] + self.cp[cp_key][iqpt, jband]/self.freqs[iqpt, jband] + a3 = 0.5*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband]) + a4 = (self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2/4.0 + kappa_diag += a1*a2*a3/a4*gvel_sum/2.0/np.pi/float(len(self.rotations))#*float(len(istar)) + + kappa_diag = kappa_diag/SSCHA_TO_THZ/1.0e12 + kappa_nondiag = kappa_nondiag/SSCHA_TO_THZ/1.0e12 kappa_diag += kappa_diag.T kappa_nondiag += kappa_nondiag.T kappa_diag = kappa_diag/2.0*SSCHA_TO_MS**2#*(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 kappa_nondiag = kappa_nondiag/2.0*SSCHA_TO_MS**2#(SSCHA_TO_THZ*100.0*2.0*np.pi)**2 + return kappa_diag, kappa_nondiag ################################################################################################################################################################################ @@ -2031,31 +2182,48 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, ne, write_lifetimes, print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: self.get_heat_capacity(temperature) - scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12) + scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*2.0*np.pi*1.0e12)/2.0 if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real + #kappa_diag = np.einsum('ij,ijjk,ijjl,ij->kl',self.cp[cp_key],self.gvels.conj(),self.gvels,self.lifetimes[lf_key]).real pops = np.zeros_like(self.freqs) for iqpt in range(self.nkpt): for iband in range(self.nband): pops[iqpt, iband] = bose_einstein(self.freqs[iqpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = self.cp_mode) + kappa_diag = np.zeros((3,3)) kappa_nondiag = np.zeros_like(kappa_diag) for iqpt in range(self.nkpt): for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): for jband in range(self.nband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + else: + vel_fact = 1.0 if(self.freqs[iqpt, jband] != 0.0 and self.freqs[iqpt, jband] - self.freqs[iqpt, iband] != 0.0 and iband != jband): - if(self.group_velocity_mode == 'wigner'): - vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al - else: - vel_fact = 1.0 + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/vel_fact**2/float(len(self.rotations)) kappa_nondiag += self.freqs[iqpt, iband]*self.freqs[iqpt, jband]*(pops[iqpt, iband] - pops[iqpt, jband])/(self.freqs[iqpt, jband] - self.freqs[iqpt, iband])*\ - np.outer(self.gvels[iqpt, iband, jband].conj(), self.gvels[iqpt, jband, iband]).real/vel_fact**2*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ + gvel_sum*(scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])/\ ((self.freqs[iqpt,iband] - self.freqs[iqpt,jband])**2 + (scatt_rates[iqpt, iband] + scatt_rates[iqpt, jband])**2) - - kappa_nondiag = kappa_nondiag*HPLANCK/temperature + elif(self.freqs[iqpt, jband] != 0.0 and iband == jband): + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/vel_fact**2/float(len(self.rotations)) + kappa_diag += self.cp[cp_key][iqpt][iband]*gvel_sum*self.lifetimes[lf_key][iqpt][iband] + + kappa_nondiag = kappa_nondiag*HPLANCK/temperature/2.0/np.pi kappa_diag += kappa_diag.T kappa_nondiag += kappa_nondiag.T @@ -2317,9 +2485,21 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter print('Calculated SSCHA lifetimes in: ', time.time() - start_time) + ################################################################################################################################### + + def set_lifetimes(self, temperatures, lifetimes, freqs_shifts): + + for temperature in temperatures: + lf_key = format(temperature, '.1f') + if(lf_key in self.lifetimes.keys()): + print('WARNING! This will overwrite the previously set lifetimes!') + self.lifetimes[lf_key] = lifetimes + self.freqs_shifts[lf_key] = freqs_shifts + + #################################################################################################################################### - def setup_harmonic_properties(self, smearing_value = 0.00005): + def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = False): """ @@ -2338,11 +2518,13 @@ def setup_harmonic_properties(self, smearing_value = 0.00005): self.gvels[ikpt], self.ddms[ikpt] = self.get_group_velocity_finite_difference(kpt, self.freqs[ikpt], self.eigvecs[ikpt]) else: raise RuntimeError('Can not recognize the group_velocity_mode!') - self.gvels[ikpt] = self.symmetrize_group_velocity_by_index(self.gvels[ikpt], ikpt) + if(symmetrize): + self.gvels[ikpt] = self.symmetrize_group_velocity_by_index(self.gvels[ikpt], ikpt) - self.symmetrize_group_velocities_over_star() - self.check_group_velocities() - self.check_frequencies() + if(symmetrize): + self.symmetrize_group_velocities_over_star() + #self.check_group_velocities() + #self.check_frequencies() self.setup_smearings(smearing_value) print('Harmonic properties are set up!') @@ -2771,8 +2953,8 @@ def get_dynamical_matrix(self, q): """ uc_positions = self.dyn.structure.coords.copy() - for ruc in uc_positions: - ruc = find_minimum_vector(ruc, self.unitcell) + #for ruc in uc_positions: + # ruc = find_minimum_vector(ruc, self.unitcell) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat From 781fbe4d69711fa5a6900f122f48af317932dd77 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 17 Nov 2022 15:08:37 +0100 Subject: [PATCH 047/204] Added the new units HA_TO_EV --- cellconstructor/Units.py | 1 + setup.py | 2 +- tests/TestStrainConfiguration/strained_dyn | 1606 ++++++++++---------- 3 files changed, 805 insertions(+), 804 deletions(-) diff --git a/cellconstructor/Units.py b/cellconstructor/Units.py index 91d2a766..88ee548f 100644 --- a/cellconstructor/Units.py +++ b/cellconstructor/Units.py @@ -21,6 +21,7 @@ HBAR = np.float64(0.06465415105180661) K_B = np.float64(8.617330337217213e-05) RY_TO_EV = np.float64(13.605693012183622) +HA_TO_EV = 2 * RY_TO_EV RY_PER_BOHR3_TO_GPA = 14710.513242194795 RY_PER_BOHR3_TO_EV_PER_A3 = 91.81576765360094 RY_TO_KELVIN = RY_TO_EV / K_B diff --git a/setup.py b/setup.py index 6bab55d1..393baeec 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ setup( name = "CellConstructor", - version = "1.1", + version = "1.2.1", description = "Python utilities that is interfaced with ASE for atomic crystal analysis", author = "Lorenzo Monacelli", url = "https://github.com/mesonepigreco/CellConstructor", diff --git a/tests/TestStrainConfiguration/strained_dyn b/tests/TestStrainConfiguration/strained_dyn index 21741a90..0b0e8846 100644 --- a/tests/TestStrainConfiguration/strained_dyn +++ b/tests/TestStrainConfiguration/strained_dyn @@ -25,1006 +25,1006 @@ Basis vectors q = ( 0.000000000000 0.000000000000 0.000000000000 ) 1 1 - 0.0723775009917376 0.0000000000000000 0.0000000000000012 0.0000000000000000 0.0000000000000011 0.0000000000000000 - 0.0000000000000012 0.0000000000000000 0.3831399905936577 0.0000000000000000 0.0800072256509283 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 0.0800072256509283 0.0000000000000000 0.4293434337307471 0.0000000000000000 + 0.0723775009917373 0.0000000000000000 0.0000000000000009 0.0000000000000000 0.0000000000000004 0.0000000000000000 + 0.0000000000000009 0.0000000000000000 0.3831399905936629 0.0000000000000000 0.0800072256509417 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0800072256509417 0.0000000000000000 0.4293434337307540 0.0000000000000000 1 2 - -0.0251057439413784 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000005 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0569567699834675 0.0000000000000000 -0.0058150573711706 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0222771411146704 0.0000000000000000 -0.2988598772525898 0.0000000000000000 + -0.0251057439413787 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 -0.0569567699834664 0.0000000000000000 -0.0058150573711815 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0222771411146684 0.0000000000000000 -0.2988598772525919 0.0000000000000000 1 3 - -0.0289738345959187 0.0000000000000000 -0.0000000000000013 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.2820802915433023 0.0000000000000000 -0.0527306161696206 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0884826303559269 0.0000000000000000 -0.0739447334126166 0.0000000000000000 + -0.0289738345959185 0.0000000000000000 -0.0000000000000009 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.2820802915433075 0.0000000000000000 -0.0527306161696237 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0884826303559393 0.0000000000000000 -0.0739447334126185 0.0000000000000000 1 4 - -0.0373686571560767 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000005 0.0000000000000000 - -0.0000000000000286 0.0000000000000000 -0.0336428001202010 0.0000000000000000 -0.0041894809945674 0.0000000000000000 - -0.0000000000000139 0.0000000000000000 -0.0044397818519523 0.0000000000000000 0.0041303780996508 0.0000000000000000 + -0.0373686571560713 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000202 0.0000000000000000 -0.0336428001201908 0.0000000000000000 -0.0041894809945791 0.0000000000000000 + -0.0000000000000050 0.0000000000000000 -0.0044397818519440 0.0000000000000000 0.0041303780996453 0.0000000000000000 1 5 - 0.0079739154089291 0.0000000000000000 -0.0168418597307733 0.0000000000000000 0.0106690755761893 0.0000000000000000 - -0.0100652146645601 0.0000000000000000 -0.0099918936929156 0.0000000000000000 -0.0069122209428977 0.0000000000000000 - -0.0036706343437405 0.0000000000000000 -0.0005259246072782 0.0000000000000000 -0.0156150191112111 0.0000000000000000 + 0.0079739154089267 0.0000000000000000 -0.0168418597307717 0.0000000000000000 0.0106690755761885 0.0000000000000000 + -0.0100652146645538 0.0000000000000000 -0.0099918936929229 0.0000000000000000 -0.0069122209428933 0.0000000000000000 + -0.0036706343437367 0.0000000000000000 -0.0005259246072792 0.0000000000000000 -0.0156150191112106 0.0000000000000000 1 6 - 0.0079739154089278 0.0000000000000000 0.0168418597307725 0.0000000000000000 -0.0106690755761886 0.0000000000000000 - 0.0100652146645852 0.0000000000000000 -0.0099918936929004 0.0000000000000000 -0.0069122209429071 0.0000000000000000 - 0.0036706343437532 0.0000000000000000 -0.0005259246072706 0.0000000000000000 -0.0156150191112160 0.0000000000000000 + 0.0079739154089256 0.0000000000000000 0.0168418597307711 0.0000000000000000 -0.0106690755761881 0.0000000000000000 + 0.0100652146645725 0.0000000000000000 -0.0099918936929108 0.0000000000000000 -0.0069122209429007 0.0000000000000000 + 0.0036706343437412 0.0000000000000000 -0.0005259246072760 0.0000000000000000 -0.0156150191112127 0.0000000000000000 1 7 - 0.0015706027157735 0.0000000000000000 0.0000000000000015 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0058994142114998 0.0000000000000000 0.0129555088579347 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0129555088579457 0.0000000000000000 -0.0025061456783193 0.0000000000000000 + 0.0015706027157736 0.0000000000000000 0.0000000000000013 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0058994142114985 0.0000000000000000 0.0129555088579418 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0129555088579327 0.0000000000000000 -0.0025061456783197 0.0000000000000000 1 8 - -0.0018152750012300 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0012476417535556 0.0000000000000000 -0.0078942408875751 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0002039213450288 0.0000000000000000 0.0145769254785634 0.0000000000000000 + -0.0018152750012302 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000007 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0012476417535534 0.0000000000000000 -0.0078942408875820 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0002039213450287 0.0000000000000000 0.0145769254785594 0.0000000000000000 1 9 - -0.0016399265604469 0.0000000000000000 -0.0000000000000011 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0035091911501685 0.0000000000000000 -0.0021722504817067 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0074822204968758 0.0000000000000000 0.0003426041600637 0.0000000000000000 + -0.0016399265604469 0.0000000000000000 -0.0000000000000010 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0035091911501687 0.0000000000000000 -0.0021722504817093 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0074822204968633 0.0000000000000000 0.0003426041600677 0.0000000000000000 1 10 - 0.0078082955673484 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000126 0.0000000000000000 0.0119074076296553 0.0000000000000000 -0.0034942738523579 0.0000000000000000 - -0.0000000000000024 0.0000000000000000 0.0044778895271319 0.0000000000000000 -0.0367974389514135 0.0000000000000000 + 0.0078082955673492 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000011 0.0000000000000000 + -0.0000000000000095 0.0000000000000000 0.0119074076296581 0.0000000000000000 -0.0034942738523537 0.0000000000000000 + 0.0000000000000029 0.0000000000000000 0.0044778895271369 0.0000000000000000 -0.0367974389514098 0.0000000000000000 1 11 - -0.0014003952261869 0.0000000000000000 0.0002449744821628 0.0000000000000000 -0.0015206472447128 0.0000000000000000 - -0.0091891495399388 0.0000000000000000 -0.0030108060126908 0.0000000000000000 -0.0014211831836475 0.0000000000000000 - -0.0007217572183772 0.0000000000000000 -0.0035553985811578 0.0000000000000000 -0.0025275585661347 0.0000000000000000 + -0.0014003952261861 0.0000000000000000 0.0002449744821626 0.0000000000000000 -0.0015206472447131 0.0000000000000000 + -0.0091891495399317 0.0000000000000000 -0.0030108060126926 0.0000000000000000 -0.0014211831836486 0.0000000000000000 + -0.0007217572183791 0.0000000000000000 -0.0035553985811589 0.0000000000000000 -0.0025275585661352 0.0000000000000000 1 12 - -0.0014003952261867 0.0000000000000000 -0.0002449744821631 0.0000000000000000 0.0015206472447128 0.0000000000000000 - 0.0091891495399492 0.0000000000000000 -0.0030108060126839 0.0000000000000000 -0.0014211831836433 0.0000000000000000 - 0.0007217572183790 0.0000000000000000 -0.0035553985811565 0.0000000000000000 -0.0025275585661339 0.0000000000000000 + -0.0014003952261879 0.0000000000000000 -0.0002449744821634 0.0000000000000000 0.0015206472447121 0.0000000000000000 + 0.0091891495399399 0.0000000000000000 -0.0030108060126880 0.0000000000000000 -0.0014211831836464 0.0000000000000000 + 0.0007217572183766 0.0000000000000000 -0.0035553985811604 0.0000000000000000 -0.0025275585661368 0.0000000000000000 2 1 - -0.0251057439413784 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000004 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0569567699834675 0.0000000000000000 0.0222771411146704 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 -0.0058150573711706 0.0000000000000000 -0.2988598772525898 0.0000000000000000 + -0.0251057439413787 0.0000000000000000 0.0000000000000011 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0569567699834664 0.0000000000000000 0.0222771411146684 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0058150573711815 0.0000000000000000 -0.2988598772525920 0.0000000000000000 2 2 - 0.0352255604087121 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0577498980966769 0.0000000000000000 0.0004642893512920 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0004642893512920 0.0000000000000000 0.2960907478396980 0.0000000000000000 + 0.0352255604087121 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0577498980966746 0.0000000000000000 0.0004642893512919 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0004642893512919 0.0000000000000000 0.2960907478396961 0.0000000000000000 2 3 - 0.0037861455182865 0.0000000000000000 -0.0000000000000009 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0282119025677913 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0049287602283752 0.0000000000000000 -0.0033792838522546 0.0000000000000000 + 0.0037861455182865 0.0000000000000000 -0.0000000000000006 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0103751426308787 0.0000000000000000 -0.0282119025677887 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0049287602283657 0.0000000000000000 -0.0033792838522517 0.0000000000000000 2 4 - -0.0149643881777200 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000005 0.0000000000000000 - 0.0000000000000012 0.0000000000000000 -0.0085647327830297 0.0000000000000000 0.0044261389355767 0.0000000000000000 - 0.0000000000000029 0.0000000000000000 0.0009466269410053 0.0000000000000000 0.0064890897647952 0.0000000000000000 + -0.0149643881777186 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0044261389355785 0.0000000000000000 + -0.0000000000000008 0.0000000000000000 0.0009466269410001 0.0000000000000000 0.0064890897647976 0.0000000000000000 2 5 - 0.0053960771921636 0.0000000000000000 -0.0027777266316761 0.0000000000000000 -0.0010754919735287 0.0000000000000000 - -0.0041883714492639 0.0000000000000000 0.0037383917967293 0.0000000000000000 -0.0001605357525129 0.0000000000000000 - 0.0052382113260865 0.0000000000000000 0.0007249474944334 0.0000000000000000 -0.0008206821613043 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 -0.0027777266316762 0.0000000000000000 -0.0010754919735294 0.0000000000000000 + -0.0041883714492634 0.0000000000000000 0.0037383917967313 0.0000000000000000 -0.0001605357525139 0.0000000000000000 + 0.0052382113260860 0.0000000000000000 0.0007249474944342 0.0000000000000000 -0.0008206821613049 0.0000000000000000 2 6 - 0.0053960771921633 0.0000000000000000 0.0027777266316760 0.0000000000000000 0.0010754919735292 0.0000000000000000 - 0.0041883714492627 0.0000000000000000 0.0037383917967289 0.0000000000000000 -0.0001605357525125 0.0000000000000000 - -0.0052382113260896 0.0000000000000000 0.0007249474944314 0.0000000000000000 -0.0008206821613030 0.0000000000000000 + 0.0053960771921624 0.0000000000000000 0.0027777266316753 0.0000000000000000 0.0010754919735291 0.0000000000000000 + 0.0041883714492625 0.0000000000000000 0.0037383917967304 0.0000000000000000 -0.0001605357525135 0.0000000000000000 + -0.0052382113260854 0.0000000000000000 0.0007249474944347 0.0000000000000000 -0.0008206821613051 0.0000000000000000 2 7 - -0.0018152750012298 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0012476417535541 0.0000000000000000 0.0002039213450280 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0078942408875844 0.0000000000000000 0.0145769254785603 0.0000000000000000 + -0.0018152750012295 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0012476417535550 0.0000000000000000 0.0002039213450275 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0078942408875715 0.0000000000000000 0.0145769254785630 0.0000000000000000 2 8 - 0.0036353210827943 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0001181663659072 0.0000000000000000 -0.0026161584162164 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0026161584162165 0.0000000000000000 -0.0221544638345921 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0001181663659069 0.0000000000000000 -0.0026161584162162 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0026161584162164 0.0000000000000000 -0.0221544638345910 0.0000000000000000 2 9 - -0.0006990068039687 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0007453998223717 0.0000000000000000 0.0020862975258863 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0005005588825958 0.0000000000000000 -0.0034474484778370 0.0000000000000000 + -0.0006990068039689 0.0000000000000000 -0.0000000000000007 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0007453998223711 0.0000000000000000 0.0020862975258870 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0005005588826071 0.0000000000000000 -0.0034474484778407 0.0000000000000000 2 10 - -0.0158629633765103 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 -0.0142572303934455 0.0000000000000000 0.0025026894102758 0.0000000000000000 - -0.0000000000000012 0.0000000000000000 -0.0110402408679752 0.0000000000000000 0.0060798140623873 0.0000000000000000 + -0.0158629633765113 0.0000000000000000 0.0000000000000008 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 -0.0142572303934425 0.0000000000000000 0.0025026894102773 0.0000000000000000 + -0.0000000000000058 0.0000000000000000 -0.0110402408679744 0.0000000000000000 0.0060798140623874 0.0000000000000000 2 11 - 0.0025040980237169 0.0000000000000000 -0.0023164619816241 0.0000000000000000 0.0038518265447296 0.0000000000000000 - 0.0006119532508384 0.0000000000000000 0.0011510144726841 0.0000000000000000 -0.0004056725610947 0.0000000000000000 - -0.0017406728581262 0.0000000000000000 0.0039561444256966 0.0000000000000000 0.0031229275970287 0.0000000000000000 + 0.0025040980237175 0.0000000000000000 -0.0023164619816248 0.0000000000000000 0.0038518265447299 0.0000000000000000 + 0.0006119532508366 0.0000000000000000 0.0011510144726826 0.0000000000000000 -0.0004056725610959 0.0000000000000000 + -0.0017406728581228 0.0000000000000000 0.0039561444256946 0.0000000000000000 0.0031229275970274 0.0000000000000000 2 12 - 0.0025040980237166 0.0000000000000000 0.0023164619816241 0.0000000000000000 -0.0038518265447301 0.0000000000000000 - -0.0006119532508387 0.0000000000000000 0.0011510144726835 0.0000000000000000 -0.0004056725610949 0.0000000000000000 - 0.0017406728581268 0.0000000000000000 0.0039561444256971 0.0000000000000000 0.0031229275970290 0.0000000000000000 + 0.0025040980237168 0.0000000000000000 0.0023164619816240 0.0000000000000000 -0.0038518265447296 0.0000000000000000 + -0.0006119532508375 0.0000000000000000 0.0011510144726821 0.0000000000000000 -0.0004056725610957 0.0000000000000000 + 0.0017406728581278 0.0000000000000000 0.0039561444256975 0.0000000000000000 0.0031229275970291 0.0000000000000000 3 1 - -0.0289738345959187 0.0000000000000000 0.0000000000000003 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000013 0.0000000000000000 -0.2820802915433023 0.0000000000000000 -0.0884826303559269 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0527306161696206 0.0000000000000000 -0.0739447334126166 0.0000000000000000 + -0.0289738345959185 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000009 0.0000000000000000 -0.2820802915433075 0.0000000000000000 -0.0884826303559393 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0527306161696237 0.0000000000000000 -0.0739447334126185 0.0000000000000000 3 2 - 0.0037861455182865 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000009 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0049287602283752 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0282119025677913 0.0000000000000000 -0.0033792838522546 0.0000000000000000 + 0.0037861455182865 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0103751426308787 0.0000000000000000 -0.0049287602283657 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0282119025677887 0.0000000000000000 -0.0033792838522517 0.0000000000000000 3 3 - 0.0365782981378754 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.2729248902175021 0.0000000000000000 0.0713458205553453 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0713458205553453 0.0000000000000000 0.0798291225288888 0.0000000000000000 + 0.0365782981378747 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.2729248902175087 0.0000000000000000 0.0713458205553473 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0713458205553473 0.0000000000000000 0.0798291225288867 0.0000000000000000 3 4 - -0.0193793176120040 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000280 0.0000000000000000 0.0128264092257559 0.0000000000000000 0.0093892601393072 0.0000000000000000 - 0.0000000000000081 0.0000000000000000 0.0108019320579830 0.0000000000000000 -0.0127958810116058 0.0000000000000000 + -0.0193793176120027 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000176 0.0000000000000000 0.0128264092257460 0.0000000000000000 0.0093892601393180 0.0000000000000000 + 0.0000000000000041 0.0000000000000000 0.0108019320579820 0.0000000000000000 -0.0127958810116038 0.0000000000000000 3 5 - 0.0043670482201909 0.0000000000000000 0.0062527546419648 0.0000000000000000 0.0032245610064168 0.0000000000000000 - 0.0073649825438563 0.0000000000000000 -0.0050060184798341 0.0000000000000000 0.0046134194019383 0.0000000000000000 - 0.0069798143243277 0.0000000000000000 -0.0003322634792029 0.0000000000000000 0.0072531804468943 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 0.0062527546419651 0.0000000000000000 0.0032245610064168 0.0000000000000000 + 0.0073649825438505 0.0000000000000000 -0.0050060184798300 0.0000000000000000 0.0046134194019358 0.0000000000000000 + 0.0069798143243255 0.0000000000000000 -0.0003322634792029 0.0000000000000000 0.0072531804468945 0.0000000000000000 3 6 - 0.0043670482201907 0.0000000000000000 -0.0062527546419651 0.0000000000000000 -0.0032245610064170 0.0000000000000000 - -0.0073649825438808 0.0000000000000000 -0.0050060184798494 0.0000000000000000 0.0046134194019475 0.0000000000000000 - -0.0069798143243349 0.0000000000000000 -0.0003322634792069 0.0000000000000000 0.0072531804468972 0.0000000000000000 + 0.0043670482201902 0.0000000000000000 -0.0062527546419650 0.0000000000000000 -0.0032245610064164 0.0000000000000000 + -0.0073649825438664 0.0000000000000000 -0.0050060184798397 0.0000000000000000 0.0046134194019418 0.0000000000000000 + -0.0069798143243292 0.0000000000000000 -0.0003322634792054 0.0000000000000000 0.0072531804468961 0.0000000000000000 3 7 - -0.0016399265604472 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0035091911501692 0.0000000000000000 -0.0074822204968671 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0021722504817084 0.0000000000000000 0.0003426041600671 0.0000000000000000 + -0.0016399265604474 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0035091911501681 0.0000000000000000 -0.0074822204968739 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0021722504817079 0.0000000000000000 0.0003426041600652 0.0000000000000000 3 8 - -0.0006990068039681 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0007453998223712 0.0000000000000000 -0.0005005588826037 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0020862975258867 0.0000000000000000 -0.0034474484778391 0.0000000000000000 + -0.0006990068039682 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0007453998223729 0.0000000000000000 -0.0005005588825975 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778374 0.0000000000000000 3 9 - 0.0025844652016199 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0002706095090059 0.0000000000000000 0.0025129031626719 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0025129031626724 0.0000000000000000 -0.0015754786010475 0.0000000000000000 + 0.0025844652016200 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0002706095090059 0.0000000000000000 0.0025129031626737 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0025129031626718 0.0000000000000000 -0.0015754786010474 0.0000000000000000 3 10 - -0.0001599946965688 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000126 0.0000000000000000 0.0004054668963131 0.0000000000000000 0.0101430343307470 0.0000000000000000 - 0.0000000000000033 0.0000000000000000 0.0081775121522256 0.0000000000000000 0.0079899884223510 0.0000000000000000 + -0.0001599946965682 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000070 0.0000000000000000 0.0004054668963083 0.0000000000000000 0.0101430343307429 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 0.0081775121522211 0.0000000000000000 0.0079899884223479 0.0000000000000000 3 11 - -0.0004154624427381 0.0000000000000000 0.0012439381262111 0.0000000000000000 0.0022873936225506 0.0000000000000000 - 0.0127928624961743 0.0000000000000000 -0.0007025897616770 0.0000000000000000 -0.0006118410528849 0.0000000000000000 - 0.0050585024151193 0.0000000000000000 -0.0031456369018490 0.0000000000000000 -0.0037626256179484 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225502 0.0000000000000000 + 0.0127928624961699 0.0000000000000000 -0.0007025897616743 0.0000000000000000 -0.0006118410528829 0.0000000000000000 + 0.0050585024151198 0.0000000000000000 -0.0031456369018469 0.0000000000000000 -0.0037626256179469 0.0000000000000000 3 12 - -0.0004154624427380 0.0000000000000000 -0.0012439381262113 0.0000000000000000 -0.0022873936225503 0.0000000000000000 - -0.0127928624961850 0.0000000000000000 -0.0007025897616837 0.0000000000000000 -0.0006118410528889 0.0000000000000000 - -0.0050585024151219 0.0000000000000000 -0.0031456369018512 0.0000000000000000 -0.0037626256179495 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 -0.0012439381262114 0.0000000000000000 -0.0022873936225505 0.0000000000000000 + -0.0127928624961760 0.0000000000000000 -0.0007025897616779 0.0000000000000000 -0.0006118410528851 0.0000000000000000 + -0.0050585024151207 0.0000000000000000 -0.0031456369018475 0.0000000000000000 -0.0037626256179469 0.0000000000000000 4 1 - -0.0373686571560767 0.0000000000000000 -0.0000000000000286 0.0000000000000000 -0.0000000000000139 0.0000000000000000 - 0.0000000000000010 0.0000000000000000 -0.0336428001202010 0.0000000000000000 -0.0044397818519523 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 -0.0041894809945674 0.0000000000000000 0.0041303780996508 0.0000000000000000 + -0.0373686571560713 0.0000000000000000 -0.0000000000000202 0.0000000000000000 -0.0000000000000050 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0336428001201908 0.0000000000000000 -0.0044397818519440 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0041894809945791 0.0000000000000000 0.0041303780996453 0.0000000000000000 4 2 - -0.0149643881777200 0.0000000000000000 0.0000000000000012 0.0000000000000000 0.0000000000000029 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0085647327830297 0.0000000000000000 0.0009466269410053 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 0.0044261389355767 0.0000000000000000 0.0064890897647952 0.0000000000000000 + -0.0149643881777186 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000008 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0009466269410001 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0044261389355785 0.0000000000000000 0.0064890897647976 0.0000000000000000 4 3 - -0.0193793176120040 0.0000000000000000 0.0000000000000280 0.0000000000000000 0.0000000000000081 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0128264092257559 0.0000000000000000 0.0108019320579829 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0093892601393072 0.0000000000000000 -0.0127958810116058 0.0000000000000000 + -0.0193793176120027 0.0000000000000000 0.0000000000000176 0.0000000000000000 0.0000000000000041 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0128264092257460 0.0000000000000000 0.0108019320579820 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0093892601393180 0.0000000000000000 -0.0127958810116038 0.0000000000000000 4 4 - 0.4834443802760264 0.0000000000000000 -0.0000000000000079 0.0000000000000000 0.0000000000000079 0.0000000000000000 - -0.0000000000000079 0.0000000000000000 0.2588422264936566 0.0000000000000000 -0.1308110718530649 0.0000000000000000 - 0.0000000000000079 0.0000000000000000 -0.1308110718530649 0.0000000000000000 0.1639030178691331 0.0000000000000000 + 0.4834443802759689 0.0000000000000000 -0.0000000000000128 0.0000000000000000 0.0000000000000093 0.0000000000000000 + -0.0000000000000128 0.0000000000000000 0.2588422264936643 0.0000000000000000 -0.1308110718530715 0.0000000000000000 + 0.0000000000000093 0.0000000000000000 -0.1308110718530715 0.0000000000000000 0.1639030178691390 0.0000000000000000 4 5 - -0.2042620382021383 0.0000000000000000 0.1111612914471844 0.0000000000000000 -0.0678004081048838 0.0000000000000000 - 0.0961493426419493 0.0000000000000000 -0.1150790588758495 0.0000000000000000 0.0626077946132185 0.0000000000000000 - -0.0680988033808465 0.0000000000000000 0.0633030715249478 0.0000000000000000 -0.0673384314526813 0.0000000000000000 + -0.2042620382021134 0.0000000000000000 0.1111612914471694 0.0000000000000000 -0.0678004081048752 0.0000000000000000 + 0.0961493426419503 0.0000000000000000 -0.1150790588758547 0.0000000000000000 0.0626077946132216 0.0000000000000000 + -0.0680988033808478 0.0000000000000000 0.0633030715249513 0.0000000000000000 -0.0673384314526836 0.0000000000000000 4 6 - -0.2042620382021234 0.0000000000000000 -0.1111612914471742 0.0000000000000000 0.0678004081048784 0.0000000000000000 - -0.0961493426419422 0.0000000000000000 -0.1150790588758454 0.0000000000000000 0.0626077946132157 0.0000000000000000 - 0.0680988033808391 0.0000000000000000 0.0633030715249432 0.0000000000000000 -0.0673384314526784 0.0000000000000000 + -0.2042620382020952 0.0000000000000000 -0.1111612914471573 0.0000000000000000 0.0678004081048672 0.0000000000000000 + -0.0961493426419393 0.0000000000000000 -0.1150790588758474 0.0000000000000000 0.0626077946132176 0.0000000000000000 + 0.0680988033808392 0.0000000000000000 0.0633030715249466 0.0000000000000000 -0.0673384314526808 0.0000000000000000 4 7 - 0.0078082955673489 0.0000000000000000 -0.0000000000000115 0.0000000000000000 -0.0000000000000069 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0119074076296530 0.0000000000000000 -0.0044778895271359 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0034942738523609 0.0000000000000000 -0.0367974389514110 0.0000000000000000 + 0.0078082955673498 0.0000000000000000 -0.0000000000000234 0.0000000000000000 0.0000000000000023 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0119074076296463 0.0000000000000000 -0.0044778895271283 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0034942738523667 0.0000000000000000 -0.0367974389514158 0.0000000000000000 4 8 - -0.0158629633765114 0.0000000000000000 0.0000000000000011 0.0000000000000000 0.0000000000000100 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0142572303934383 0.0000000000000000 0.0110402408679705 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0025026894102802 0.0000000000000000 0.0060798140623905 0.0000000000000000 + -0.0158629633765101 0.0000000000000000 0.0000000000000012 0.0000000000000000 0.0000000000000052 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 -0.0142572303934406 0.0000000000000000 0.0110402408679694 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0025026894102787 0.0000000000000000 0.0060798140623915 0.0000000000000000 4 9 - -0.0001599946965684 0.0000000000000000 0.0000000000000112 0.0000000000000000 -0.0000000000000023 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0004054668963109 0.0000000000000000 -0.0081775121522167 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0101430343307466 0.0000000000000000 0.0079899884223457 0.0000000000000000 + -0.0001599946965684 0.0000000000000000 0.0000000000000197 0.0000000000000000 -0.0000000000000052 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0004054668963187 0.0000000000000000 -0.0081775121522221 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0101430343307523 0.0000000000000000 0.0079899884223495 0.0000000000000000 4 10 - 0.0039008143595911 0.0000000000000000 -0.0000000000000069 0.0000000000000000 -0.0000000000000047 0.0000000000000000 - -0.0000000000000040 0.0000000000000000 -0.0008485805837897 0.0000000000000000 -0.0030686652718400 0.0000000000000000 - 0.0000000000000046 0.0000000000000000 0.0030686652718395 0.0000000000000000 -0.0082838582595769 0.0000000000000000 + 0.0039008143595911 0.0000000000000000 -0.0000000000000132 0.0000000000000000 -0.0000000000000089 0.0000000000000000 + -0.0000000000000082 0.0000000000000000 -0.0008485805837892 0.0000000000000000 -0.0030686652718412 0.0000000000000000 + 0.0000000000000041 0.0000000000000000 0.0030686652718371 0.0000000000000000 -0.0082838582595772 0.0000000000000000 4 11 - 0.0005529569781357 0.0000000000000000 0.0006881224323731 0.0000000000000000 0.0009938270035010 0.0000000000000000 - -0.0004060563613263 0.0000000000000000 0.0017449768597133 0.0000000000000000 0.0014852637978340 0.0000000000000000 - -0.0028171359308497 0.0000000000000000 0.0003308975272964 0.0000000000000000 0.0019808748951326 0.0000000000000000 + 0.0005529569781313 0.0000000000000000 0.0006881224323749 0.0000000000000000 0.0009938270035023 0.0000000000000000 + -0.0004060563613244 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0014852637978335 0.0000000000000000 + -0.0028171359308505 0.0000000000000000 0.0003308975272967 0.0000000000000000 0.0019808748951335 0.0000000000000000 4 12 - 0.0005529569781457 0.0000000000000000 -0.0006881224323643 0.0000000000000000 -0.0009938270034956 0.0000000000000000 - 0.0004060563613303 0.0000000000000000 0.0017449768597157 0.0000000000000000 0.0014852637978359 0.0000000000000000 - 0.0028171359308457 0.0000000000000000 0.0003308975272937 0.0000000000000000 0.0019808748951316 0.0000000000000000 + 0.0005529569781507 0.0000000000000000 -0.0006881224323619 0.0000000000000000 -0.0009938270034943 0.0000000000000000 + 0.0004060563613315 0.0000000000000000 0.0017449768597169 0.0000000000000000 0.0014852637978357 0.0000000000000000 + 0.0028171359308470 0.0000000000000000 0.0003308975272944 0.0000000000000000 0.0019808748951313 0.0000000000000000 5 1 - 0.0079739154089291 0.0000000000000000 -0.0100652146645601 0.0000000000000000 -0.0036706343437405 0.0000000000000000 - -0.0168418597307733 0.0000000000000000 -0.0099918936929156 0.0000000000000000 -0.0005259246072782 0.0000000000000000 - 0.0106690755761893 0.0000000000000000 -0.0069122209428977 0.0000000000000000 -0.0156150191112111 0.0000000000000000 + 0.0079739154089267 0.0000000000000000 -0.0100652146645538 0.0000000000000000 -0.0036706343437367 0.0000000000000000 + -0.0168418597307717 0.0000000000000000 -0.0099918936929229 0.0000000000000000 -0.0005259246072792 0.0000000000000000 + 0.0106690755761885 0.0000000000000000 -0.0069122209428933 0.0000000000000000 -0.0156150191112106 0.0000000000000000 5 2 - 0.0053960771921636 0.0000000000000000 -0.0041883714492639 0.0000000000000000 0.0052382113260865 0.0000000000000000 - -0.0027777266316761 0.0000000000000000 0.0037383917967293 0.0000000000000000 0.0007249474944334 0.0000000000000000 - -0.0010754919735287 0.0000000000000000 -0.0001605357525129 0.0000000000000000 -0.0008206821613043 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 -0.0041883714492634 0.0000000000000000 0.0052382113260860 0.0000000000000000 + -0.0027777266316762 0.0000000000000000 0.0037383917967313 0.0000000000000000 0.0007249474944342 0.0000000000000000 + -0.0010754919735294 0.0000000000000000 -0.0001605357525139 0.0000000000000000 -0.0008206821613049 0.0000000000000000 5 3 - 0.0043670482201909 0.0000000000000000 0.0073649825438563 0.0000000000000000 0.0069798143243277 0.0000000000000000 - 0.0062527546419648 0.0000000000000000 -0.0050060184798341 0.0000000000000000 -0.0003322634792029 0.0000000000000000 - 0.0032245610064168 0.0000000000000000 0.0046134194019383 0.0000000000000000 0.0072531804468943 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 0.0073649825438505 0.0000000000000000 0.0069798143243255 0.0000000000000000 + 0.0062527546419651 0.0000000000000000 -0.0050060184798300 0.0000000000000000 -0.0003322634792029 0.0000000000000000 + 0.0032245610064168 0.0000000000000000 0.0046134194019358 0.0000000000000000 0.0072531804468945 0.0000000000000000 5 4 - -0.2042620382021383 0.0000000000000000 0.0961493426419494 0.0000000000000000 -0.0680988033808465 0.0000000000000000 - 0.1111612914471844 0.0000000000000000 -0.1150790588758495 0.0000000000000000 0.0633030715249478 0.0000000000000000 - -0.0678004081048838 0.0000000000000000 0.0626077946132185 0.0000000000000000 -0.0673384314526813 0.0000000000000000 + -0.2042620382021134 0.0000000000000000 0.0961493426419503 0.0000000000000000 -0.0680988033808478 0.0000000000000000 + 0.1111612914471695 0.0000000000000000 -0.1150790588758547 0.0000000000000000 0.0633030715249513 0.0000000000000000 + -0.0678004081048752 0.0000000000000000 0.0626077946132216 0.0000000000000000 -0.0673384314526836 0.0000000000000000 5 5 - 0.2174594979186394 0.0000000000000000 -0.0954682304260302 0.0000000000000000 0.0600636707989616 0.0000000000000000 - -0.0954682304260302 0.0000000000000000 0.1104252604741451 0.0000000000000000 -0.0503426131734419 0.0000000000000000 - 0.0600636707989616 0.0000000000000000 -0.0503426131734419 0.0000000000000000 0.0677190190410538 0.0000000000000000 + 0.2174594979186329 0.0000000000000000 -0.0954682304260234 0.0000000000000000 0.0600636707989573 0.0000000000000000 + -0.0954682304260234 0.0000000000000000 0.1104252604741436 0.0000000000000000 -0.0503426131734412 0.0000000000000000 + 0.0600636707989573 0.0000000000000000 -0.0503426131734412 0.0000000000000000 0.0677190190410534 0.0000000000000000 5 6 - -0.0299583471230310 0.0000000000000000 0.0025306649736077 0.0000000000000000 0.0001964280885671 0.0000000000000000 - -0.0025306649736082 0.0000000000000000 0.0189330240079785 0.0000000000000000 -0.0130002466230914 0.0000000000000000 - -0.0001964280885671 0.0000000000000000 -0.0130002466230916 0.0000000000000000 0.0113735279572468 0.0000000000000000 + -0.0299583471230477 0.0000000000000000 0.0025306649736007 0.0000000000000000 0.0001964280885715 0.0000000000000000 + -0.0025306649736009 0.0000000000000000 0.0189330240079854 0.0000000000000000 -0.0130002466230954 0.0000000000000000 + -0.0001964280885709 0.0000000000000000 -0.0130002466230957 0.0000000000000000 0.0113735279572496 0.0000000000000000 5 7 - -0.0014003952261869 0.0000000000000000 -0.0091891495399319 0.0000000000000000 0.0007217572183878 0.0000000000000000 - 0.0002449744821623 0.0000000000000000 -0.0030108060126887 0.0000000000000000 0.0035553985811579 0.0000000000000000 - 0.0015206472447121 0.0000000000000000 0.0014211831836463 0.0000000000000000 -0.0025275585661353 0.0000000000000000 + -0.0014003952261870 0.0000000000000000 -0.0091891495399357 0.0000000000000000 0.0007217572183866 0.0000000000000000 + 0.0002449744821628 0.0000000000000000 -0.0030108060126879 0.0000000000000000 0.0035553985811564 0.0000000000000000 + 0.0015206472447120 0.0000000000000000 0.0014211831836455 0.0000000000000000 -0.0025275585661338 0.0000000000000000 5 8 - 0.0025040980237175 0.0000000000000000 0.0006119532508337 0.0000000000000000 0.0017406728581180 0.0000000000000000 - -0.0023164619816242 0.0000000000000000 0.0011510144726799 0.0000000000000000 -0.0039561444256917 0.0000000000000000 - -0.0038518265447292 0.0000000000000000 0.0004056725610973 0.0000000000000000 0.0031229275970255 0.0000000000000000 + 0.0025040980237170 0.0000000000000000 0.0006119532508351 0.0000000000000000 0.0017406728581190 0.0000000000000000 + -0.0023164619816241 0.0000000000000000 0.0011510144726812 0.0000000000000000 -0.0039561444256922 0.0000000000000000 + -0.0038518265447295 0.0000000000000000 0.0004056725610968 0.0000000000000000 0.0031229275970259 0.0000000000000000 5 9 - -0.0004154624427382 0.0000000000000000 0.0127928624961715 0.0000000000000000 -0.0050585024151236 0.0000000000000000 - 0.0012439381262114 0.0000000000000000 -0.0007025897616760 0.0000000000000000 0.0031456369018445 0.0000000000000000 - -0.0022873936225500 0.0000000000000000 0.0006118410528842 0.0000000000000000 -0.0037626256179448 0.0000000000000000 + -0.0004154624427383 0.0000000000000000 0.0127928624961753 0.0000000000000000 -0.0050585024151234 0.0000000000000000 + 0.0012439381262114 0.0000000000000000 -0.0007025897616783 0.0000000000000000 0.0031456369018466 0.0000000000000000 + -0.0022873936225497 0.0000000000000000 0.0006118410528855 0.0000000000000000 -0.0037626256179466 0.0000000000000000 5 10 - 0.0005529569781371 0.0000000000000000 -0.0004060563613260 0.0000000000000000 0.0028171359308499 0.0000000000000000 - 0.0006881224323712 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0003308975272955 0.0000000000000000 - -0.0009938270035004 0.0000000000000000 -0.0014852637978338 0.0000000000000000 0.0019808748951325 0.0000000000000000 + 0.0005529569781352 0.0000000000000000 -0.0004060563613216 0.0000000000000000 0.0028171359308520 0.0000000000000000 + 0.0006881224323728 0.0000000000000000 0.0017449768597111 0.0000000000000000 -0.0003308975272969 0.0000000000000000 + -0.0009938270035008 0.0000000000000000 -0.0014852637978326 0.0000000000000000 0.0019808748951336 0.0000000000000000 5 11 - -0.0001947154534039 0.0000000000000000 0.0001055444019321 0.0000000000000000 -0.0008285855530545 0.0000000000000000 - 0.0001055444019315 0.0000000000000000 -0.0022624521874624 0.0000000000000000 -0.0020902638812466 0.0000000000000000 - 0.0008285855530545 0.0000000000000000 0.0020902638812464 0.0000000000000000 0.0008479800149229 0.0000000000000000 + -0.0001947154534005 0.0000000000000000 0.0001055444019297 0.0000000000000000 -0.0008285855530559 0.0000000000000000 + 0.0001055444019295 0.0000000000000000 -0.0022624521874613 0.0000000000000000 -0.0020902638812461 0.0000000000000000 + 0.0008285855530556 0.0000000000000000 0.0020902638812462 0.0000000000000000 0.0008479800149218 0.0000000000000000 5 12 - -0.0020226399972410 0.0000000000000000 -0.0002383182140790 0.0000000000000000 -0.0001011648438942 0.0000000000000000 - 0.0002383182140790 0.0000000000000000 0.0000601515309643 0.0000000000000000 -0.0001507007232539 0.0000000000000000 - -0.0001011648438937 0.0000000000000000 0.0001507007232530 0.0000000000000000 -0.0022331838997254 0.0000000000000000 + -0.0020226399972430 0.0000000000000000 -0.0002383182140806 0.0000000000000000 -0.0001011648438952 0.0000000000000000 + 0.0002383182140800 0.0000000000000000 0.0000601515309646 0.0000000000000000 -0.0001507007232528 0.0000000000000000 + -0.0001011648438945 0.0000000000000000 0.0001507007232529 0.0000000000000000 -0.0022331838997255 0.0000000000000000 6 1 - 0.0079739154089278 0.0000000000000000 0.0100652146645852 0.0000000000000000 0.0036706343437532 0.0000000000000000 - 0.0168418597307725 0.0000000000000000 -0.0099918936929004 0.0000000000000000 -0.0005259246072706 0.0000000000000000 - -0.0106690755761886 0.0000000000000000 -0.0069122209429071 0.0000000000000000 -0.0156150191112160 0.0000000000000000 + 0.0079739154089256 0.0000000000000000 0.0100652146645725 0.0000000000000000 0.0036706343437412 0.0000000000000000 + 0.0168418597307711 0.0000000000000000 -0.0099918936929108 0.0000000000000000 -0.0005259246072760 0.0000000000000000 + -0.0106690755761881 0.0000000000000000 -0.0069122209429007 0.0000000000000000 -0.0156150191112127 0.0000000000000000 6 2 - 0.0053960771921633 0.0000000000000000 0.0041883714492627 0.0000000000000000 -0.0052382113260896 0.0000000000000000 - 0.0027777266316760 0.0000000000000000 0.0037383917967289 0.0000000000000000 0.0007249474944314 0.0000000000000000 - 0.0010754919735292 0.0000000000000000 -0.0001605357525125 0.0000000000000000 -0.0008206821613030 0.0000000000000000 + 0.0053960771921624 0.0000000000000000 0.0041883714492625 0.0000000000000000 -0.0052382113260854 0.0000000000000000 + 0.0027777266316753 0.0000000000000000 0.0037383917967304 0.0000000000000000 0.0007249474944347 0.0000000000000000 + 0.0010754919735291 0.0000000000000000 -0.0001605357525135 0.0000000000000000 -0.0008206821613051 0.0000000000000000 6 3 - 0.0043670482201907 0.0000000000000000 -0.0073649825438808 0.0000000000000000 -0.0069798143243349 0.0000000000000000 - -0.0062527546419651 0.0000000000000000 -0.0050060184798494 0.0000000000000000 -0.0003322634792069 0.0000000000000000 - -0.0032245610064170 0.0000000000000000 0.0046134194019475 0.0000000000000000 0.0072531804468972 0.0000000000000000 + 0.0043670482201902 0.0000000000000000 -0.0073649825438664 0.0000000000000000 -0.0069798143243292 0.0000000000000000 + -0.0062527546419650 0.0000000000000000 -0.0050060184798397 0.0000000000000000 -0.0003322634792054 0.0000000000000000 + -0.0032245610064164 0.0000000000000000 0.0046134194019418 0.0000000000000000 0.0072531804468961 0.0000000000000000 6 4 - -0.2042620382021234 0.0000000000000000 -0.0961493426419422 0.0000000000000000 0.0680988033808391 0.0000000000000000 - -0.1111612914471742 0.0000000000000000 -0.1150790588758454 0.0000000000000000 0.0633030715249432 0.0000000000000000 - 0.0678004081048784 0.0000000000000000 0.0626077946132157 0.0000000000000000 -0.0673384314526784 0.0000000000000000 + -0.2042620382020953 0.0000000000000000 -0.0961493426419393 0.0000000000000000 0.0680988033808392 0.0000000000000000 + -0.1111612914471574 0.0000000000000000 -0.1150790588758474 0.0000000000000000 0.0633030715249466 0.0000000000000000 + 0.0678004081048672 0.0000000000000000 0.0626077946132176 0.0000000000000000 -0.0673384314526808 0.0000000000000000 6 5 - -0.0299583471230310 0.0000000000000000 -0.0025306649736082 0.0000000000000000 -0.0001964280885671 0.0000000000000000 - 0.0025306649736077 0.0000000000000000 0.0189330240079785 0.0000000000000000 -0.0130002466230916 0.0000000000000000 - 0.0001964280885671 0.0000000000000000 -0.0130002466230914 0.0000000000000000 0.0113735279572468 0.0000000000000000 + -0.0299583471230477 0.0000000000000000 -0.0025306649736009 0.0000000000000000 -0.0001964280885709 0.0000000000000000 + 0.0025306649736007 0.0000000000000000 0.0189330240079854 0.0000000000000000 -0.0130002466230957 0.0000000000000000 + 0.0001964280885715 0.0000000000000000 -0.0130002466230954 0.0000000000000000 0.0113735279572496 0.0000000000000000 6 6 - 0.2174594979186258 0.0000000000000000 0.0954682304260214 0.0000000000000000 -0.0600636707989565 0.0000000000000000 - 0.0954682304260214 0.0000000000000000 0.1104252604741395 0.0000000000000000 -0.0503426131734387 0.0000000000000000 - -0.0600636707989565 0.0000000000000000 -0.0503426131734387 0.0000000000000000 0.0677190190410517 0.0000000000000000 + 0.2174594979186168 0.0000000000000000 0.0954682304260131 0.0000000000000000 -0.0600636707989507 0.0000000000000000 + 0.0954682304260131 0.0000000000000000 0.1104252604741363 0.0000000000000000 -0.0503426131734374 0.0000000000000000 + -0.0600636707989507 0.0000000000000000 -0.0503426131734374 0.0000000000000000 0.0677190190410512 0.0000000000000000 6 7 - -0.0014003952261872 0.0000000000000000 0.0091891495399424 0.0000000000000000 -0.0007217572183815 0.0000000000000000 - -0.0002449744821630 0.0000000000000000 -0.0030108060126824 0.0000000000000000 0.0035553985811619 0.0000000000000000 - -0.0015206472447121 0.0000000000000000 0.0014211831836421 0.0000000000000000 -0.0025275585661374 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 0.0091891495399560 0.0000000000000000 -0.0007217572183881 0.0000000000000000 + -0.0002449744821631 0.0000000000000000 -0.0030108060126753 0.0000000000000000 0.0035553985811555 0.0000000000000000 + -0.0015206472447118 0.0000000000000000 0.0014211831836384 0.0000000000000000 -0.0025275585661340 0.0000000000000000 6 8 - 0.0025040980237171 0.0000000000000000 -0.0006119532508350 0.0000000000000000 -0.0017406728581269 0.0000000000000000 - 0.0023164619816239 0.0000000000000000 0.0011510144726796 0.0000000000000000 -0.0039561444256971 0.0000000000000000 - 0.0038518265447294 0.0000000000000000 0.0004056725610981 0.0000000000000000 0.0031229275970289 0.0000000000000000 + 0.0025040980237164 0.0000000000000000 -0.0006119532508362 0.0000000000000000 -0.0017406728581238 0.0000000000000000 + 0.0023164619816234 0.0000000000000000 0.0011510144726806 0.0000000000000000 -0.0039561444256951 0.0000000000000000 + 0.0038518265447295 0.0000000000000000 0.0004056725610968 0.0000000000000000 0.0031229275970278 0.0000000000000000 6 9 - -0.0004154624427381 0.0000000000000000 -0.0127928624961816 0.0000000000000000 0.0050585024151258 0.0000000000000000 - -0.0012439381262112 0.0000000000000000 -0.0007025897616824 0.0000000000000000 0.0031456369018455 0.0000000000000000 - 0.0022873936225501 0.0000000000000000 0.0006118410528878 0.0000000000000000 -0.0037626256179458 0.0000000000000000 + -0.0004154624427383 0.0000000000000000 -0.0127928624961926 0.0000000000000000 0.0050585024151280 0.0000000000000000 + -0.0012439381262112 0.0000000000000000 -0.0007025897616889 0.0000000000000000 0.0031456369018494 0.0000000000000000 + 0.0022873936225502 0.0000000000000000 0.0006118410528921 0.0000000000000000 -0.0037626256179481 0.0000000000000000 6 10 - 0.0005529569781434 0.0000000000000000 0.0004060563613320 0.0000000000000000 -0.0028171359308457 0.0000000000000000 - -0.0006881224323659 0.0000000000000000 0.0017449768597174 0.0000000000000000 -0.0003308975272932 0.0000000000000000 - 0.0009938270034969 0.0000000000000000 -0.0014852637978362 0.0000000000000000 0.0019808748951314 0.0000000000000000 + 0.0005529569781460 0.0000000000000000 0.0004060563613334 0.0000000000000000 -0.0028171359308443 0.0000000000000000 + -0.0006881224323642 0.0000000000000000 0.0017449768597187 0.0000000000000000 -0.0003308975272922 0.0000000000000000 + 0.0009938270034957 0.0000000000000000 -0.0014852637978367 0.0000000000000000 0.0019808748951298 0.0000000000000000 6 11 - -0.0020226399972398 0.0000000000000000 0.0002383182140770 0.0000000000000000 0.0001011648438929 0.0000000000000000 - -0.0002383182140790 0.0000000000000000 0.0000601515309634 0.0000000000000000 -0.0001507007232538 0.0000000000000000 - 0.0001011648438936 0.0000000000000000 0.0001507007232535 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972392 0.0000000000000000 0.0002383182140778 0.0000000000000000 0.0001011648438933 0.0000000000000000 + -0.0002383182140784 0.0000000000000000 0.0000601515309634 0.0000000000000000 -0.0001507007232540 0.0000000000000000 + 0.0001011648438934 0.0000000000000000 0.0001507007232534 0.0000000000000000 -0.0022331838997250 0.0000000000000000 6 12 - -0.0001947154534107 0.0000000000000000 -0.0001055444019376 0.0000000000000000 0.0008285855530511 0.0000000000000000 - -0.0001055444019365 0.0000000000000000 -0.0022624521874664 0.0000000000000000 -0.0020902638812491 0.0000000000000000 - -0.0008285855530515 0.0000000000000000 0.0020902638812491 0.0000000000000000 0.0008479800149237 0.0000000000000000 + -0.0001947154534137 0.0000000000000000 -0.0001055444019383 0.0000000000000000 0.0008285855530508 0.0000000000000000 + -0.0001055444019386 0.0000000000000000 -0.0022624521874673 0.0000000000000000 -0.0020902638812492 0.0000000000000000 + -0.0008285855530501 0.0000000000000000 0.0020902638812493 0.0000000000000000 0.0008479800149251 0.0000000000000000 7 1 - 0.0015706027157735 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000015 0.0000000000000000 0.0058994142114998 0.0000000000000000 -0.0129555088579457 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0129555088579347 0.0000000000000000 -0.0025061456783193 0.0000000000000000 + 0.0015706027157737 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000013 0.0000000000000000 0.0058994142114986 0.0000000000000000 -0.0129555088579327 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0129555088579418 0.0000000000000000 -0.0025061456783197 0.0000000000000000 7 2 - -0.0018152750012298 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0012476417535541 0.0000000000000000 0.0078942408875844 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0002039213450280 0.0000000000000000 0.0145769254785603 0.0000000000000000 + -0.0018152750012295 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 0.0012476417535550 0.0000000000000000 0.0078942408875715 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0002039213450275 0.0000000000000000 0.0145769254785630 0.0000000000000000 7 3 - -0.0016399265604472 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0035091911501692 0.0000000000000000 0.0021722504817084 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0074822204968671 0.0000000000000000 0.0003426041600671 0.0000000000000000 + -0.0016399265604474 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0035091911501681 0.0000000000000000 0.0021722504817079 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0074822204968739 0.0000000000000000 0.0003426041600652 0.0000000000000000 7 4 - 0.0078082955673489 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000115 0.0000000000000000 0.0119074076296531 0.0000000000000000 0.0034942738523609 0.0000000000000000 - -0.0000000000000069 0.0000000000000000 -0.0044778895271359 0.0000000000000000 -0.0367974389514110 0.0000000000000000 + 0.0078082955673498 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000234 0.0000000000000000 0.0119074076296463 0.0000000000000000 0.0034942738523667 0.0000000000000000 + 0.0000000000000023 0.0000000000000000 -0.0044778895271283 0.0000000000000000 -0.0367974389514158 0.0000000000000000 7 5 - -0.0014003952261869 0.0000000000000000 0.0002449744821623 0.0000000000000000 0.0015206472447121 0.0000000000000000 - -0.0091891495399319 0.0000000000000000 -0.0030108060126887 0.0000000000000000 0.0014211831836463 0.0000000000000000 - 0.0007217572183878 0.0000000000000000 0.0035553985811579 0.0000000000000000 -0.0025275585661353 0.0000000000000000 + -0.0014003952261870 0.0000000000000000 0.0002449744821628 0.0000000000000000 0.0015206472447120 0.0000000000000000 + -0.0091891495399357 0.0000000000000000 -0.0030108060126879 0.0000000000000000 0.0014211831836455 0.0000000000000000 + 0.0007217572183866 0.0000000000000000 0.0035553985811564 0.0000000000000000 -0.0025275585661338 0.0000000000000000 7 6 - -0.0014003952261872 0.0000000000000000 -0.0002449744821630 0.0000000000000000 -0.0015206472447121 0.0000000000000000 - 0.0091891495399424 0.0000000000000000 -0.0030108060126824 0.0000000000000000 0.0014211831836421 0.0000000000000000 - -0.0007217572183815 0.0000000000000000 0.0035553985811619 0.0000000000000000 -0.0025275585661374 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 -0.0002449744821631 0.0000000000000000 -0.0015206472447118 0.0000000000000000 + 0.0091891495399560 0.0000000000000000 -0.0030108060126753 0.0000000000000000 0.0014211831836384 0.0000000000000000 + -0.0007217572183881 0.0000000000000000 0.0035553985811555 0.0000000000000000 -0.0025275585661340 0.0000000000000000 7 7 - 0.0723775009917354 0.0000000000000000 0.0000000000000017 0.0000000000000000 -0.0000000000000008 0.0000000000000000 - 0.0000000000000017 0.0000000000000000 0.3831399905936650 0.0000000000000000 -0.0800072256509562 0.0000000000000000 - -0.0000000000000008 0.0000000000000000 -0.0800072256509561 0.0000000000000000 0.4293434337307559 0.0000000000000000 + 0.0723775009917355 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 0.3831399905936550 0.0000000000000000 -0.0800072256509440 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0800072256509440 0.0000000000000000 0.4293434337307544 0.0000000000000000 7 8 - -0.0251057439413770 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0569567699834656 0.0000000000000000 0.0058150573711929 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0222771411146667 0.0000000000000000 -0.2988598772525917 0.0000000000000000 + -0.0251057439413771 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 -0.0569567699834669 0.0000000000000000 0.0058150573711849 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0222771411146692 0.0000000000000000 -0.2988598772525934 0.0000000000000000 7 9 - -0.0289738345959169 0.0000000000000000 -0.0000000000000017 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.2820802915433090 0.0000000000000000 0.0527306161696252 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0884826303559516 0.0000000000000000 -0.0739447334126206 0.0000000000000000 + -0.0289738345959180 0.0000000000000000 -0.0000000000000011 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.2820802915433018 0.0000000000000000 0.0527306161696217 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0884826303559400 0.0000000000000000 -0.0739447334126196 0.0000000000000000 7 10 - -0.0373686571560732 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000186 0.0000000000000000 -0.0336428001201821 0.0000000000000000 0.0041894809945818 0.0000000000000000 - 0.0000000000000077 0.0000000000000000 0.0044397818519375 0.0000000000000000 0.0041303780996381 0.0000000000000000 + -0.0373686571560774 0.0000000000000000 0.0000000000000006 0.0000000000000000 0.0000000000000004 0.0000000000000000 + -0.0000000000000240 0.0000000000000000 -0.0336428001201925 0.0000000000000000 0.0041894809945729 0.0000000000000000 + 0.0000000000000096 0.0000000000000000 0.0044397818519502 0.0000000000000000 0.0041303780996480 0.0000000000000000 7 11 - 0.0079739154089269 0.0000000000000000 -0.0168418597307712 0.0000000000000000 -0.0106690755761884 0.0000000000000000 - -0.0100652146645579 0.0000000000000000 -0.0099918936929241 0.0000000000000000 0.0069122209428926 0.0000000000000000 - 0.0036706343437231 0.0000000000000000 0.0005259246072841 0.0000000000000000 -0.0156150191112076 0.0000000000000000 + 0.0079739154089295 0.0000000000000000 -0.0168418597307733 0.0000000000000000 -0.0106690755761892 0.0000000000000000 + -0.0100652146645641 0.0000000000000000 -0.0099918936929178 0.0000000000000000 0.0069122209428965 0.0000000000000000 + 0.0036706343437350 0.0000000000000000 0.0005259246072787 0.0000000000000000 -0.0156150191112114 0.0000000000000000 7 12 - 0.0079739154089269 0.0000000000000000 0.0168418597307710 0.0000000000000000 0.0106690755761885 0.0000000000000000 - 0.0100652146645751 0.0000000000000000 -0.0099918936929136 0.0000000000000000 0.0069122209428992 0.0000000000000000 - -0.0036706343437302 0.0000000000000000 0.0005259246072797 0.0000000000000000 -0.0156150191112103 0.0000000000000000 + 0.0079739154089283 0.0000000000000000 0.0168418597307727 0.0000000000000000 0.0106690755761890 0.0000000000000000 + 0.0100652146645851 0.0000000000000000 -0.0099918936929047 0.0000000000000000 0.0069122209429044 0.0000000000000000 + -0.0036706343437432 0.0000000000000000 0.0005259246072730 0.0000000000000000 -0.0156150191112145 0.0000000000000000 8 1 - -0.0018152750012300 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0012476417535556 0.0000000000000000 -0.0002039213450288 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0078942408875751 0.0000000000000000 0.0145769254785633 0.0000000000000000 + -0.0018152750012302 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0012476417535534 0.0000000000000000 -0.0002039213450287 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 -0.0078942408875820 0.0000000000000000 0.0145769254785594 0.0000000000000000 8 2 - 0.0036353210827943 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0001181663659072 0.0000000000000000 0.0026161584162165 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0026161584162164 0.0000000000000000 -0.0221544638345921 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0001181663659069 0.0000000000000000 0.0026161584162164 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0026161584162162 0.0000000000000000 -0.0221544638345910 0.0000000000000000 8 3 - -0.0006990068039681 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0007453998223712 0.0000000000000000 -0.0020862975258867 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0005005588826037 0.0000000000000000 -0.0034474484778391 0.0000000000000000 + -0.0006990068039682 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0007453998223729 0.0000000000000000 -0.0020862975258866 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0005005588825975 0.0000000000000000 -0.0034474484778374 0.0000000000000000 8 4 - -0.0158629633765114 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 -0.0142572303934383 0.0000000000000000 -0.0025026894102802 0.0000000000000000 - 0.0000000000000100 0.0000000000000000 0.0110402408679705 0.0000000000000000 0.0060798140623905 0.0000000000000000 + -0.0158629633765101 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000012 0.0000000000000000 -0.0142572303934406 0.0000000000000000 -0.0025026894102787 0.0000000000000000 + 0.0000000000000052 0.0000000000000000 0.0110402408679694 0.0000000000000000 0.0060798140623915 0.0000000000000000 8 5 - 0.0025040980237175 0.0000000000000000 -0.0023164619816242 0.0000000000000000 -0.0038518265447292 0.0000000000000000 - 0.0006119532508337 0.0000000000000000 0.0011510144726799 0.0000000000000000 0.0004056725610974 0.0000000000000000 - 0.0017406728581180 0.0000000000000000 -0.0039561444256917 0.0000000000000000 0.0031229275970255 0.0000000000000000 + 0.0025040980237170 0.0000000000000000 -0.0023164619816241 0.0000000000000000 -0.0038518265447295 0.0000000000000000 + 0.0006119532508351 0.0000000000000000 0.0011510144726812 0.0000000000000000 0.0004056725610968 0.0000000000000000 + 0.0017406728581190 0.0000000000000000 -0.0039561444256922 0.0000000000000000 0.0031229275970259 0.0000000000000000 8 6 - 0.0025040980237171 0.0000000000000000 0.0023164619816239 0.0000000000000000 0.0038518265447294 0.0000000000000000 - -0.0006119532508350 0.0000000000000000 0.0011510144726796 0.0000000000000000 0.0004056725610981 0.0000000000000000 - -0.0017406728581269 0.0000000000000000 -0.0039561444256971 0.0000000000000000 0.0031229275970289 0.0000000000000000 + 0.0025040980237164 0.0000000000000000 0.0023164619816234 0.0000000000000000 0.0038518265447295 0.0000000000000000 + -0.0006119532508362 0.0000000000000000 0.0011510144726806 0.0000000000000000 0.0004056725610968 0.0000000000000000 + -0.0017406728581238 0.0000000000000000 -0.0039561444256951 0.0000000000000000 0.0031229275970278 0.0000000000000000 8 7 - -0.0251057439413770 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0569567699834656 0.0000000000000000 -0.0222771411146667 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0058150573711929 0.0000000000000000 -0.2988598772525917 0.0000000000000000 + -0.0251057439413771 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000005 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0569567699834669 0.0000000000000000 -0.0222771411146692 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0058150573711849 0.0000000000000000 -0.2988598772525934 0.0000000000000000 8 8 - 0.0352255604087112 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0577498980966732 0.0000000000000000 -0.0004642893512926 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0004642893512926 0.0000000000000000 0.2960907478396921 0.0000000000000000 + 0.0352255604087111 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0577498980966753 0.0000000000000000 -0.0004642893512922 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0004642893512922 0.0000000000000000 0.2960907478396965 0.0000000000000000 8 9 - 0.0037861455182854 0.0000000000000000 -0.0000000000000007 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0103751426308780 0.0000000000000000 0.0282119025677871 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0049287602283540 0.0000000000000000 -0.0033792838522482 0.0000000000000000 + 0.0037861455182856 0.0000000000000000 -0.0000000000000007 0.0000000000000000 0.0000000000000004 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0103751426308777 0.0000000000000000 0.0282119025677895 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0049287602283615 0.0000000000000000 -0.0033792838522503 0.0000000000000000 8 10 - -0.0149643881777181 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000009 0.0000000000000000 -0.0085647327830345 0.0000000000000000 -0.0044261389355795 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0009466269409891 0.0000000000000000 0.0064890897648070 0.0000000000000000 + -0.0149643881777200 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0085647327830328 0.0000000000000000 -0.0044261389355788 0.0000000000000000 + -0.0000000000000021 0.0000000000000000 -0.0009466269409981 0.0000000000000000 0.0064890897648002 0.0000000000000000 8 11 - 0.0053960771921628 0.0000000000000000 -0.0027777266316762 0.0000000000000000 0.0010754919735292 0.0000000000000000 - -0.0041883714492618 0.0000000000000000 0.0037383917967328 0.0000000000000000 0.0001605357525146 0.0000000000000000 - -0.0052382113260756 0.0000000000000000 -0.0007249474944408 0.0000000000000000 -0.0008206821613089 0.0000000000000000 + 0.0053960771921638 0.0000000000000000 -0.0027777266316769 0.0000000000000000 0.0010754919735291 0.0000000000000000 + -0.0041883714492624 0.0000000000000000 0.0037383917967316 0.0000000000000000 0.0001605357525141 0.0000000000000000 + -0.0052382113260821 0.0000000000000000 -0.0007249474944365 0.0000000000000000 -0.0008206821613061 0.0000000000000000 8 12 - 0.0053960771921625 0.0000000000000000 0.0027777266316761 0.0000000000000000 -0.0010754919735296 0.0000000000000000 - 0.0041883714492611 0.0000000000000000 0.0037383917967320 0.0000000000000000 0.0001605357525145 0.0000000000000000 - 0.0052382113260758 0.0000000000000000 -0.0007249474944407 0.0000000000000000 -0.0008206821613088 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 0.0027777266316761 0.0000000000000000 -0.0010754919735288 0.0000000000000000 + 0.0041883714492619 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0001605357525140 0.0000000000000000 + 0.0052382113260839 0.0000000000000000 -0.0007249474944354 0.0000000000000000 -0.0008206821613054 0.0000000000000000 9 1 - -0.0016399265604469 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000011 0.0000000000000000 -0.0035091911501684 0.0000000000000000 0.0074822204968758 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0021722504817067 0.0000000000000000 0.0003426041600637 0.0000000000000000 + -0.0016399265604469 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + -0.0000000000000010 0.0000000000000000 -0.0035091911501687 0.0000000000000000 0.0074822204968633 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0021722504817093 0.0000000000000000 0.0003426041600677 0.0000000000000000 9 2 - -0.0006990068039687 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0007453998223717 0.0000000000000000 0.0005005588825958 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0020862975258863 0.0000000000000000 -0.0034474484778370 0.0000000000000000 + -0.0006990068039689 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 0.0007453998223711 0.0000000000000000 0.0005005588826071 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0020862975258870 0.0000000000000000 -0.0034474484778407 0.0000000000000000 9 3 - 0.0025844652016199 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0002706095090059 0.0000000000000000 -0.0025129031626724 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0025129031626719 0.0000000000000000 -0.0015754786010475 0.0000000000000000 + 0.0025844652016200 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0002706095090059 0.0000000000000000 -0.0025129031626718 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0025129031626737 0.0000000000000000 -0.0015754786010474 0.0000000000000000 9 4 - -0.0001599946965684 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - 0.0000000000000112 0.0000000000000000 0.0004054668963109 0.0000000000000000 -0.0101430343307466 0.0000000000000000 - -0.0000000000000023 0.0000000000000000 -0.0081775121522167 0.0000000000000000 0.0079899884223457 0.0000000000000000 + -0.0001599946965684 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000197 0.0000000000000000 0.0004054668963187 0.0000000000000000 -0.0101430343307523 0.0000000000000000 + -0.0000000000000052 0.0000000000000000 -0.0081775121522221 0.0000000000000000 0.0079899884223495 0.0000000000000000 9 5 - -0.0004154624427382 0.0000000000000000 0.0012439381262114 0.0000000000000000 -0.0022873936225500 0.0000000000000000 - 0.0127928624961715 0.0000000000000000 -0.0007025897616760 0.0000000000000000 0.0006118410528842 0.0000000000000000 - -0.0050585024151236 0.0000000000000000 0.0031456369018445 0.0000000000000000 -0.0037626256179448 0.0000000000000000 + -0.0004154624427383 0.0000000000000000 0.0012439381262114 0.0000000000000000 -0.0022873936225497 0.0000000000000000 + 0.0127928624961753 0.0000000000000000 -0.0007025897616783 0.0000000000000000 0.0006118410528855 0.0000000000000000 + -0.0050585024151234 0.0000000000000000 0.0031456369018466 0.0000000000000000 -0.0037626256179466 0.0000000000000000 9 6 - -0.0004154624427381 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225501 0.0000000000000000 - -0.0127928624961816 0.0000000000000000 -0.0007025897616824 0.0000000000000000 0.0006118410528878 0.0000000000000000 - 0.0050585024151258 0.0000000000000000 0.0031456369018455 0.0000000000000000 -0.0037626256179458 0.0000000000000000 + -0.0004154624427383 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225502 0.0000000000000000 + -0.0127928624961926 0.0000000000000000 -0.0007025897616889 0.0000000000000000 0.0006118410528921 0.0000000000000000 + 0.0050585024151280 0.0000000000000000 0.0031456369018494 0.0000000000000000 -0.0037626256179481 0.0000000000000000 9 7 - -0.0289738345959169 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000017 0.0000000000000000 -0.2820802915433090 0.0000000000000000 0.0884826303559516 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0527306161696252 0.0000000000000000 -0.0739447334126206 0.0000000000000000 + -0.0289738345959180 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000011 0.0000000000000000 -0.2820802915433018 0.0000000000000000 0.0884826303559400 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0527306161696217 0.0000000000000000 -0.0739447334126196 0.0000000000000000 9 8 - 0.0037861455182854 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 0.0103751426308780 0.0000000000000000 0.0049287602283540 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0282119025677871 0.0000000000000000 -0.0033792838522482 0.0000000000000000 + 0.0037861455182856 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 0.0103751426308777 0.0000000000000000 0.0049287602283615 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0282119025677895 0.0000000000000000 -0.0033792838522503 0.0000000000000000 9 9 - 0.0365782981378739 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.2729248902175075 0.0000000000000000 -0.0713458205553473 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0713458205553473 0.0000000000000000 0.0798291225288844 0.0000000000000000 + 0.0365782981378749 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.2729248902175013 0.0000000000000000 -0.0713458205553457 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0713458205553457 0.0000000000000000 0.0798291225288868 0.0000000000000000 9 10 - -0.0193793176120026 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000181 0.0000000000000000 0.0128264092257446 0.0000000000000000 -0.0093892601393168 0.0000000000000000 - -0.0000000000000052 0.0000000000000000 -0.0108019320579839 0.0000000000000000 -0.0127958810116054 0.0000000000000000 + -0.0193793176120035 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000219 0.0000000000000000 0.0128264092257547 0.0000000000000000 -0.0093892601393086 0.0000000000000000 + -0.0000000000000062 0.0000000000000000 -0.0108019320579856 0.0000000000000000 -0.0127958810116073 0.0000000000000000 9 11 - 0.0043670482201903 0.0000000000000000 0.0062527546419648 0.0000000000000000 -0.0032245610064170 0.0000000000000000 - 0.0073649825438516 0.0000000000000000 -0.0050060184798300 0.0000000000000000 -0.0046134194019357 0.0000000000000000 - -0.0069798143243239 0.0000000000000000 0.0003322634792043 0.0000000000000000 0.0072531804468956 0.0000000000000000 + 0.0043670482201907 0.0000000000000000 0.0062527546419651 0.0000000000000000 -0.0032245610064175 0.0000000000000000 + 0.0073649825438591 0.0000000000000000 -0.0050060184798352 0.0000000000000000 -0.0046134194019389 0.0000000000000000 + -0.0069798143243272 0.0000000000000000 0.0003322634792049 0.0000000000000000 0.0072531804468960 0.0000000000000000 9 12 - 0.0043670482201904 0.0000000000000000 -0.0062527546419647 0.0000000000000000 0.0032245610064169 0.0000000000000000 - -0.0073649825438683 0.0000000000000000 -0.0050060184798403 0.0000000000000000 -0.0046134194019421 0.0000000000000000 - 0.0069798143243285 0.0000000000000000 0.0003322634792074 0.0000000000000000 0.0072531804468972 0.0000000000000000 + 0.0043670482201907 0.0000000000000000 -0.0062527546419648 0.0000000000000000 0.0032245610064170 0.0000000000000000 + -0.0073649825438783 0.0000000000000000 -0.0050060184798469 0.0000000000000000 -0.0046134194019461 0.0000000000000000 + 0.0069798143243326 0.0000000000000000 0.0003322634792084 0.0000000000000000 0.0072531804468980 0.0000000000000000 10 1 - 0.0078082955673484 0.0000000000000000 -0.0000000000000126 0.0000000000000000 -0.0000000000000024 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0119074076296553 0.0000000000000000 0.0044778895271319 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0034942738523579 0.0000000000000000 -0.0367974389514135 0.0000000000000000 + 0.0078082955673492 0.0000000000000000 -0.0000000000000095 0.0000000000000000 0.0000000000000029 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0119074076296581 0.0000000000000000 0.0044778895271369 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 -0.0034942738523537 0.0000000000000000 -0.0367974389514098 0.0000000000000000 10 2 - -0.0158629633765103 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000012 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0142572303934455 0.0000000000000000 -0.0110402408679752 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0025026894102758 0.0000000000000000 0.0060798140623873 0.0000000000000000 + -0.0158629633765113 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000058 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0142572303934425 0.0000000000000000 -0.0110402408679744 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0025026894102773 0.0000000000000000 0.0060798140623874 0.0000000000000000 10 3 - -0.0001599946965688 0.0000000000000000 0.0000000000000126 0.0000000000000000 0.0000000000000033 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0004054668963131 0.0000000000000000 0.0081775121522256 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0101430343307470 0.0000000000000000 0.0079899884223510 0.0000000000000000 + -0.0001599946965682 0.0000000000000000 0.0000000000000070 0.0000000000000000 0.0000000000000011 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0004054668963083 0.0000000000000000 0.0081775121522211 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0101430343307429 0.0000000000000000 0.0079899884223479 0.0000000000000000 10 4 - 0.0039008143595910 0.0000000000000000 -0.0000000000000040 0.0000000000000000 0.0000000000000046 0.0000000000000000 - -0.0000000000000069 0.0000000000000000 -0.0008485805837897 0.0000000000000000 0.0030686652718395 0.0000000000000000 - -0.0000000000000047 0.0000000000000000 -0.0030686652718400 0.0000000000000000 -0.0082838582595769 0.0000000000000000 + 0.0039008143595910 0.0000000000000000 -0.0000000000000082 0.0000000000000000 0.0000000000000041 0.0000000000000000 + -0.0000000000000132 0.0000000000000000 -0.0008485805837892 0.0000000000000000 0.0030686652718371 0.0000000000000000 + -0.0000000000000089 0.0000000000000000 -0.0030686652718412 0.0000000000000000 -0.0082838582595772 0.0000000000000000 10 5 - 0.0005529569781371 0.0000000000000000 0.0006881224323712 0.0000000000000000 -0.0009938270035004 0.0000000000000000 - -0.0004060563613260 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0014852637978338 0.0000000000000000 - 0.0028171359308498 0.0000000000000000 -0.0003308975272955 0.0000000000000000 0.0019808748951325 0.0000000000000000 + 0.0005529569781352 0.0000000000000000 0.0006881224323728 0.0000000000000000 -0.0009938270035008 0.0000000000000000 + -0.0004060563613216 0.0000000000000000 0.0017449768597111 0.0000000000000000 -0.0014852637978326 0.0000000000000000 + 0.0028171359308520 0.0000000000000000 -0.0003308975272969 0.0000000000000000 0.0019808748951336 0.0000000000000000 10 6 - 0.0005529569781434 0.0000000000000000 -0.0006881224323659 0.0000000000000000 0.0009938270034969 0.0000000000000000 - 0.0004060563613320 0.0000000000000000 0.0017449768597174 0.0000000000000000 -0.0014852637978362 0.0000000000000000 - -0.0028171359308457 0.0000000000000000 -0.0003308975272932 0.0000000000000000 0.0019808748951314 0.0000000000000000 + 0.0005529569781460 0.0000000000000000 -0.0006881224323641 0.0000000000000000 0.0009938270034957 0.0000000000000000 + 0.0004060563613334 0.0000000000000000 0.0017449768597187 0.0000000000000000 -0.0014852637978367 0.0000000000000000 + -0.0028171359308443 0.0000000000000000 -0.0003308975272922 0.0000000000000000 0.0019808748951298 0.0000000000000000 10 7 - -0.0373686571560732 0.0000000000000000 -0.0000000000000186 0.0000000000000000 0.0000000000000077 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0336428001201821 0.0000000000000000 0.0044397818519375 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0041894809945818 0.0000000000000000 0.0041303780996381 0.0000000000000000 + -0.0373686571560774 0.0000000000000000 -0.0000000000000240 0.0000000000000000 0.0000000000000096 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0336428001201925 0.0000000000000000 0.0044397818519502 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0041894809945729 0.0000000000000000 0.0041303780996480 0.0000000000000000 10 8 - -0.0149643881777181 0.0000000000000000 0.0000000000000009 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0085647327830345 0.0000000000000000 -0.0009466269409891 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0044261389355795 0.0000000000000000 0.0064890897648070 0.0000000000000000 + -0.0149643881777200 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000021 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0085647327830328 0.0000000000000000 -0.0009466269409981 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0044261389355788 0.0000000000000000 0.0064890897648002 0.0000000000000000 10 9 - -0.0193793176120026 0.0000000000000000 0.0000000000000181 0.0000000000000000 -0.0000000000000052 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0128264092257446 0.0000000000000000 -0.0108019320579839 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0093892601393168 0.0000000000000000 -0.0127958810116054 0.0000000000000000 + -0.0193793176120035 0.0000000000000000 0.0000000000000219 0.0000000000000000 -0.0000000000000062 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0128264092257547 0.0000000000000000 -0.0108019320579856 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0093892601393086 0.0000000000000000 -0.0127958810116073 0.0000000000000000 10 10 - 0.4834443802759677 0.0000000000000000 -0.0000000000000068 0.0000000000000000 -0.0000000000000052 0.0000000000000000 - -0.0000000000000068 0.0000000000000000 0.2588422264936718 0.0000000000000000 0.1308110718530766 0.0000000000000000 - -0.0000000000000052 0.0000000000000000 0.1308110718530766 0.0000000000000000 0.1639030178691418 0.0000000000000000 + 0.4834443802760303 0.0000000000000000 -0.0000000000000084 0.0000000000000000 -0.0000000000000085 0.0000000000000000 + -0.0000000000000084 0.0000000000000000 0.2588422264936620 0.0000000000000000 0.1308110718530699 0.0000000000000000 + -0.0000000000000085 0.0000000000000000 0.1308110718530699 0.0000000000000000 0.1639030178691374 0.0000000000000000 10 11 - -0.2042620382021103 0.0000000000000000 0.1111612914471679 0.0000000000000000 0.0678004081048736 0.0000000000000000 - 0.0961493426419422 0.0000000000000000 -0.1150790588758586 0.0000000000000000 -0.0626077946132254 0.0000000000000000 - 0.0680988033808412 0.0000000000000000 -0.0633030715249542 0.0000000000000000 -0.0673384314526858 0.0000000000000000 + -0.2042620382021395 0.0000000000000000 0.1111612914471852 0.0000000000000000 0.0678004081048849 0.0000000000000000 + 0.0961493426419440 0.0000000000000000 -0.1150790588758555 0.0000000000000000 -0.0626077946132228 0.0000000000000000 + 0.0680988033808426 0.0000000000000000 -0.0633030715249513 0.0000000000000000 -0.0673384314526844 0.0000000000000000 10 12 - -0.2042620382020978 0.0000000000000000 -0.1111612914471592 0.0000000000000000 -0.0678004081048687 0.0000000000000000 - -0.0961493426419367 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0626077946132231 0.0000000000000000 - -0.0680988033808369 0.0000000000000000 -0.0633030715249510 0.0000000000000000 -0.0673384314526842 0.0000000000000000 + -0.2042620382021260 0.0000000000000000 -0.1111612914471765 0.0000000000000000 -0.0678004081048793 0.0000000000000000 + -0.0961493426419365 0.0000000000000000 -0.1150790588758506 0.0000000000000000 -0.0626077946132203 0.0000000000000000 + -0.0680988033808350 0.0000000000000000 -0.0633030715249474 0.0000000000000000 -0.0673384314526816 0.0000000000000000 11 1 - -0.0014003952261869 0.0000000000000000 -0.0091891495399388 0.0000000000000000 -0.0007217572183772 0.0000000000000000 - 0.0002449744821628 0.0000000000000000 -0.0030108060126908 0.0000000000000000 -0.0035553985811578 0.0000000000000000 - -0.0015206472447128 0.0000000000000000 -0.0014211831836475 0.0000000000000000 -0.0025275585661347 0.0000000000000000 + -0.0014003952261861 0.0000000000000000 -0.0091891495399317 0.0000000000000000 -0.0007217572183791 0.0000000000000000 + 0.0002449744821626 0.0000000000000000 -0.0030108060126926 0.0000000000000000 -0.0035553985811589 0.0000000000000000 + -0.0015206472447131 0.0000000000000000 -0.0014211831836486 0.0000000000000000 -0.0025275585661352 0.0000000000000000 11 2 - 0.0025040980237169 0.0000000000000000 0.0006119532508384 0.0000000000000000 -0.0017406728581262 0.0000000000000000 - -0.0023164619816241 0.0000000000000000 0.0011510144726841 0.0000000000000000 0.0039561444256966 0.0000000000000000 - 0.0038518265447296 0.0000000000000000 -0.0004056725610947 0.0000000000000000 0.0031229275970287 0.0000000000000000 + 0.0025040980237175 0.0000000000000000 0.0006119532508366 0.0000000000000000 -0.0017406728581228 0.0000000000000000 + -0.0023164619816248 0.0000000000000000 0.0011510144726826 0.0000000000000000 0.0039561444256946 0.0000000000000000 + 0.0038518265447299 0.0000000000000000 -0.0004056725610959 0.0000000000000000 0.0031229275970274 0.0000000000000000 11 3 - -0.0004154624427381 0.0000000000000000 0.0127928624961743 0.0000000000000000 0.0050585024151193 0.0000000000000000 - 0.0012439381262111 0.0000000000000000 -0.0007025897616770 0.0000000000000000 -0.0031456369018490 0.0000000000000000 - 0.0022873936225506 0.0000000000000000 -0.0006118410528849 0.0000000000000000 -0.0037626256179484 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 0.0127928624961699 0.0000000000000000 0.0050585024151198 0.0000000000000000 + 0.0012439381262115 0.0000000000000000 -0.0007025897616743 0.0000000000000000 -0.0031456369018469 0.0000000000000000 + 0.0022873936225502 0.0000000000000000 -0.0006118410528829 0.0000000000000000 -0.0037626256179469 0.0000000000000000 11 4 - 0.0005529569781357 0.0000000000000000 -0.0004060563613263 0.0000000000000000 -0.0028171359308497 0.0000000000000000 - 0.0006881224323731 0.0000000000000000 0.0017449768597133 0.0000000000000000 0.0003308975272964 0.0000000000000000 - 0.0009938270035010 0.0000000000000000 0.0014852637978340 0.0000000000000000 0.0019808748951326 0.0000000000000000 + 0.0005529569781313 0.0000000000000000 -0.0004060563613244 0.0000000000000000 -0.0028171359308505 0.0000000000000000 + 0.0006881224323749 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0003308975272967 0.0000000000000000 + 0.0009938270035023 0.0000000000000000 0.0014852637978335 0.0000000000000000 0.0019808748951335 0.0000000000000000 11 5 - -0.0001947154534039 0.0000000000000000 0.0001055444019315 0.0000000000000000 0.0008285855530545 0.0000000000000000 - 0.0001055444019321 0.0000000000000000 -0.0022624521874624 0.0000000000000000 0.0020902638812464 0.0000000000000000 - -0.0008285855530545 0.0000000000000000 -0.0020902638812466 0.0000000000000000 0.0008479800149229 0.0000000000000000 + -0.0001947154534004 0.0000000000000000 0.0001055444019295 0.0000000000000000 0.0008285855530556 0.0000000000000000 + 0.0001055444019297 0.0000000000000000 -0.0022624521874613 0.0000000000000000 0.0020902638812462 0.0000000000000000 + -0.0008285855530560 0.0000000000000000 -0.0020902638812461 0.0000000000000000 0.0008479800149218 0.0000000000000000 11 6 - -0.0020226399972398 0.0000000000000000 -0.0002383182140790 0.0000000000000000 0.0001011648438936 0.0000000000000000 - 0.0002383182140770 0.0000000000000000 0.0000601515309634 0.0000000000000000 0.0001507007232535 0.0000000000000000 - 0.0001011648438928 0.0000000000000000 -0.0001507007232538 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972392 0.0000000000000000 -0.0002383182140784 0.0000000000000000 0.0001011648438934 0.0000000000000000 + 0.0002383182140778 0.0000000000000000 0.0000601515309634 0.0000000000000000 0.0001507007232534 0.0000000000000000 + 0.0001011648438933 0.0000000000000000 -0.0001507007232540 0.0000000000000000 -0.0022331838997250 0.0000000000000000 11 7 - 0.0079739154089269 0.0000000000000000 -0.0100652146645579 0.0000000000000000 0.0036706343437231 0.0000000000000000 - -0.0168418597307712 0.0000000000000000 -0.0099918936929241 0.0000000000000000 0.0005259246072841 0.0000000000000000 - -0.0106690755761884 0.0000000000000000 0.0069122209428926 0.0000000000000000 -0.0156150191112076 0.0000000000000000 + 0.0079739154089295 0.0000000000000000 -0.0100652146645641 0.0000000000000000 0.0036706343437350 0.0000000000000000 + -0.0168418597307733 0.0000000000000000 -0.0099918936929178 0.0000000000000000 0.0005259246072787 0.0000000000000000 + -0.0106690755761892 0.0000000000000000 0.0069122209428964 0.0000000000000000 -0.0156150191112114 0.0000000000000000 11 8 - 0.0053960771921628 0.0000000000000000 -0.0041883714492618 0.0000000000000000 -0.0052382113260756 0.0000000000000000 - -0.0027777266316762 0.0000000000000000 0.0037383917967328 0.0000000000000000 -0.0007249474944408 0.0000000000000000 - 0.0010754919735292 0.0000000000000000 0.0001605357525146 0.0000000000000000 -0.0008206821613089 0.0000000000000000 + 0.0053960771921638 0.0000000000000000 -0.0041883714492624 0.0000000000000000 -0.0052382113260821 0.0000000000000000 + -0.0027777266316769 0.0000000000000000 0.0037383917967316 0.0000000000000000 -0.0007249474944365 0.0000000000000000 + 0.0010754919735291 0.0000000000000000 0.0001605357525141 0.0000000000000000 -0.0008206821613061 0.0000000000000000 11 9 - 0.0043670482201903 0.0000000000000000 0.0073649825438516 0.0000000000000000 -0.0069798143243239 0.0000000000000000 - 0.0062527546419648 0.0000000000000000 -0.0050060184798300 0.0000000000000000 0.0003322634792043 0.0000000000000000 - -0.0032245610064170 0.0000000000000000 -0.0046134194019357 0.0000000000000000 0.0072531804468956 0.0000000000000000 + 0.0043670482201907 0.0000000000000000 0.0073649825438591 0.0000000000000000 -0.0069798143243272 0.0000000000000000 + 0.0062527546419651 0.0000000000000000 -0.0050060184798352 0.0000000000000000 0.0003322634792049 0.0000000000000000 + -0.0032245610064175 0.0000000000000000 -0.0046134194019389 0.0000000000000000 0.0072531804468960 0.0000000000000000 11 10 - -0.2042620382021102 0.0000000000000000 0.0961493426419422 0.0000000000000000 0.0680988033808412 0.0000000000000000 - 0.1111612914471679 0.0000000000000000 -0.1150790588758586 0.0000000000000000 -0.0633030715249542 0.0000000000000000 - 0.0678004081048736 0.0000000000000000 -0.0626077946132254 0.0000000000000000 -0.0673384314526858 0.0000000000000000 + -0.2042620382021395 0.0000000000000000 0.0961493426419440 0.0000000000000000 0.0680988033808426 0.0000000000000000 + 0.1111612914471852 0.0000000000000000 -0.1150790588758555 0.0000000000000000 -0.0633030715249513 0.0000000000000000 + 0.0678004081048849 0.0000000000000000 -0.0626077946132227 0.0000000000000000 -0.0673384314526844 0.0000000000000000 11 11 - 0.2174594979186331 0.0000000000000000 -0.0954682304260189 0.0000000000000000 -0.0600636707989537 0.0000000000000000 - -0.0954682304260189 0.0000000000000000 0.1104252604741452 0.0000000000000000 0.0503426131734432 0.0000000000000000 - -0.0600636707989537 0.0000000000000000 0.0503426131734432 0.0000000000000000 0.0677190190410552 0.0000000000000000 + 0.2174594979186433 0.0000000000000000 -0.0954682304260273 0.0000000000000000 -0.0600636707989595 0.0000000000000000 + -0.0954682304260273 0.0000000000000000 0.1104252604741487 0.0000000000000000 0.0503426131734442 0.0000000000000000 + -0.0600636707989595 0.0000000000000000 0.0503426131734442 0.0000000000000000 0.0677190190410563 0.0000000000000000 11 12 - -0.0299583471230510 0.0000000000000000 0.0025306649736035 0.0000000000000000 -0.0001964280885689 0.0000000000000000 - -0.0025306649736040 0.0000000000000000 0.0189330240079888 0.0000000000000000 0.0130002466230982 0.0000000000000000 - 0.0001964280885690 0.0000000000000000 0.0130002466230981 0.0000000000000000 0.0113735279572512 0.0000000000000000 + -0.0299583471230341 0.0000000000000000 0.0025306649736114 0.0000000000000000 -0.0001964280885646 0.0000000000000000 + -0.0025306649736115 0.0000000000000000 0.0189330240079811 0.0000000000000000 0.0130002466230935 0.0000000000000000 + 0.0001964280885642 0.0000000000000000 0.0130002466230938 0.0000000000000000 0.0113735279572483 0.0000000000000000 12 1 - -0.0014003952261867 0.0000000000000000 0.0091891495399492 0.0000000000000000 0.0007217572183790 0.0000000000000000 - -0.0002449744821631 0.0000000000000000 -0.0030108060126839 0.0000000000000000 -0.0035553985811565 0.0000000000000000 - 0.0015206472447128 0.0000000000000000 -0.0014211831836433 0.0000000000000000 -0.0025275585661339 0.0000000000000000 + -0.0014003952261879 0.0000000000000000 0.0091891495399399 0.0000000000000000 0.0007217572183766 0.0000000000000000 + -0.0002449744821634 0.0000000000000000 -0.0030108060126880 0.0000000000000000 -0.0035553985811604 0.0000000000000000 + 0.0015206472447121 0.0000000000000000 -0.0014211831836464 0.0000000000000000 -0.0025275585661368 0.0000000000000000 12 2 - 0.0025040980237166 0.0000000000000000 -0.0006119532508387 0.0000000000000000 0.0017406728581268 0.0000000000000000 - 0.0023164619816241 0.0000000000000000 0.0011510144726835 0.0000000000000000 0.0039561444256971 0.0000000000000000 - -0.0038518265447301 0.0000000000000000 -0.0004056725610949 0.0000000000000000 0.0031229275970290 0.0000000000000000 + 0.0025040980237168 0.0000000000000000 -0.0006119532508375 0.0000000000000000 0.0017406728581278 0.0000000000000000 + 0.0023164619816240 0.0000000000000000 0.0011510144726821 0.0000000000000000 0.0039561444256975 0.0000000000000000 + -0.0038518265447296 0.0000000000000000 -0.0004056725610957 0.0000000000000000 0.0031229275970291 0.0000000000000000 12 3 - -0.0004154624427380 0.0000000000000000 -0.0127928624961850 0.0000000000000000 -0.0050585024151219 0.0000000000000000 - -0.0012439381262113 0.0000000000000000 -0.0007025897616837 0.0000000000000000 -0.0031456369018512 0.0000000000000000 - -0.0022873936225503 0.0000000000000000 -0.0006118410528889 0.0000000000000000 -0.0037626256179495 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 -0.0127928624961760 0.0000000000000000 -0.0050585024151207 0.0000000000000000 + -0.0012439381262114 0.0000000000000000 -0.0007025897616779 0.0000000000000000 -0.0031456369018475 0.0000000000000000 + -0.0022873936225505 0.0000000000000000 -0.0006118410528851 0.0000000000000000 -0.0037626256179469 0.0000000000000000 12 4 - 0.0005529569781457 0.0000000000000000 0.0004060563613303 0.0000000000000000 0.0028171359308457 0.0000000000000000 - -0.0006881224323643 0.0000000000000000 0.0017449768597157 0.0000000000000000 0.0003308975272936 0.0000000000000000 - -0.0009938270034956 0.0000000000000000 0.0014852637978359 0.0000000000000000 0.0019808748951316 0.0000000000000000 + 0.0005529569781507 0.0000000000000000 0.0004060563613315 0.0000000000000000 0.0028171359308470 0.0000000000000000 + -0.0006881224323619 0.0000000000000000 0.0017449768597169 0.0000000000000000 0.0003308975272944 0.0000000000000000 + -0.0009938270034943 0.0000000000000000 0.0014852637978357 0.0000000000000000 0.0019808748951313 0.0000000000000000 12 5 - -0.0020226399972410 0.0000000000000000 0.0002383182140790 0.0000000000000000 -0.0001011648438937 0.0000000000000000 - -0.0002383182140790 0.0000000000000000 0.0000601515309643 0.0000000000000000 0.0001507007232530 0.0000000000000000 - -0.0001011648438942 0.0000000000000000 -0.0001507007232539 0.0000000000000000 -0.0022331838997254 0.0000000000000000 + -0.0020226399972430 0.0000000000000000 0.0002383182140800 0.0000000000000000 -0.0001011648438945 0.0000000000000000 + -0.0002383182140806 0.0000000000000000 0.0000601515309646 0.0000000000000000 0.0001507007232529 0.0000000000000000 + -0.0001011648438952 0.0000000000000000 -0.0001507007232528 0.0000000000000000 -0.0022331838997255 0.0000000000000000 12 6 - -0.0001947154534107 0.0000000000000000 -0.0001055444019365 0.0000000000000000 -0.0008285855530515 0.0000000000000000 - -0.0001055444019376 0.0000000000000000 -0.0022624521874664 0.0000000000000000 0.0020902638812491 0.0000000000000000 - 0.0008285855530511 0.0000000000000000 -0.0020902638812490 0.0000000000000000 0.0008479800149237 0.0000000000000000 + -0.0001947154534137 0.0000000000000000 -0.0001055444019386 0.0000000000000000 -0.0008285855530501 0.0000000000000000 + -0.0001055444019383 0.0000000000000000 -0.0022624521874673 0.0000000000000000 0.0020902638812493 0.0000000000000000 + 0.0008285855530508 0.0000000000000000 -0.0020902638812492 0.0000000000000000 0.0008479800149251 0.0000000000000000 12 7 - 0.0079739154089269 0.0000000000000000 0.0100652146645751 0.0000000000000000 -0.0036706343437302 0.0000000000000000 - 0.0168418597307710 0.0000000000000000 -0.0099918936929136 0.0000000000000000 0.0005259246072797 0.0000000000000000 - 0.0106690755761885 0.0000000000000000 0.0069122209428992 0.0000000000000000 -0.0156150191112103 0.0000000000000000 + 0.0079739154089283 0.0000000000000000 0.0100652146645851 0.0000000000000000 -0.0036706343437432 0.0000000000000000 + 0.0168418597307727 0.0000000000000000 -0.0099918936929047 0.0000000000000000 0.0005259246072730 0.0000000000000000 + 0.0106690755761890 0.0000000000000000 0.0069122209429044 0.0000000000000000 -0.0156150191112145 0.0000000000000000 12 8 - 0.0053960771921625 0.0000000000000000 0.0041883714492611 0.0000000000000000 0.0052382113260758 0.0000000000000000 - 0.0027777266316761 0.0000000000000000 0.0037383917967320 0.0000000000000000 -0.0007249474944407 0.0000000000000000 - -0.0010754919735296 0.0000000000000000 0.0001605357525145 0.0000000000000000 -0.0008206821613088 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 0.0041883714492619 0.0000000000000000 0.0052382113260839 0.0000000000000000 + 0.0027777266316761 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0007249474944354 0.0000000000000000 + -0.0010754919735288 0.0000000000000000 0.0001605357525140 0.0000000000000000 -0.0008206821613054 0.0000000000000000 12 9 - 0.0043670482201904 0.0000000000000000 -0.0073649825438683 0.0000000000000000 0.0069798143243285 0.0000000000000000 - -0.0062527546419647 0.0000000000000000 -0.0050060184798403 0.0000000000000000 0.0003322634792074 0.0000000000000000 - 0.0032245610064169 0.0000000000000000 -0.0046134194019421 0.0000000000000000 0.0072531804468972 0.0000000000000000 + 0.0043670482201907 0.0000000000000000 -0.0073649825438783 0.0000000000000000 0.0069798143243326 0.0000000000000000 + -0.0062527546419648 0.0000000000000000 -0.0050060184798469 0.0000000000000000 0.0003322634792084 0.0000000000000000 + 0.0032245610064170 0.0000000000000000 -0.0046134194019461 0.0000000000000000 0.0072531804468980 0.0000000000000000 12 10 - -0.2042620382020978 0.0000000000000000 -0.0961493426419367 0.0000000000000000 -0.0680988033808369 0.0000000000000000 - -0.1111612914471592 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0633030715249510 0.0000000000000000 - -0.0678004081048687 0.0000000000000000 -0.0626077946132231 0.0000000000000000 -0.0673384314526842 0.0000000000000000 + -0.2042620382021260 0.0000000000000000 -0.0961493426419365 0.0000000000000000 -0.0680988033808350 0.0000000000000000 + -0.1111612914471765 0.0000000000000000 -0.1150790588758506 0.0000000000000000 -0.0633030715249474 0.0000000000000000 + -0.0678004081048794 0.0000000000000000 -0.0626077946132203 0.0000000000000000 -0.0673384314526816 0.0000000000000000 12 11 - -0.0299583471230510 0.0000000000000000 -0.0025306649736040 0.0000000000000000 0.0001964280885690 0.0000000000000000 - 0.0025306649736035 0.0000000000000000 0.0189330240079888 0.0000000000000000 0.0130002466230981 0.0000000000000000 - -0.0001964280885689 0.0000000000000000 0.0130002466230982 0.0000000000000000 0.0113735279572512 0.0000000000000000 + -0.0299583471230341 0.0000000000000000 -0.0025306649736115 0.0000000000000000 0.0001964280885642 0.0000000000000000 + 0.0025306649736114 0.0000000000000000 0.0189330240079811 0.0000000000000000 0.0130002466230938 0.0000000000000000 + -0.0001964280885646 0.0000000000000000 0.0130002466230935 0.0000000000000000 0.0113735279572483 0.0000000000000000 12 12 - 0.2174594979186231 0.0000000000000000 0.0954682304260121 0.0000000000000000 0.0600636707989498 0.0000000000000000 - 0.0954682304260121 0.0000000000000000 0.1104252604741411 0.0000000000000000 0.0503426131734401 0.0000000000000000 - 0.0600636707989498 0.0000000000000000 0.0503426131734401 0.0000000000000000 0.0677190190410539 0.0000000000000000 + 0.2174594979186313 0.0000000000000000 0.0954682304260197 0.0000000000000000 0.0600636707989549 0.0000000000000000 + 0.0954682304260198 0.0000000000000000 0.1104252604741433 0.0000000000000000 0.0503426131734418 0.0000000000000000 + 0.0600636707989550 0.0000000000000000 0.0503426131734418 0.0000000000000000 0.0677190190410545 0.0000000000000000 Diagonalizing the dynamical matrix q = ( 0.000000000000 0.000000000000 0.000000000000 ) *************************************************************************** - freq ( 1) = -0.00000069 [THz] = -0.00002302 [cm-1] -( -0.000000 0.000000 -0.040715 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040715 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040715 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040715 0.000000 0.285789 0.000000 ) -( -0.000000 0.000000 -0.040715 0.000000 0.285789 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285790 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285789 0.000000 ) -( -0.000000 0.000000 -0.040714 0.000000 0.285789 0.000000 ) - freq ( 2) = -0.00000037 [THz] = -0.00001228 [cm-1] -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) -( -0.000001 0.000000 0.285790 0.000000 0.040714 0.000000 ) - freq ( 3) = 0.00000052 [THz] = 0.00001738 [cm-1] -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) -( -0.288675 0.000000 -0.000001 0.000000 -0.000000 0.000000 ) + freq ( 1) = -0.00000056 [THz] = -0.00001880 [cm-1] +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) +( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) + freq ( 2) = -0.00000049 [THz] = -0.00001648 [cm-1] +( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) +( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) + freq ( 3) = -0.00000020 [THz] = -0.00000651 [cm-1] +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) +( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) freq ( 4) = 1.74178330 [THz] = 58.09962873 [cm-1] -( -0.000000 0.000000 0.300463 0.000000 -0.002787 0.000000 ) -( -0.000000 0.000000 0.166848 0.000000 0.011440 0.000000 ) -( -0.000000 0.000000 0.312940 0.000000 -0.065663 0.000000 ) -( -0.000000 0.000000 0.298008 0.000000 0.002144 0.000000 ) -( 0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) -( -0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) -( 0.000000 0.000000 -0.300463 0.000000 -0.002787 0.000000 ) -( 0.000000 0.000000 -0.166848 0.000000 0.011440 0.000000 ) -( 0.000000 0.000000 -0.312940 0.000000 -0.065663 0.000000 ) -( 0.000000 0.000000 -0.298008 0.000000 0.002144 0.000000 ) -( -0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) -( 0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) +( 0.000000 0.000000 -0.300463 0.000000 0.002787 0.000000 ) +( 0.000000 0.000000 -0.166848 0.000000 -0.011440 0.000000 ) +( 0.000000 0.000000 -0.312940 0.000000 0.065663 0.000000 ) +( 0.000000 0.000000 -0.298008 0.000000 -0.002144 0.000000 ) +( -0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) +( 0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) +( -0.000000 0.000000 0.300463 0.000000 0.002787 0.000000 ) +( -0.000000 0.000000 0.166848 0.000000 -0.011440 0.000000 ) +( -0.000000 0.000000 0.312940 0.000000 0.065663 0.000000 ) +( -0.000000 0.000000 0.298008 0.000000 -0.002144 0.000000 ) +( 0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) +( -0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) freq ( 5) = 1.75809446 [THz] = 58.64371051 [cm-1] -( 0.305440 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.126386 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.338635 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.290653 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.301191 0.000000 -0.017342 0.000000 -0.069092 0.000000 ) -( 0.301191 0.000000 0.017342 0.000000 0.069092 0.000000 ) ( -0.305440 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.126386 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.338635 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.126386 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.338635 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.290653 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) -( -0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) +( -0.301191 0.000000 0.017342 0.000000 0.069092 0.000000 ) +( -0.301191 0.000000 -0.017342 0.000000 -0.069092 0.000000 ) +( 0.305440 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.126386 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.338635 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.290653 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) +( 0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) freq ( 6) = 4.65916041 [THz] = 155.41284058 [cm-1] -( 0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) +( -0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) ( -0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) -( 0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) -( 0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) +( -0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) +( -0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) -( -0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) +( 0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) ( -0.000000 0.000000 -0.043691 0.000000 -0.347361 0.000000 ) -( -0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) +( 0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) ( -0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) freq ( 7) = 6.03591072 [THz] = 201.33628095 [cm-1] -( -0.305036 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.315550 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.136548 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.302481 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.296555 0.000000 -0.062886 0.000000 0.081985 0.000000 ) -( 0.296555 0.000000 0.062886 0.000000 -0.081985 0.000000 ) -( 0.305036 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.315550 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.136548 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.302481 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) -( -0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) +( 0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.136548 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.302481 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.296555 0.000000 0.062886 0.000000 -0.081985 0.000000 ) +( -0.296555 0.000000 -0.062886 0.000000 0.081985 0.000000 ) +( -0.305036 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.315550 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.136548 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.302481 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) +( 0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) freq ( 8) = 6.15949351 [THz] = 205.45855860 [cm-1] -( -0.000000 0.000000 0.203150 0.000000 0.219537 0.000000 ) -( -0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) -( -0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) -( 0.000000 0.000000 -0.209804 0.000000 -0.243059 0.000000 ) -( 0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) -( -0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) -( 0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) -( 0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) -( 0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) -( -0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) -( -0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) -( 0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) +( 0.000000 0.000000 -0.203150 0.000000 -0.219537 0.000000 ) +( 0.000000 0.000000 -0.278164 0.000000 -0.273652 0.000000 ) +( 0.000000 0.000000 -0.239679 0.000000 -0.256163 0.000000 ) +( -0.000000 0.000000 0.209804 0.000000 0.243059 0.000000 ) +( -0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) +( 0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) +( -0.000000 0.000000 0.203150 0.000000 -0.219537 0.000000 ) +( -0.000000 0.000000 0.278164 0.000000 -0.273652 0.000000 ) +( -0.000000 0.000000 0.239679 0.000000 -0.256163 0.000000 ) +( 0.000000 0.000000 -0.209804 0.000000 0.243059 0.000000 ) +( 0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) +( -0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) freq ( 9) = 6.29096533 [THz] = 209.84398575 [cm-1] -( 0.358540 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.113174 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.133490 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) -( -0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) -( 0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.336051 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.301790 0.000000 0.122269 0.000000 0.088986 0.000000 ) -( -0.301790 0.000000 -0.122269 0.000000 -0.088986 0.000000 ) +( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.336051 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) +( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) +( -0.358540 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.113174 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.133490 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.301790 0.000000 -0.122269 0.000000 -0.088986 0.000000 ) +( 0.301790 0.000000 0.122269 0.000000 0.088986 0.000000 ) freq ( 10) = 6.49240646 [THz] = 216.56333753 [cm-1] -( 0.000000 0.000000 0.011726 0.000000 0.284473 0.000000 ) -( 0.000000 0.000000 -0.002760 0.000000 0.290652 0.000000 ) -( 0.000000 0.000000 0.028179 0.000000 0.250498 0.000000 ) -( -0.000000 0.000000 -0.012114 0.000000 0.301639 0.000000 ) -( 0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) -( -0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) -( 0.000000 0.000000 0.011726 0.000000 -0.284473 0.000000 ) -( 0.000000 0.000000 -0.002760 0.000000 -0.290652 0.000000 ) -( 0.000000 0.000000 0.028179 0.000000 -0.250498 0.000000 ) -( -0.000000 0.000000 -0.012114 0.000000 -0.301639 0.000000 ) -( 0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) -( -0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) +( -0.000000 0.000000 -0.011726 0.000000 -0.284473 0.000000 ) +( -0.000000 0.000000 0.002760 0.000000 -0.290652 0.000000 ) +( -0.000000 0.000000 -0.028179 0.000000 -0.250498 0.000000 ) +( 0.000000 0.000000 0.012114 0.000000 -0.301639 0.000000 ) +( -0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) +( 0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) +( -0.000000 0.000000 -0.011726 0.000000 0.284473 0.000000 ) +( -0.000000 0.000000 0.002760 0.000000 0.290652 0.000000 ) +( -0.000000 0.000000 -0.028179 0.000000 0.250498 0.000000 ) +( 0.000000 0.000000 0.012114 0.000000 0.301639 0.000000 ) +( -0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) +( 0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) freq ( 11) = 8.28300944 [THz] = 276.29141531 [cm-1] -( 0.000000 0.000000 -0.338439 0.000000 0.044008 0.000000 ) -( 0.000000 0.000000 -0.194825 0.000000 0.047214 0.000000 ) -( 0.000000 0.000000 -0.343457 0.000000 0.016680 0.000000 ) -( -0.000000 0.000000 0.345335 0.000000 -0.006237 0.000000 ) -( -0.039099 0.000000 0.214419 0.000000 -0.073458 0.000000 ) -( 0.039099 0.000000 0.214419 0.000000 -0.073458 0.000000 ) -( 0.000000 0.000000 -0.338439 0.000000 -0.044008 0.000000 ) -( -0.000000 0.000000 -0.194825 0.000000 -0.047214 0.000000 ) -( 0.000000 0.000000 -0.343457 0.000000 -0.016680 0.000000 ) -( 0.000000 0.000000 0.345335 0.000000 0.006237 0.000000 ) -( -0.039099 0.000000 0.214419 0.000000 0.073458 0.000000 ) -( 0.039099 0.000000 0.214419 0.000000 0.073458 0.000000 ) +( -0.000000 0.000000 0.338439 0.000000 -0.044008 0.000000 ) +( -0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) +( -0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) +( 0.000000 0.000000 -0.345335 0.000000 0.006237 0.000000 ) +( 0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) +( -0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) +( -0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) +( -0.000000 0.000000 0.194825 0.000000 0.047214 0.000000 ) +( -0.000000 0.000000 0.343457 0.000000 0.016680 0.000000 ) +( -0.000000 0.000000 -0.345335 0.000000 -0.006237 0.000000 ) +( 0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) +( -0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) freq ( 12) = 8.43189918 [THz] = 281.25784182 [cm-1] -( 0.000000 0.000000 -0.229760 0.000000 0.213402 0.000000 ) -( -0.000000 0.000000 -0.281970 0.000000 0.221619 0.000000 ) -( -0.000000 0.000000 -0.166741 0.000000 0.115050 0.000000 ) -( -0.000000 0.000000 0.236152 0.000000 -0.212913 0.000000 ) -( -0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) -( 0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) -( -0.000000 0.000000 0.229760 0.000000 0.213402 0.000000 ) -( -0.000000 0.000000 0.281970 0.000000 0.221619 0.000000 ) -( -0.000000 0.000000 0.166741 0.000000 0.115050 0.000000 ) -( 0.000000 0.000000 -0.236152 0.000000 -0.212913 0.000000 ) -( 0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) -( -0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) +( -0.000000 0.000000 0.229760 0.000000 -0.213402 0.000000 ) +( -0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) +( -0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) +( 0.000000 0.000000 -0.236152 0.000000 0.212913 0.000000 ) +( 0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) +( -0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) +( -0.000000 0.000000 -0.229760 0.000000 -0.213402 0.000000 ) +( 0.000000 0.000000 -0.281970 0.000000 -0.221619 0.000000 ) +( -0.000000 0.000000 -0.166741 0.000000 -0.115050 0.000000 ) +( -0.000000 0.000000 0.236152 0.000000 0.212913 0.000000 ) +( -0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) +( 0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) freq ( 13) = 15.52715504 [THz] = 517.93006796 [cm-1] -( -0.003319 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.136710 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.394334 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.009417 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.177193 0.000000 -0.356157 0.000000 -0.067900 0.000000 ) -( -0.177193 0.000000 0.356157 0.000000 0.067900 0.000000 ) -( -0.003319 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.136710 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.394334 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.009417 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.177193 0.000000 -0.356157 0.000000 0.067900 0.000000 ) -( -0.177193 0.000000 0.356157 0.000000 -0.067900 0.000000 ) +( 0.003319 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.136710 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.394334 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.009417 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.177193 0.000000 0.356157 0.000000 0.067900 0.000000 ) +( 0.177193 0.000000 -0.356157 0.000000 -0.067900 0.000000 ) +( 0.003319 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.136710 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.394334 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.009417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.177193 0.000000 0.356157 0.000000 -0.067900 0.000000 ) +( 0.177193 0.000000 -0.356157 0.000000 0.067900 0.000000 ) freq ( 14) = 15.77685603 [THz] = 526.25919529 [cm-1] -( -0.000000 0.000000 0.006657 0.000000 0.008034 0.000000 ) -( -0.000000 0.000000 -0.432968 0.000000 0.015983 0.000000 ) -( 0.000000 0.000000 0.143749 0.000000 -0.426045 0.000000 ) -( -0.000000 0.000000 -0.004900 0.000000 -0.011633 0.000000 ) -( 0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) -( -0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) -( 0.000000 0.000000 0.006657 0.000000 -0.008034 0.000000 ) -( 0.000000 0.000000 -0.432968 0.000000 -0.015983 0.000000 ) -( -0.000000 0.000000 0.143749 0.000000 0.426045 0.000000 ) -( 0.000000 0.000000 -0.004900 0.000000 0.011633 0.000000 ) -( 0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) -( -0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) +( 0.000000 0.000000 -0.006657 0.000000 -0.008034 0.000000 ) +( 0.000000 0.000000 0.432968 0.000000 -0.015983 0.000000 ) +( -0.000000 0.000000 -0.143749 0.000000 0.426045 0.000000 ) +( 0.000000 0.000000 0.004900 0.000000 0.011633 0.000000 ) +( -0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) +( 0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) +( -0.000000 0.000000 -0.006657 0.000000 0.008034 0.000000 ) +( -0.000000 0.000000 0.432968 0.000000 0.015983 0.000000 ) +( 0.000000 0.000000 -0.143749 0.000000 -0.426045 0.000000 ) +( -0.000000 0.000000 0.004900 0.000000 -0.011633 0.000000 ) +( -0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) +( 0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) freq ( 15) = 15.80580280 [THz] = 527.22475550 [cm-1] -( 0.020053 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.114237 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.468968 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.000805 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.127463 0.000000 0.299100 0.000000 0.166134 0.000000 ) -( 0.127463 0.000000 -0.299100 0.000000 -0.166134 0.000000 ) -( -0.020053 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.114237 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.468968 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.000805 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) -( -0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) +( -0.020053 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.114237 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.468968 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.000805 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.127463 0.000000 -0.299100 0.000000 -0.166134 0.000000 ) +( -0.127463 0.000000 0.299100 0.000000 0.166134 0.000000 ) +( 0.020053 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.114237 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.468968 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.000805 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) +( 0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) freq ( 16) = 16.34770861 [THz] = 545.30078498 [cm-1] -( -0.007401 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.375543 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.009605 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.005927 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.180873 0.000000 -0.047434 0.000000 0.380036 0.000000 ) -( -0.180873 0.000000 0.047434 0.000000 -0.380036 0.000000 ) -( -0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.375543 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.009605 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.005927 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) -( -0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) +( 0.007401 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.375543 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.009605 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.005927 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.180873 0.000000 0.047434 0.000000 -0.380036 0.000000 ) +( 0.180873 0.000000 -0.047434 0.000000 0.380036 0.000000 ) +( 0.007401 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.375543 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.009605 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.005927 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) +( 0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) freq ( 17) = 17.38212592 [THz] = 579.80522742 [cm-1] -( -0.000000 0.000000 0.006663 0.000000 0.018085 0.000000 ) -( 0.000000 0.000000 -0.408134 0.000000 0.010473 0.000000 ) +( 0.000000 0.000000 0.006663 0.000000 0.018085 0.000000 ) +( -0.000000 0.000000 -0.408134 0.000000 0.010473 0.000000 ) ( 0.000000 0.000000 0.163504 0.000000 -0.439667 0.000000 ) ( -0.000000 0.000000 -0.029278 0.000000 -0.015379 0.000000 ) ( 0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) ( -0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) -( 0.000000 0.000000 -0.006663 0.000000 0.018085 0.000000 ) +( -0.000000 0.000000 -0.006663 0.000000 0.018085 0.000000 ) ( 0.000000 0.000000 0.408134 0.000000 0.010473 0.000000 ) ( -0.000000 0.000000 -0.163504 0.000000 -0.439667 0.000000 ) ( 0.000000 0.000000 0.029278 0.000000 -0.015379 0.000000 ) ( -0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) ( 0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) freq ( 18) = 18.97560951 [THz] = 632.95811128 [cm-1] -( 0.026207 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.643317 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.123298 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) -( 0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) -( -0.026207 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.643317 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.015257 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) -( -0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) +( -0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.123298 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.015257 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) +( -0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) +( 0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.643317 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.015257 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) +( 0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) freq ( 19) = 21.12523228 [THz] = 704.66179829 [cm-1] -( -0.013094 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.085920 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.044091 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.028235 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.234005 0.000000 0.179515 0.000000 -0.397327 0.000000 ) -( 0.234005 0.000000 -0.179515 0.000000 0.397327 0.000000 ) -( 0.013094 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.085920 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.044091 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.028235 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.234005 0.000000 -0.179515 0.000000 -0.397327 0.000000 ) -( -0.234005 0.000000 0.179515 0.000000 0.397327 0.000000 ) +( 0.013094 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.085920 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.044091 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.028235 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.234005 0.000000 -0.179515 0.000000 0.397327 0.000000 ) +( -0.234005 0.000000 0.179515 0.000000 -0.397327 0.000000 ) +( -0.013094 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.085920 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.044091 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.028235 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.234005 0.000000 0.179515 0.000000 0.397327 0.000000 ) +( 0.234005 0.000000 -0.179515 0.000000 -0.397327 0.000000 ) freq ( 20) = 21.48012875 [THz] = 716.49986854 [cm-1] -( -0.000000 0.000000 0.023138 0.000000 0.023077 0.000000 ) -( -0.000000 0.000000 -0.258260 0.000000 0.021831 0.000000 ) -( 0.000000 0.000000 0.110150 0.000000 -0.197757 0.000000 ) -( -0.000000 0.000000 0.012521 0.000000 0.033285 0.000000 ) +( 0.000000 0.000000 0.023138 0.000000 0.023077 0.000000 ) +( 0.000000 0.000000 -0.258260 0.000000 0.021831 0.000000 ) +( -0.000000 0.000000 0.110150 0.000000 -0.197757 0.000000 ) +( 0.000000 0.000000 0.012521 0.000000 0.033285 0.000000 ) ( -0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) ( 0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) -( 0.000000 0.000000 -0.023138 0.000000 0.023077 0.000000 ) -( 0.000000 0.000000 0.258260 0.000000 0.021831 0.000000 ) -( -0.000000 0.000000 -0.110150 0.000000 -0.197757 0.000000 ) -( 0.000000 0.000000 -0.012521 0.000000 0.033285 0.000000 ) +( -0.000000 0.000000 -0.023138 0.000000 0.023077 0.000000 ) +( -0.000000 0.000000 0.258260 0.000000 0.021831 0.000000 ) +( 0.000000 0.000000 -0.110150 0.000000 -0.197757 0.000000 ) +( -0.000000 0.000000 -0.012521 0.000000 0.033285 0.000000 ) ( 0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) ( -0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) freq ( 21) = 23.22408051 [THz] = 774.67182954 [cm-1] -( 0.005428 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.451089 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.300552 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.000234 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.034054 0.000000 0.186115 0.000000 0.259385 0.000000 ) -( 0.034054 0.000000 -0.186115 0.000000 -0.259385 0.000000 ) -( 0.005428 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.451089 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.300552 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.000234 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.034054 0.000000 0.186115 0.000000 -0.259385 0.000000 ) -( 0.034054 0.000000 -0.186115 0.000000 0.259385 0.000000 ) +( -0.005428 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.451089 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.300552 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.000234 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.034054 0.000000 -0.186115 0.000000 -0.259385 0.000000 ) +( -0.034054 0.000000 0.186115 0.000000 0.259385 0.000000 ) +( -0.005428 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.451089 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.300552 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.000234 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.034054 0.000000 -0.186115 0.000000 0.259385 0.000000 ) +( -0.034054 0.000000 0.186115 0.000000 -0.259385 0.000000 ) freq ( 22) = 23.36210667 [THz] = 779.27588592 [cm-1] -( 0.000000 0.000000 0.018519 0.000000 0.017965 0.000000 ) -( -0.000000 0.000000 -0.267387 0.000000 0.025126 0.000000 ) -( 0.000000 0.000000 0.103166 0.000000 -0.181808 0.000000 ) -( -0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) +( -0.000000 0.000000 0.018519 0.000000 0.017965 0.000000 ) +( 0.000000 0.000000 -0.267387 0.000000 0.025126 0.000000 ) +( -0.000000 0.000000 0.103166 0.000000 -0.181808 0.000000 ) +( 0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) ( -0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) ( 0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) -( 0.000000 0.000000 0.018519 0.000000 -0.017965 0.000000 ) -( -0.000000 0.000000 -0.267387 0.000000 -0.025126 0.000000 ) -( 0.000000 0.000000 0.103166 0.000000 0.181808 0.000000 ) -( 0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) +( -0.000000 0.000000 0.018519 0.000000 -0.017965 0.000000 ) +( 0.000000 0.000000 -0.267387 0.000000 -0.025126 0.000000 ) +( -0.000000 0.000000 0.103166 0.000000 0.181808 0.000000 ) +( -0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) ( -0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) ( 0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) freq ( 23) = 23.82111353 [THz] = 794.58670445 [cm-1] -( -0.033391 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.247417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.503562 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.010494 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.066182 0.000000 0.245304 0.000000 0.165645 0.000000 ) -( 0.066182 0.000000 -0.245304 0.000000 -0.165645 0.000000 ) -( 0.033391 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.247417 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.503562 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.010494 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.066182 0.000000 -0.245304 0.000000 0.165645 0.000000 ) -( -0.066182 0.000000 0.245304 0.000000 -0.165645 0.000000 ) +( 0.033391 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.247417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.503562 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.010494 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.066182 0.000000 -0.245304 0.000000 -0.165645 0.000000 ) +( -0.066182 0.000000 0.245304 0.000000 0.165645 0.000000 ) +( -0.033391 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.247417 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.503562 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.010494 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.066182 0.000000 0.245304 0.000000 -0.165645 0.000000 ) +( 0.066182 0.000000 -0.245304 0.000000 0.165645 0.000000 ) freq ( 24) = 24.61305360 [THz] = 821.00297787 [cm-1] -( 0.042660 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.359994 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.505918 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.025499 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.107892 0.000000 -0.176896 0.000000 0.114270 0.000000 ) -( -0.107892 0.000000 0.176896 0.000000 -0.114270 0.000000 ) -( 0.042660 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.359994 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.505918 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.025499 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.107892 0.000000 -0.176896 0.000000 -0.114270 0.000000 ) -( -0.107892 0.000000 0.176896 0.000000 0.114270 0.000000 ) +( -0.042660 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.359994 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.505918 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.025499 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.107892 0.000000 0.176896 0.000000 -0.114270 0.000000 ) +( 0.107892 0.000000 -0.176896 0.000000 0.114270 0.000000 ) +( -0.042660 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.359994 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.505918 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.025499 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.107892 0.000000 0.176896 0.000000 0.114270 0.000000 ) +( 0.107892 0.000000 -0.176896 0.000000 -0.114270 0.000000 ) freq ( 25) = 32.09428546 [THz] = 1070.54997601 [cm-1] -( 0.000000 0.000000 -0.035654 0.000000 0.024948 0.000000 ) -( -0.000000 0.000000 0.496236 0.000000 0.024837 0.000000 ) -( 0.000000 0.000000 0.120098 0.000000 -0.436907 0.000000 ) -( 0.000000 0.000000 -0.003481 0.000000 0.011802 0.000000 ) -( 0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) -( -0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) -( 0.000000 0.000000 0.035654 0.000000 0.024948 0.000000 ) -( -0.000000 0.000000 -0.496236 0.000000 0.024837 0.000000 ) -( -0.000000 0.000000 -0.120098 0.000000 -0.436907 0.000000 ) -( 0.000000 0.000000 0.003481 0.000000 0.011802 0.000000 ) -( -0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) -( 0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) +( -0.000000 0.000000 0.035654 0.000000 -0.024948 0.000000 ) +( 0.000000 0.000000 -0.496236 0.000000 -0.024837 0.000000 ) +( -0.000000 0.000000 -0.120098 0.000000 0.436907 0.000000 ) +( 0.000000 0.000000 0.003481 0.000000 -0.011802 0.000000 ) +( -0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) +( 0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) +( -0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) +( 0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) +( 0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) +( 0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) +( 0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) +( -0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) freq ( 26) = 32.55854203 [THz] = 1086.03590588 [cm-1] -( 0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) -( -0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) -( -0.000000 0.000000 -0.103721 0.000000 0.347526 0.000000 ) -( -0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) +( -0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) +( 0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) +( 0.000000 0.000000 -0.103721 0.000000 0.347526 0.000000 ) +( 0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) -( -0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) +( 0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) ( 0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) -( 0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) +( -0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) ( -0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) freq ( 27) = 34.33677276 [THz] = 1145.35128984 [cm-1] -( 0.000000 0.000000 0.023259 0.000000 -0.023011 0.000000 ) +( -0.000000 0.000000 0.023259 0.000000 -0.023011 0.000000 ) ( 0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) -( -0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) -( 0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) +( 0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) +( -0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( -0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) ( 0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) ( 0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) -( 0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) +( -0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) freq ( 28) = 34.43427982 [THz] = 1148.60377497 [cm-1] -( 0.000000 0.000000 -0.002777 0.000000 0.003396 0.000000 ) -( 0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) -( -0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) -( -0.000000 0.000000 0.031764 0.000000 -0.019397 0.000000 ) -( -0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) -( 0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) -( 0.000000 0.000000 0.002777 0.000000 0.003396 0.000000 ) -( -0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) -( -0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) -( 0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) -( 0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) -( -0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) +( -0.000000 0.000000 0.002777 0.000000 -0.003396 0.000000 ) +( -0.000000 0.000000 -0.136805 0.000000 -0.007772 0.000000 ) +( 0.000000 0.000000 -0.017157 0.000000 0.165743 0.000000 ) +( 0.000000 0.000000 -0.031764 0.000000 0.019397 0.000000 ) +( 0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) +( -0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) +( -0.000000 0.000000 -0.002777 0.000000 -0.003396 0.000000 ) +( -0.000000 0.000000 0.136805 0.000000 -0.007772 0.000000 ) +( -0.000000 0.000000 0.017157 0.000000 0.165743 0.000000 ) +( -0.000000 0.000000 0.031764 0.000000 0.019397 0.000000 ) +( -0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) +( 0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) freq ( 29) = 58.49309377 [THz] = 1951.11931058 [cm-1] -( 0.000000 0.000000 -0.000385 0.000000 -0.044914 0.000000 ) -( 0.000000 0.000000 -0.004574 0.000000 0.685508 0.000000 ) -( 0.000000 0.000000 -0.037283 0.000000 -0.020274 0.000000 ) -( -0.000000 0.000000 -0.006725 0.000000 0.007763 0.000000 ) -( -0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) -( 0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) -( 0.000000 0.000000 0.000385 0.000000 -0.044914 0.000000 ) -( 0.000000 0.000000 0.004574 0.000000 0.685508 0.000000 ) -( -0.000000 0.000000 0.037283 0.000000 -0.020274 0.000000 ) -( -0.000000 0.000000 0.006725 0.000000 0.007763 0.000000 ) -( 0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) -( -0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) +( -0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) +( 0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) +( -0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) +( 0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) +( 0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) +( -0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) +( 0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) +( 0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) +( 0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) +( -0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) +( -0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) +( 0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) freq ( 30) = 58.64595875 [THz] = 1956.21833687 [cm-1] -( -0.000000 0.000000 0.038621 0.000000 0.009281 0.000000 ) -( -0.000000 0.000000 -0.029768 0.000000 0.049879 0.000000 ) -( -0.000000 0.000000 -0.559468 0.000000 -0.148460 0.000000 ) -( 0.000000 0.000000 0.018040 0.000000 -0.013870 0.000000 ) -( 0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) -( -0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) -( -0.000000 0.000000 0.038621 0.000000 -0.009281 0.000000 ) -( -0.000000 0.000000 -0.029768 0.000000 -0.049879 0.000000 ) -( -0.000000 0.000000 -0.559468 0.000000 0.148460 0.000000 ) -( 0.000000 0.000000 0.018040 0.000000 0.013870 0.000000 ) -( 0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) -( -0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) +( 0.000000 0.000000 -0.038621 0.000000 -0.009281 0.000000 ) +( 0.000000 0.000000 0.029768 0.000000 -0.049879 0.000000 ) +( 0.000000 0.000000 0.559468 0.000000 0.148460 0.000000 ) +( -0.000000 0.000000 -0.018040 0.000000 0.013870 0.000000 ) +( -0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) +( 0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) +( 0.000000 0.000000 -0.038621 0.000000 0.009281 0.000000 ) +( 0.000000 0.000000 0.029768 0.000000 0.049879 0.000000 ) +( 0.000000 0.000000 0.559468 0.000000 -0.148460 0.000000 ) +( -0.000000 0.000000 -0.018040 0.000000 -0.013870 0.000000 ) +( -0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) +( 0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) freq ( 31) = 59.18441210 [THz] = 1974.17920491 [cm-1] -( 0.003846 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.003416 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.057236 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) -( 0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) -( 0.003846 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.003416 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.057236 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) -( 0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) +( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.003416 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.057236 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) +( -0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) +( -0.003846 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.057236 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) +( -0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) freq ( 32) = 59.64579843 [THz] = 1989.56939401 [cm-1] -( -0.004387 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.015191 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.055912 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) -( -0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) -( 0.004387 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.015191 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.055912 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.402838 0.000000 -0.249120 0.000000 -0.154587 0.000000 ) -( 0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) +( 0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.012328 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.015191 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.055912 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) +( 0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) +( -0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.012328 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.015191 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.055912 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) +( -0.402838 0.000000 -0.249120 0.000000 -0.154587 0.000000 ) freq ( 33) = 61.28050278 [THz] = 2044.09725399 [cm-1] ( 0.000000 0.000000 0.043022 0.000000 0.019555 0.000000 ) -( 0.000000 0.000000 -0.011017 0.000000 -0.020659 0.000000 ) +( -0.000000 0.000000 -0.011017 0.000000 -0.020659 0.000000 ) ( 0.000000 0.000000 -0.669201 0.000000 -0.219427 0.000000 ) ( -0.000000 0.000000 -0.002372 0.000000 -0.002514 0.000000 ) ( 0.017848 0.000000 0.008103 0.000000 -0.015175 0.000000 ) @@ -1036,42 +1036,42 @@ Basis vectors ( -0.017848 0.000000 -0.008103 0.000000 -0.015175 0.000000 ) ( 0.017848 0.000000 -0.008103 0.000000 -0.015175 0.000000 ) freq ( 34) = 63.16500883 [THz] = 2106.95760040 [cm-1] -( 0.000000 0.000000 -0.001416 0.000000 -0.045005 0.000000 ) -( 0.000000 0.000000 0.005022 0.000000 0.703766 0.000000 ) -( 0.000000 0.000000 0.015560 0.000000 0.013643 0.000000 ) -( -0.000000 0.000000 -0.003291 0.000000 0.001095 0.000000 ) -( -0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) -( 0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) -( -0.000000 0.000000 -0.001416 0.000000 0.045005 0.000000 ) -( -0.000000 0.000000 0.005022 0.000000 -0.703766 0.000000 ) -( -0.000000 0.000000 0.015560 0.000000 -0.013643 0.000000 ) -( 0.000000 0.000000 -0.003291 0.000000 -0.001095 0.000000 ) -( -0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) -( 0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) +( -0.000000 0.000000 0.001416 0.000000 0.045005 0.000000 ) +( -0.000000 0.000000 -0.005022 0.000000 -0.703766 0.000000 ) +( -0.000000 0.000000 -0.015560 0.000000 -0.013643 0.000000 ) +( 0.000000 0.000000 0.003291 0.000000 -0.001095 0.000000 ) +( 0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) +( -0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) +( -0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) +( -0.000000 0.000000 -0.005022 0.000000 0.703766 0.000000 ) +( 0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) +( 0.000000 0.000000 0.003291 0.000000 0.001095 0.000000 ) +( 0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) +( -0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) freq ( 35) = 63.58360137 [THz] = 2120.92034271 [cm-1] -( -0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) +( 0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) ( 0.000000 0.000000 0.020599 0.000000 -0.158729 0.000000 ) ( -0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) -( 0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) +( -0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) ( -0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) ( 0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) ( 0.000000 0.000000 -0.000415 0.000000 0.010914 0.000000 ) ( 0.000000 0.000000 -0.020599 0.000000 -0.158729 0.000000 ) -( 0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) -( -0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) +( -0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) +( 0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) ( 0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) ( -0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) freq ( 36) = 65.67178765 [THz] = 2190.57472950 [cm-1] -( 0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) -( 0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) -( 0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) -( -0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) +( -0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) +( -0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) +( -0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) +( 0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) ( -0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) ( 0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) -( 0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) -( 0.000000 0.000000 0.012953 0.000000 0.011116 0.000000 ) +( -0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) +( -0.000000 0.000000 0.012953 0.000000 0.011116 0.000000 ) ( 0.000000 0.000000 -0.369990 0.000000 0.144128 0.000000 ) -( -0.000000 0.000000 -0.024431 0.000000 -0.017416 0.000000 ) +( 0.000000 0.000000 -0.024431 0.000000 -0.017416 0.000000 ) ( -0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) ( 0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) *************************************************************************** From adfc4a2735d27404032042c860a3dfbda3a89b98 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 21 Nov 2022 08:42:29 +0100 Subject: [PATCH 048/204] Adding details/comments into dielectric function inputs data --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index b801b10e..5d6b9936 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3148,13 +3148,13 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # """ # Input data: # omega = Frequency -# epsilon_inf = dielctric constant of vacuum +# epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor() # N = -# a = atom a -> M(a) mass of atom a +# a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.gert_masses_array() # b = atom b -> Z(b) atomic number of atom b # nu = damping constant # --------- -# Z() = Born effective charge +# Z() = Born effective charge ---> Phonon.Phonon.effective_charges() # M() = Atomic masses # e() = # omega_nu = resonant frequency From 834ae3c3d0ff09e46b18c75a87d0352043241a52 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 21 Nov 2022 12:57:47 +0100 Subject: [PATCH 049/204] Update testing inputs for dielectric function --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5d6b9936..ae3d1739 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,6 +3145,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") # def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... +# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N) # """ # Input data: # omega = Frequency From 06699165dd0e3f1ccec603b077bfb2e30f78b4f2 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 28 Nov 2022 09:19:55 +0100 Subject: [PATCH 050/204] refractive index --- cellconstructor/Spectral.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ae3d1739..3c25d72a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,11 +3145,11 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") # def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... -# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N) +# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) # """ # Input data: # omega = Frequency -# epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor() +# epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) # N = # a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.gert_masses_array() # b = atom b -> Z(b) atomic number of atom b @@ -3174,4 +3174,5 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # response_function = response1*response2 # # epsilon=epsilon_inf+4*np.pi*response_function +# refractive_index = np.sqrt(epsilon) # return 0 From 3b163a8764b10e6ac7eafdcee3ded2a4f21cabb2 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 29 Nov 2022 11:20:35 +0100 Subject: [PATCH 051/204] initialize epsilon --- cellconstructor/Spectral.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3c25d72a..911ab833 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3151,7 +3151,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # omega = Frequency # epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) # N = -# a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.gert_masses_array() +# a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() # b = atom b -> Z(b) atomic number of atom b # nu = damping constant # --------- @@ -3165,14 +3165,25 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # """ # #electric_charge = 4.803e-10 #Fr (CGS) # electric_charge = 1.602176462e-19 #C (SI) +# epsilon = np.zeros((3,3)) +# # Prepare the tensor2 and obtain masses +# tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) +# tensor2.SetupFromPhonons(dyn) +# tensor2.Center() +# structure = tensor2.unitcell_structure +# M()=structure.get_masses_array() +# #prepare the dielctric tensor of vacuum +# epsilon_inf = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) +# #epsilon_inf.dielectric_tensor() # # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(atom_a): # for b in range(atom_b): -# temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) +# temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) # response2 += temp # response_function = response1*response2 # -# epsilon=epsilon_inf+4*np.pi*response_function +# #epsilon=epsilon_inf+4*np.pi*response_function +# epsilon=epsilon_inf.dielectric_tensor+4*np.pi*response_function # refractive_index = np.sqrt(epsilon) # return 0 From 1fbe1e72c3699c4f533b5a447d2d92079e404eeb Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 30 Nov 2022 10:49:50 +0100 Subject: [PATCH 052/204] Getting effective charges --- cellconstructor/Spectral.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 911ab833..ad4f2f0c 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3172,9 +3172,10 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # tensor2.Center() # structure = tensor2.unitcell_structure # M()=structure.get_masses_array() -# #prepare the dielctric tensor of vacuum -# epsilon_inf = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) -# #epsilon_inf.dielectric_tensor() +# #prepare the dielctric tensor of vacuum and effective charges +# Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) +# epsilon_inf() = Fonon.dielectric_tensor() +# Z() = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(atom_a): @@ -3183,7 +3184,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # response2 += temp # response_function = response1*response2 # -# #epsilon=epsilon_inf+4*np.pi*response_function -# epsilon=epsilon_inf.dielectric_tensor+4*np.pi*response_function +# epsilon=epsilon_inf+4*np.pi*response_function +# # refractive_index = np.sqrt(epsilon) # return 0 From 21197fbd3a997fa5b63ff7f26544cc10fbc58b69 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 30 Nov 2022 14:07:39 +0100 Subject: [PATCH 053/204] Different off-diagonal spectral function --- FModules/third_order_cond.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 056b5f4c..8810792e 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -541,7 +541,8 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra END IF do n = 1, nat3 do m = 1, nat3 - spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi + !spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi + spectralf(m,n,ie)=spectralf(m,n,ie)-DIMAG(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi enddo enddo ENDDO From 9a8443b426d9d1cce60843675861f33a3fe7d1d6 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 1 Dec 2022 12:17:21 +0100 Subject: [PATCH 054/204] Set N_atoms for response function --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ad4f2f0c..5d9d0854 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3178,9 +3178,9 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # Z() = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # # response1 = -(N/Big_omega) * electric_charge**2 -# for a in range(atom_a): -# for b in range(atom_b): -# temp = ((Z(a)*Z(b))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) +# for a in range(dyn.structure.N_atoms): +# for b in range(dyn.structure.N_atoms): +# temp = ((Z(a,:,:)*Z(b,:,:))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) # response2 += temp # response_function = response1*response2 # From b2d6335470742bf38930f26d7dd9b23d466a1dd5 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 2 Dec 2022 10:57:29 +0100 Subject: [PATCH 055/204] Imaginary and real part of spectral function! --- FModules/get_lf.f90 | 29 +++++++++---- FModules/third_order_cond.f90 | 58 ++++++++++++++++++++++++-- cellconstructor/ThermalConductivity.py | 43 +++++++++++++++---- 3 files changed, 110 insertions(+), 20 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index d98df888..048288f3 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -170,7 +170,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev real(kind=DP), intent(in) :: smear(3*nat, nirrqpt), smear_id(3*nat, nirrqpt) real(kind=DP), intent(in) :: T logical, intent(in) :: gaussian, classical - real(kind=DP), dimension(nirrqpt, 3*nat, 3*nat, ne), intent(out) :: lineshapes + complex(kind=DP), dimension(nirrqpt, 3*nat, 3*nat, ne), intent(out) :: lineshapes integer :: iqpt, i, ie, jqpt, tot_qpt, prev_events, nthreads, iband, jband integer :: iband1, jband1 @@ -178,7 +178,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev real(kind=DP), dimension(3,3) :: kprim real(kind=DP), dimension(3*nat) :: w2_q, w_q ! real(kind=DP), dimension(ne, 3*nat) :: lineshape - real(kind=DP), allocatable, dimension(:,:,:) :: lineshape + complex(kind=DP), allocatable, dimension(:,:,:) :: lineshape complex(kind=DP), allocatable, dimension(:, :, :) :: self_energy, self_energy_cart ! complex(kind=DP), dimension(ne, 3*nat) :: self_energy complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q @@ -239,7 +239,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo - print*, 'Got grids' + !print*, 'Got grids' call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) @@ -257,6 +257,14 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev if(any(self_energy .ne. self_energy)) then print*, 'NaN in self_energy' endif + !do iband = 1, 3*nat - 1 + ! do jband = iband + 1, 3*nat + ! if(any(abs(self_energy(:,jband,iband) - conjg(self_energy(:,iband,jband))) > & + ! maxval(abs(self_energy(:,jband,iband)))*1.0e-6)) then + ! print*, 'Self - energy is non-Hermitian in mode basis!' + ! endif + ! enddo + !enddo do iband = 1, 3*nat do jband = 1, 3*nat do iband1 = 1, 3*nat @@ -267,6 +275,14 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev enddo enddo enddo + !do iband = 1, 3*nat - 1 + ! do jband = iband + 1, 3*nat + ! if(any(abs(self_energy_cart(:,jband,iband) - conjg(self_energy_cart(:,iband,jband))) > & + ! maxval(abs(self_energy_cart(:,jband,iband)))*1.0e-6)) then + ! print*, 'Self - energy is non-Hermitian in cartesian basis!' + ! endif + ! enddo + !enddo !open(file = 'Self_energy_nmm', unit = 1) !do i = 1, ne @@ -1124,11 +1140,10 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas - - - print*, 'Initialize self energy!' + + !print*, 'Initialize self energy!' self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) - print*, 'Initialized self energy!' + !print*, 'Initialized self energy!' !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, pols_k2, w2_mk_mq, pols_mk_mq, pols_mk_mq2,& diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 8810792e..3013d607 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -127,7 +127,14 @@ subroutine compute_full_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, END DO ! END DO - END DO + END DO + !DO nu = 1, n_mod - 1 + !DO mu = nu + 1,n_mod + ! if(any(abs(bubble(:,mu,nu) - conjg(bubble(:,nu,mu))) > maxval(abs(bubble(:,mu,nu)))*1.0e-8)) then + ! print*, 'Bubble somehow not hermitian' + ! endif + !END DO + !END DO ! end subroutine compute_full_dynamic_bubble_single @@ -516,7 +523,7 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra complex(kind=dp), intent(in) :: Pi(ne,3*nat,3*nat) logical, intent(in) :: notransl ! - real(kind=dp), intent(out) :: spectralf(3*nat, 3*nat, ne) + complex(kind=dp), intent(out) :: spectralf(3*nat, 3*nat, ne) ! integer :: nat3,n,m,ie complex(kind=dp) :: G(3*nat,3*nat) @@ -525,8 +532,17 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra nat3=3*nat spectralf=0.0_dp - ! + ! + DO ie = 1,ne + !do n = 1, nat3 - 1 + !do m = n + 1, nat3 + ! if(abs(Pi(ie,n,m) - conjg(Pi(ie,m,n))) > abs(Pi(ie,n,m))*1.0e-8) then + ! print*, 'Self energy is not Hermitian!' + ! print*, Pi(ie,n,m), Pi(ie,m,n) + ! endif + !enddo + !enddo G=cmplx(0.0_dp,0.0_dp,kind=DP) FORALL (m=1:nat3, n=1:nat3) G(n,m) = -Pi(ie,n,m) @@ -535,17 +551,51 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra DO n=1,nat3 G(n,n)=G(n,n)+(ener(ie))**2 ENDDO + ! do n = 1, nat3 - 1 + ! do m = n + 1, nat3 + ! if(abs(G(n,m) - conjg(G(m,n))) > abs(G(n,m))*1.0e-8) then + ! print*, 'G before is not Hermitian!' + ! endif + ! enddo + ! enddo G = cinv(G) + ! do n = 1, nat3 - 1 + ! do m = n + 1, nat3 + ! if(abs(G(n,m) - conjg(G(m,n))) > abs(G(n,m))*1.0e-8) then + ! print*, 'G before is not Hermitian!' + ! endif + ! enddo + ! enddo IF ( notransl ) THEN CALL eliminate_transl(G,mass,nat) END IF do n = 1, nat3 do m = 1, nat3 !spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi - spectralf(m,n,ie)=spectralf(m,n,ie)-DIMAG(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi + !spectralf(m,n,ie)=spectralf(m,n,ie)-DIMAG(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi + spectralf(m,n,ie)=spectralf(m,n,ie)+complex(0.0_DP, 1.0_DP)*(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi enddo enddo + ! do n = 1, nat3 - 1 + ! do m = n + 1, nat3 + ! if(abs(spectralf(n,m,ie) + spectralf(m,n,ie)) > abs(spectralf(n,m,ie))*1.0e-8) then + ! print*, 'spectrlaf before is not Hermitian!' + ! endif + ! enddo + ! enddo ENDDO + + !open(unit = 1, file = 'Spectral_function_from_fortran') + !do ie = 1, ne + ! write(1, '(E24.17)', advance="no") ener(ie) + ! do n = 1, nat3 + ! do m = 1, nat3 + ! write(1, '(E24.17)', advance="no") spectralf(m,n,ie) + ! enddo + ! enddo + ! write(1,*) ' ' + !enddo + !close(1) ! end subroutine calculate_spectral_function_nomode_mixing diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 5b8c22e9..de76ab87 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1651,7 +1651,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort elif(method == 'fortran'): if(no_mode_mixing): - lineshapes = np.zeros((self.nkpt, self.nband, self.nband, len(energies))) + lineshapes = np.zeros((self.nkpt, self.nband, self.nband, len(energies)), dtype=complex) else: lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) if(not self.set_up_scattering_grids): @@ -1712,6 +1712,15 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort # for jband in range(self.nband): # curr_ls[ikpt, iband,jband,:] = curr_ls[ikpt, iband,jband,:]/np.sum(curr_ls[ikpt,iband,jband,:])/(energies[1]-energies[0]) # Forcing the normalization. Not sure if the best option! lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:] + tot_const_diag = 0.0 + tot_const_nondiag = 0.0 + for iband in range(len(lineshapes[jqpt])): + tot_const_diag += np.sum(lineshapes[jqpt][iband][iband]).real*(energies[2] - energies[1]) + for jband in range(len(lineshapes[jqpt][iband])): + print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1])) + tot_const_nondiag += np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1]) + print('Normalization constant diagonal: ', tot_const_diag) + print('Normalization constant all elements: ', tot_const_diag) else: lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 if(write_lineshapes): @@ -1852,7 +1861,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec energies = (np.arange(ne, dtype=float) + 1.0)/float(ne)*maxfreq if(no_mode_mixing): - lineshapes = np.zeros((nkpts, self.nband, self.nband, ne)) + lineshapes = np.zeros((nkpts, self.nband, self.nband, ne), dtype = complex) else: lineshapes = np.zeros((nkpts, self.nband, ne)) @@ -1921,10 +1930,10 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec tot_const_diag = 0.0 tot_const_nondiag = 0.0 for iband in range(len(lineshapes[ikpt])): - tot_const_diag += np.sum(lineshapes[ikpt][iband][iband])*(energies[2] - energies[1]) + tot_const_diag += np.sum(lineshapes[ikpt][iband][iband]).real*(energies[2] - energies[1]) for jband in range(len(lineshapes[ikpt][iband])): - print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[ikpt][iband][jband])*(energies[2] - energies[1])) - tot_const_nondiag += np.sum(lineshapes[ikpt][iband][jband])*(energies[2] - energies[1]) + #print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[ikpt][iband][jband])*(energies[2] - energies[1])) + tot_const_nondiag += np.sum(lineshapes[ikpt][iband][jband]).real*(energies[2] - energies[1]) print('Normalization constant diagonal: ', tot_const_diag) print('Normalization constant all elements: ', tot_const_diag) else: @@ -1956,14 +1965,23 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec for ie in range(ne): outfile.write(' ' + format(distances[ikpt], '.12e')) outfile.write(' ' + format(energies[ie]*SSCHA_TO_THZ, '.12e')) + diag = complex(0.0,0.0) for iband in range(self.nband): if(no_mode_mixing): for jband in range(self.nband): - outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie]/SSCHA_TO_THZ, '.12e')) + outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie].real/SSCHA_TO_THZ, '.12e')) + outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie].imag/SSCHA_TO_THZ, '.12e')) + if(iband == jband): + diag += lineshapes[ikpt,iband, jband, ie] else: outfile.write(' ' + format(lineshapes[ikpt,iband,ie]/SSCHA_TO_THZ, '.12e')) if(no_mode_mixing): - outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie])/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie]).real/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie]).imag/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(diag.real/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(diag.imag/SSCHA_TO_THZ, '.12e')) + else: + outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, ie])/SSCHA_TO_THZ, '.12e')) outfile.write('\n') outfile.write('\n') @@ -2013,15 +2031,22 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): outfile.write(' ' + format('Spectral function (1/THz)', STR_FMT)) outfile.write('\n') for ien in range(len(energies)): + diag_lineshape = complex(0.0, 0.0) outfile.write(3*' ' + format(energies[ien]*SSCHA_TO_THZ, '.12e')) for iband in range(self.nband): if(no_mode_mixing): for jband in range(self.nband): - outfile.write(3*' ' + format(curr_ls[iband, jband, ien]/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(curr_ls[iband, jband, ien].real/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(curr_ls[iband, jband, ien].imag/SSCHA_TO_THZ, '.12e')) + if(iband == jband): + diag_lineshape += curr_ls[iband, iband, ien] else: outfile.write(3*' ' + format(curr_ls[iband, ien]/SSCHA_TO_THZ, '.12e')) if(no_mode_mixing): - outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien])/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien]).real/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien]).imag/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(diag_lineshape.real/SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(diag_lineshape.imag/SSCHA_TO_THZ, '.12e')) outfile.write('\n') ################################################################################################################################## From dad03df1f47c91fc61889ee0fa64a9688ce6ac68 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 12 Dec 2022 15:37:00 +0100 Subject: [PATCH 056/204] Readied masses for response function --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5d9d0854..2d2b5a9b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3171,7 +3171,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # tensor2.SetupFromPhonons(dyn) # tensor2.Center() # structure = tensor2.unitcell_structure -# M()=structure.get_masses_array() +# M =structure.get_masses_array() # #prepare the dielctric tensor of vacuum and effective charges # Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) # epsilon_inf() = Fonon.dielectric_tensor() @@ -3180,7 +3180,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(dyn.structure.N_atoms): # for b in range(dyn.structure.N_atoms): -# temp = ((Z(a,:,:)*Z(b,:,:))/np.sqrt(M(a)*M(b)))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) +# temp = ((Z(a,:,:)*Z(b,:,:))/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) # response2 += temp # response_function = response1*response2 # From 8cbeed1d1dac1331a3f5ce2c89a52f10f8e94d66 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 14 Dec 2022 08:49:43 +0100 Subject: [PATCH 057/204] Effective charges for response function --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 2d2b5a9b..bda84dd2 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3175,12 +3175,12 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # #prepare the dielctric tensor of vacuum and effective charges # Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) # epsilon_inf() = Fonon.dielectric_tensor() -# Z() = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) +# Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(dyn.structure.N_atoms): # for b in range(dyn.structure.N_atoms): -# temp = ((Z(a,:,:)*Z(b,:,:))/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) +# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) ; ie == number of energies ;ism == Number of smearings to consider # response2 += temp # response_function = response1*response2 # From 49339654e4eeaeea9f5813a6ad50298c835c61b5 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 19 Dec 2022 11:09:42 +0100 Subject: [PATCH 058/204] Bubble aproximation for the response function --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index bda84dd2..82c01868 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3180,7 +3180,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(dyn.structure.N_atoms): # for b in range(dyn.structure.N_atoms): -# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- spectralf(ie,:,ism); spectralf(ie,ism) ; ie == number of energies ;ism == Number of smearings to consider +# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) # response2 += temp # response_function = response1*response2 # From b40082937bee98f9b03ea5ed274190cacb3ed854 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 19 Dec 2022 12:05:52 +0100 Subject: [PATCH 059/204] Using the Pi/Omega? --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 82c01868..17847812 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3180,7 +3180,8 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # response1 = -(N/Big_omega) * electric_charge**2 # for a in range(dyn.structure.N_atoms): # for b in range(dyn.structure.N_atoms): -# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) +# #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) +# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma # response2 += temp # response_function = response1*response2 # From 5105d9dbba76282a1cdfde2d25f2b99aaaccef75 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 23 Dec 2022 17:45:53 +0100 Subject: [PATCH 060/204] Refactor some code for mode mixing --- FModules/get_lf.f90 | 185 ++++++++++++++++++++++--- FModules/third_order_cond.f90 | 73 +++++++--- cellconstructor/ThermalConductivity.py | 65 +++++---- 3 files changed, 266 insertions(+), 57 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 048288f3..fdefa666 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -68,7 +68,7 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' lineshape(:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -144,7 +144,148 @@ end subroutine calculate_lineshapes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & + fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & + classical, energies, ne, nirrqpt, nat, nfc2, nfc3, n_events, lineshapes) + + use omp_lib + use third_order_cond + + implicit none + + integer, parameter :: DP = selected_real_kind(14,200) + real(kind=DP), parameter :: PI = 3.141592653589793115997963468544185161590576171875 + + integer, intent(in) :: nirrqpt, nat, nfc2, nfc3, ne, n_events + integer, intent(in) :: weights(n_events), scatt_events(nirrqpt) + real(kind=DP), intent(in) :: irrqgrid(3, nirrqpt) + real(kind=DP), intent(in) :: qgrid(3, n_events) + real(kind=DP), intent(in) :: fc2(nfc2, 3*nat, 3*nat) + real(kind=DP), intent(in) :: fc3(nfc3, 3*nat, 3*nat, 3*nat) + real(kind=DP), intent(in) :: r2_2(3, nfc2) + real(kind=DP), intent(in) :: r3_2(3, nfc3), r3_3(3, nfc3) + real(kind=DP), intent(in) :: rprim(3, 3) + real(kind=DP), intent(in) :: pos(3, nat) + real(kind=DP), intent(in) :: masses(nat), energies(ne) + real(kind=DP), intent(in) :: smear(3*nat, nirrqpt), smear_id(3*nat, nirrqpt) + real(kind=DP), intent(in) :: T + logical, intent(in) :: gaussian, classical + complex(kind=DP), dimension(nirrqpt, 3*nat, 3*nat, ne), intent(out) :: lineshapes + + integer :: iqpt, i, ie, jqpt, tot_qpt, prev_events, nthreads, iband, jband + integer :: iband1, jband1 + real(kind=DP), dimension(3) :: qpt + real(kind=DP), dimension(3,3) :: kprim + real(kind=DP), dimension(3*nat) :: w2_q, w_q +! real(kind=DP), dimension(ne, 3*nat) :: lineshape + complex(kind=DP), allocatable, dimension(:,:,:) :: lineshape + complex(kind=DP), allocatable, dimension(:, :, :) :: self_energy +! complex(kind=DP), dimension(ne, 3*nat) :: self_energy + complex(kind=DP), dimension(3*nat,3*nat) :: pols_q, d2_q + real(kind=DP), allocatable, dimension(:,:) :: curr_grid + integer, allocatable, dimension(:) :: curr_w + logical :: is_q_gamma, w_neg_freqs, parallelize + + + lineshapes(:,:,:,:) = complex(0.0_DP, 0.0_DP) + kprim = transpose(inv(rprim)) + nthreads = omp_get_max_threads() + print*, 'Maximum number of threads available: ', nthreads + + parallelize = .True. + if(nirrqpt <= nthreads) then + parallelize = .False. + endif +! print*, 'Got parallelize' + + !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & + !$OMP PRIVATE(iqpt, w_neg_freqs, qpt, w2_q, pols_q, is_q_gamma, self_energy, & + !$OMP curr_grid, w_q, curr_w, prev_events, tot_qpt, d2_q, lineshape) & + !$OMP SHARED(nirrqpt, nfc2, nat, fc2, r2_2, masses, kprim, scatt_events, & + !$OMP nfc3, ne, fc3, r3_2, r3_3, pos, smear, T, energies, parallelize, smear_id, lineshapes, & + !$OMP irrqgrid, qgrid, weights, gaussian, classical) + do iqpt = 1, nirrqpt + allocate(lineshape(3*nat, 3*nat, ne), self_energy(ne, 3*nat, 3*nat)) +! print*, iqpt + w_neg_freqs = .False. + print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' + lineshape(:,:,:) = 0.0_DP + qpt = irrqgrid(:, iqpt) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) + !d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) + !do iband = 1, 3*nat + ! d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) + !enddo + !d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) + call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) + + if(any(w2_q < 0.0_DP)) then + print*, 'Negative eigenvalue of dynamical matrix!' + w_neg_freqs = .True. + endif +! print*, 'Interpolate frequency' + if(.not. w_neg_freqs) then + w_q = sqrt(w2_q) + self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) + allocate(curr_grid(3, scatt_events(iqpt))) + allocate(curr_w(scatt_events(iqpt))) + if(iqpt > 1) then + prev_events = sum(scatt_events(1:iqpt-1)) + else + prev_events = 0 + endif + do jqpt = 1, scatt_events(iqpt) + curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) + curr_w(jqpt) = weights(prev_events + jqpt) + enddo + !print*, 'Got grids' + call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & + nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & + energies, .not. parallelize, gaussian, classical, self_energy) + deallocate(curr_grid) + tot_qpt = sum(curr_w) + deallocate(curr_w) + self_energy = self_energy/dble(tot_qpt) + if(gaussian) then + call calculate_real_part_via_Kramers_Kronig_2d(ne, 3*nat, self_energy, energies, w_q) + !call hilbert_transform_via_FFT(ne, 3*nat, self_energy) + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in Kramers Kronig' + endif + endif + if(any(self_energy .ne. self_energy)) then + print*, 'NaN in self_energy' + endif + + call calculate_spectral_function_mode_mixing(energies, smear_id(:, iqpt), & + w_q,self_energy,is_q_gamma,lineshape,masses,nat,ne) + + lineshape = lineshape*2.0_DP + !lineshapes(iqpt, :, :, :) = lineshape + do iband = 1, 3*nat + do jband = 1, 3*nat + do iband1 = 1, 3*nat + do jband1 = 1, 3*nat + lineshapes(iqpt, jband, iband, :) = lineshapes(iqpt, jband, iband, :) + & + lineshape(jband1,iband1,:)*pols_q(jband,jband1)*conjg(pols_q(iband,iband1)) + enddo + enddo + enddo + enddo + else + lineshapes(iqpt,:,:,:) = complex(0.0_DP, 0.0_DP) + endif + deallocate(lineshape, self_energy) + + enddo + !$OMP END PARALLEL DO + + + end subroutine calculate_lineshapes_mode_mixing + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2, & fc3, r3_2, r3_3, rprim, pos, masses, smear, smear_id, T, gaussian, & classical, energies, ne, nirrqpt, nat, nfc2, nfc3, n_events, lineshapes) @@ -211,7 +352,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' lineshape(:,:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) !d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) !do iband = 1, 3*nat ! d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) @@ -275,6 +416,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev enddo enddo enddo + !do iband = 1, 3*nat - 1 ! do jband = iband + 1, 3*nat ! if(any(abs(self_energy_cart(:,jband,iband) - conjg(self_energy_cart(:,iband,jband))) > & @@ -297,7 +439,8 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev !enddo !close(1) - call calculate_spectral_function_nomode_mixing(energies,d2_q,self_energy_cart,is_q_gamma,lineshape,masses,nat,ne) + call calculate_spectral_function_cartesian(energies, smear_id(:, iqpt), & + d2_q,self_energy_cart,is_q_gamma,lineshape,masses,nat,ne) lineshapes(iqpt, :, :, :) = lineshape*2.0_DP else @@ -309,7 +452,7 @@ subroutine calculate_lineshapes_nomode_mixing(irrqgrid, qgrid, weights, scatt_ev !$OMP END PARALLEL DO - end subroutine calculate_lineshapes_nomode_mixing + end subroutine calculate_lineshapes_cartesian !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -376,7 +519,7 @@ subroutine calculate_lifetimes_selfconsistently(irrqgrid, qgrid, weights, scatt_ w_neg_freqs = .False. print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -597,7 +740,7 @@ subroutine calculate_lifetimes_perturbative(irrqgrid, qgrid, weights, scatt_even w_neg_freqs = .False. print*, 'Calculating ', iqpt, ' point in the irreducible zone out of ', nirrqpt, '!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then print*, 'Negative eigenvalue of dynamical matrix! Exit!' @@ -707,7 +850,7 @@ subroutine calculate_lifetimes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_2 !call cpu_time(curr_time) !print*, 'Since start: ', curr_time - start_time, ' seconds!' qpt = irrqgrid(:, iqpt) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, qpt, w2_q, pols_q, d2_q) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) ! print*, 'Got frequencies' if(any(w2_q < 0.0_DP)) then @@ -840,8 +983,8 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc enddo call interpol_v2(fc3, r3_2, r3_3,pos, kpt, mkpt, ifc3, nfc3, nat) ! call interpol_v3(fc3, pos, r3_2, r3_3, qpt, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -999,8 +1142,8 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -1170,8 +1313,8 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n kpt = qgrid(:, jqpt) mkpt = -1.0_DP*qpt - kpt call interpol_v2(fc3, r3_2, r3_3, pos, kpt, mkpt, ifc3, nfc3, nat) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, kpt, w2_k, pols_k, pols_k2) - call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, kpt, w2_k, pols_k, pols_k2) + call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, mkpt, w2_mk_mq, pols_mk_mq, pols_mk_mq2) call check_if_gamma(nat, kpt, kprim, w2_k, is_k_gamma) call check_if_gamma(nat, mkpt, kprim, w2_mk_mq, is_mk_mq_gamma) @@ -1554,7 +1697,7 @@ end function inv !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q, pols_q1) + subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, q, w2_q, pols_q, pols_q1) implicit none integer, parameter :: DP = selected_real_kind(14,200) @@ -1563,6 +1706,7 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q, pols_q integer, intent(in) :: nfc2, nat real(kind=DP), dimension(nfc2, 3*nat, 3*nat), intent(in) :: fc2 real(kind=DP), dimension(3, nfc2), intent(in) :: r2_2 + real(kind=DP), dimension(3, nat), intent(in) :: pos real(kind=DP), dimension(nat), intent(in) :: masses real(kind=DP), dimension(3), intent(in) :: q @@ -1570,6 +1714,7 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q, pols_q complex(kind=DP), dimension(3*nat, 3*nat), intent(out) :: pols_q, pols_q1 integer :: ir, iat, jat, INFO, LWORK, i, j + real(kind=DP), dimension(3) :: ruc complex(kind=DP), dimension(6*nat + 1) :: WORK real(kind=DP), dimension(9*nat - 2) :: RWORK real(kind=DP) :: phase @@ -1578,8 +1723,14 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, q, w2_q, pols_q, pols_q pols_q1 = complex(0.0_DP,0.0_DP) do ir = 1, nfc2 - phase = dot_product(r2_2(:,ir), q)*2.0_DP*PI - pols_q1 = pols_q1 + fc2(ir,:,:)*exp(complex(0.0_DP, phase)) + do iat = 1, nat + do jat = 1, nat + ruc = pos(:,jat) - pos(:,iat) - r2_2(:,ir) + phase = dot_product(ruc, q)*2.0_DP*PI + pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) = pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) & + + fc2(ir,3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat)*exp(complex(0.0_DP, phase)) + enddo + enddo enddo do iat = 1, nat diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index 3013d607..eeb037e4 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -120,22 +120,14 @@ subroutine compute_full_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, call Lambda_dynamic_single(ne,energies,curr_sigma,T,static_limit,q2(rho2,:),q3(rho3,:), gaussian, Lambda_23) ! DO nu = 1,n_mod - DO mu = 1,n_mod - bubble(:,mu,nu) = bubble(:,mu,nu) + & - CONJG(D3(mu,rho2,rho3))*Lambda_23(:)*D3(nu,rho2,rho3) - END DO + !DO mu = 1,n_mod + bubble(:,nu,nu) = bubble(:,nu,nu) + & + CONJG(D3(nu,rho2,rho3))*Lambda_23(:)*D3(nu,rho2,rho3) + !END DO END DO ! END DO END DO - !DO nu = 1, n_mod - 1 - !DO mu = nu + 1,n_mod - ! if(any(abs(bubble(:,mu,nu) - conjg(bubble(:,nu,mu))) > maxval(abs(bubble(:,mu,nu)))*1.0e-8)) then - ! print*, 'Bubble somehow not hermitian' - ! endif - !END DO - !END DO - ! end subroutine compute_full_dynamic_bubble_single !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -512,12 +504,61 @@ subroutine calculate_spectral_function(ener, d2_freq, selfnrg, nat, ne, spectral end subroutine calculate_spectral_function - subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectralf,mass,nat,ne) + subroutine calculate_spectral_function_mode_mixing(ener,smear,wq,Pi,notransl,spectralf,mass,nat,ne) + implicit none + INTEGER, PARAMETER :: DP = selected_real_kind(14,200) + real(kind=dp),parameter :: twopi = 6.283185307179586_dp + ! + real(kind=dp), intent(in) :: mass(nat), ener(ne), smear(3*nat) + integer, intent(in) :: ne,nat + real(kind=dp), intent(in) :: wq(3*nat) + complex(kind=dp), intent(in) :: Pi(ne,3*nat,3*nat) + logical, intent(in) :: notransl + ! + complex(kind=dp), intent(out) :: spectralf(3*nat, 3*nat, ne) + ! + integer :: nat3,n,m,ie + complex(kind=dp) :: G(3*nat,3*nat) + complex(kind=dp) :: fact + + nat3=3*nat + + spectralf=complex(0.0_DP, 0.0_DP) + ! + + DO ie = 1,ne + G=cmplx(0.0_dp,0.0_dp,kind=DP) + FORALL (m=1:nat3, n=1:nat3) + G(n,m) = -Pi(ie,n,m) + END FORALL + DO n=1,nat3 + G(n,n)=G(n,n)+(ener(ie) + complex(0.0_DP,smear(n)))**2 - wq(n)**2 + ENDDO + G = cinv(G) + IF ( notransl ) THEN + CALL eliminate_transl(G,mass,nat) + END IF + do n = 1, nat3 + do m = 1, nat3 + !spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi + !spectralf(m,n,ie)=spectralf(m,n,ie)-DIMAG(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi + spectralf(m,n,ie)=spectralf(m,n,ie)+complex(0.0_DP, 1.0_DP)*(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi + enddo + enddo + ENDDO + if(all(spectralf == complex(0.0_DP, 0.0_DP))) then + print*, 'All of the spectralf is 0!' + endif + end subroutine calculate_spectral_function_mode_mixing + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + subroutine calculate_spectral_function_cartesian(ener,smear,d2,Pi,notransl,spectralf,mass,nat,ne) implicit none INTEGER, PARAMETER :: DP = selected_real_kind(14,200) real(kind=dp),parameter :: twopi = 6.283185307179586_dp ! - real(kind=dp), intent(in) :: mass(nat), ener(ne) + real(kind=dp), intent(in) :: mass(nat), ener(ne), smear(3*nat) integer, intent(in) :: ne,nat complex(kind=dp), intent(in) :: d2(3*nat,3*nat) complex(kind=dp), intent(in) :: Pi(ne,3*nat,3*nat) @@ -549,7 +590,7 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra END FORALL G=G-d2 DO n=1,nat3 - G(n,n)=G(n,n)+(ener(ie))**2 + G(n,n)=G(n,n)+(ener(ie) + complex(0.0_DP,smear(n)))**2 ENDDO ! do n = 1, nat3 - 1 ! do m = n + 1, nat3 @@ -598,7 +639,7 @@ subroutine calculate_spectral_function_nomode_mixing(ener,d2,Pi,notransl,spectra !close(1) ! - end subroutine calculate_spectral_function_nomode_mixing + end subroutine calculate_spectral_function_cartesian ! ! ======================== accessory routines ======================================== ! diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index de76ab87..237faae0 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1604,7 +1604,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga ################################################################################################################################# - def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', no_mode_mixing = False, gauss_smearing = False): + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', mode_mixing = 'no', gauss_smearing = False): """ Calculate phonon lineshapes in full Brillouin zone. @@ -1621,8 +1621,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort self.delta_omega = energies[1] - energies[0] ls_key = format(temperature, '.1f') - if(no_mode_mixing): - print('WARNING! no_mode_mixing approach has been selected. Calculation of kappa in GK will not be possible!') + if(mode_mixing != 'no'): + print('WARNING! mode_mixing approach has been selected. Calculation of kappa in GK will not be possible!') if(method == 'python'): @@ -1650,7 +1650,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort elif(method == 'fortran'): - if(no_mode_mixing): + if(mode_mixing != 'no'): lineshapes = np.zeros((self.nkpt, self.nband, self.nband, len(energies)), dtype=complex) else: lineshapes = np.zeros((self.nkpt, self.nband, len(energies))) @@ -1684,22 +1684,31 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort if(self.cp_mode == 'classical'): classical = True - if(no_mode_mixing): - curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_nomode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ + if(mode_mixing == 'mode_mixing'): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_mode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float) + energies[0], temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + elif(mode_mixing == 'cartesian'): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_cartesian(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) - else: + elif(mode_mixing == 'no'): curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + sigmas.T, np.zeros_like(sigmas.T, dtype=float) + energies[0], temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + else: + print('Selected mode_mixing approach: ', mode_mixing) + raise RuntimeError('Do not recognize the selected mode_mixing approach!') for ikpt in range(self.nirrkpt): jkpt = self.qstar[ikpt][0] - if(not no_mode_mixing): + if(mode_mixing == 'no'): if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, self.k_points[jkpt])): for iband in range(self.nband): if(self.freqs[jkpt, iband] < np.amax(self.freqs[jkpt])*1.0e-6): @@ -1707,7 +1716,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort for iqpt in range(len(self.qstar[ikpt])): jqpt = self.qstar[ikpt][iqpt] - if(no_mode_mixing): + if(mode_mixing != 'no'): #for iband in range(self.nband): # for jband in range(self.nband): # curr_ls[ikpt, iband,jband,:] = curr_ls[ikpt, iband,jband,:]/np.sum(curr_ls[ikpt,iband,jband,:])/(energies[1]-energies[0]) # Forcing the normalization. Not sure if the best option! @@ -1725,7 +1734,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 if(write_lineshapes): filename = 'Lineshape_irrkpt_' + str(jkpt) + '_T_' + format(temperature, '.1f') - self.write_lineshape(filename, lineshapes[ikpt], jkpt, energies, no_mode_mixing) + self.write_lineshape(filename, lineshapes[jkpt], jkpt, energies, mode_mixing) print('Shape of lineshapes', lineshapes.shape) self.lineshapes[ls_key] = lineshapes @@ -1805,7 +1814,7 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False ################################################################################################################################## - def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, no_mode_mixing = False, kpoints = None, start_nkpts = 100, smear = None): + def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, mode_mixing = 'no', kpoints = None, start_nkpts = 100, smear = None): """ Calculate phonon lineshapes in full Brillouin zone. @@ -1860,7 +1869,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec maxfreq = np.amax(freqs)*2.1 energies = (np.arange(ne, dtype=float) + 1.0)/float(ne)*maxfreq - if(no_mode_mixing): + if(mode_mixing != 'no'): lineshapes = np.zeros((nkpts, self.nband, self.nband, ne), dtype = complex) else: lineshapes = np.zeros((nkpts, self.nband, ne)) @@ -1906,13 +1915,19 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec if(self.cp_mode == 'classical'): classical = True - if(no_mode_mixing): - curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_nomode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ + if(mode_mixing == 'mode_mixing'): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_mode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) - else: + elif(mode_mixing == 'cartesian'): + curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_cartesian(irrqgrid, scattering_grids, weights, scattering_events,\ + self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ + self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ + self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + elif(mode_mixing == 'no'): curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ @@ -1920,12 +1935,12 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) for ikpt in range(nkpts): - if(not no_mode_mixing): + if(mode_mixing == 'no'): if(CC.Methods.is_gamma(self.dyn.structure.unit_cell, kpoints[ikpt])): for iband in range(self.nband): if(freqs[ikpt, iband] < np.amax(freqs[ikpt])*1.0e-6): curr_ls[ikpt, iband] = 0.0 - if(no_mode_mixing): + if(mode_mixing != 'no'): lineshapes[ikpt,:,:,:] = curr_ls[ikpt,:,:,:] tot_const_diag = 0.0 tot_const_nondiag = 0.0 @@ -1967,7 +1982,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec outfile.write(' ' + format(energies[ie]*SSCHA_TO_THZ, '.12e')) diag = complex(0.0,0.0) for iband in range(self.nband): - if(no_mode_mixing): + if(mode_mixing != 'no'): for jband in range(self.nband): outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie].real/SSCHA_TO_THZ, '.12e')) outfile.write(' ' + format(lineshapes[ikpt,iband, jband, ie].imag/SSCHA_TO_THZ, '.12e')) @@ -1975,7 +1990,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec diag += lineshapes[ikpt,iband, jband, ie] else: outfile.write(' ' + format(lineshapes[ikpt,iband,ie]/SSCHA_TO_THZ, '.12e')) - if(no_mode_mixing): + if(mode_mixing != 'no'): outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie]).real/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(np.sum(lineshapes[ikpt, :, :, ie]).imag/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(diag.real/SSCHA_TO_THZ, '.12e')) @@ -2007,7 +2022,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec print('Calculated SSCHA lineshapes in: ', time.time() - start_time) ################################################################################################################################## - def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): + def write_lineshape(self, filename, curr_ls, jkpt, energies, mode_mixing): """ @@ -2017,7 +2032,7 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): curr_ls : lineshape to be written jkpt : the index of the k point for which lineshapes are to be written energies : frequencies at which lineshapes have been calculated - no_mode_mixing : Defines the shape of input curr_ls. if true curr_ls = (nband, nband, ne) + mode_mixing : Defines the shape of input curr_ls. if true curr_ls = (nband, nband, ne) """ @@ -2034,7 +2049,7 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): diag_lineshape = complex(0.0, 0.0) outfile.write(3*' ' + format(energies[ien]*SSCHA_TO_THZ, '.12e')) for iband in range(self.nband): - if(no_mode_mixing): + if(mode_mixing != 'no'): for jband in range(self.nband): outfile.write(3*' ' + format(curr_ls[iband, jband, ien].real/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(curr_ls[iband, jband, ien].imag/SSCHA_TO_THZ, '.12e')) @@ -2042,11 +2057,13 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, no_mode_mixing): diag_lineshape += curr_ls[iband, iband, ien] else: outfile.write(3*' ' + format(curr_ls[iband, ien]/SSCHA_TO_THZ, '.12e')) - if(no_mode_mixing): + if(mode_mixing != 'no'): outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien]).real/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(np.sum(curr_ls[:, :, ien]).imag/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(diag_lineshape.real/SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(diag_lineshape.imag/SSCHA_TO_THZ, '.12e')) + else: + outfile.write(3*' ' + format(np.sum(curr_ls[:, ien])/SSCHA_TO_THZ, '.12e')) outfile.write('\n') ################################################################################################################################## From 8b44f1808a08a107f13096d41ed4f8db83167d3b Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 26 Dec 2022 11:31:12 +0100 Subject: [PATCH 061/204] something else --- FModules/third_order_cond.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index eeb037e4..e0d5aa58 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -120,10 +120,10 @@ subroutine compute_full_dynamic_bubble_single(energies,sigma,T,freq,is_gamma,D3, call Lambda_dynamic_single(ne,energies,curr_sigma,T,static_limit,q2(rho2,:),q3(rho3,:), gaussian, Lambda_23) ! DO nu = 1,n_mod - !DO mu = 1,n_mod - bubble(:,nu,nu) = bubble(:,nu,nu) + & - CONJG(D3(nu,rho2,rho3))*Lambda_23(:)*D3(nu,rho2,rho3) - !END DO + DO mu = 1,n_mod + bubble(:,mu,nu) = bubble(:,mu,nu) + & + CONJG(D3(mu,rho2,rho3))*Lambda_23(:)*D3(nu,rho2,rho3) + END DO END DO ! END DO From b1958e179a878019f79dc0f81c7845ee90e5175b Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Wed, 11 Jan 2023 14:51:54 +0100 Subject: [PATCH 062/204] sa --- cellconstructor/ThermalConductivity.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 237faae0..3284b3d3 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1688,7 +1688,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_mode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - sigmas.T, np.zeros_like(sigmas.T, dtype=float) + energies[0], temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) elif(mode_mixing == 'cartesian'): curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_cartesian(irrqgrid, scattering_grids, weights, scattering_events,\ @@ -1700,7 +1700,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort curr_ls = thermal_conductivity.get_lf.calculate_lineshapes(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ - sigmas.T, np.zeros_like(sigmas.T, dtype=float) + energies[0], temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ + sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), self.nirrkpt, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) else: print('Selected mode_mixing approach: ', mode_mixing) From 81bc04047ee1d8907db5bc62f0942859bfcc1ebb Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 13 Jan 2023 10:44:08 +0100 Subject: [PATCH 063/204] small interpolation change --- FModules/get_lf.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index fdefa666..d09d576e 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -1725,7 +1725,8 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, q, w2_q, pols_q, p do ir = 1, nfc2 do iat = 1, nat do jat = 1, nat - ruc = pos(:,jat) - pos(:,iat) - r2_2(:,ir) + !ruc = pos(:,jat) - pos(:,iat) - r2_2(:,ir) + ruc = r2_2(:,ir) phase = dot_product(ruc, q)*2.0_DP*PI pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) = pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) & + fc2(ir,3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat)*exp(complex(0.0_DP, phase)) From 06d231360908a8ca9d7abb6f801fc3bfd84866cf Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 16 Jan 2023 10:07:10 +0100 Subject: [PATCH 064/204] comment for N/Omega --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 17847812..7b30c246 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3150,7 +3150,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # Input data: # omega = Frequency # epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) -# N = +# N = nº atoms # a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() # b = atom b -> Z(b) atomic number of atom b # nu = damping constant @@ -3159,7 +3159,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, # M() = Atomic masses # e() = # omega_nu = resonant frequency -# Big_omega = +# Big_omega = Vol. # Output: # epsilon = Dielectric function (SI) # """ From 0b9e013e733d65023768a8c4789db15f95ad58b5 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 26 Jan 2023 15:12:43 +0100 Subject: [PATCH 065/204] Added a new build method for linux to create the wheels for general linux architectures --- UserGuide/conf.py | 2 +- build-linux.sh | 7 +++++++ build-wheels.sh | 26 ++++++++++++++++++++++++++ cellconstructor/Phonons.py | 1 - cellconstructor/calculators.py | 8 +++++++- setup.py | 2 +- 6 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 build-linux.sh create mode 100755 build-wheels.sh diff --git a/UserGuide/conf.py b/UserGuide/conf.py index 24825d24..7cb41cd9 100644 --- a/UserGuide/conf.py +++ b/UserGuide/conf.py @@ -27,7 +27,7 @@ # The short X.Y version version = u'' # The full version, including alpha/beta/rc tags -release = u'1.0' +release = u'1.2' # -- General configuration --------------------------------------------------- diff --git a/build-linux.sh b/build-linux.sh new file mode 100644 index 00000000..02c69292 --- /dev/null +++ b/build-linux.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +docker run --rm \ + -v $(pwd):/io \ + -e PLAT=manylinux1_x86_64 \ + quay.io/pypa/manylinux1_x86_64 \ + /io/build-wheels.sh diff --git a/build-wheels.sh b/build-wheels.sh new file mode 100755 index 00000000..efd7c229 --- /dev/null +++ b/build-wheels.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -e -u -x + +function repair_wheel { + wheel="$1" + if ! auditwheel show "$wheel"; then + echo "Skipping non-platform wheel $wheel" + else + auditwheel repair "$wheel" --plat "$PLAT" -w /io/dist/ + fi +} + + +# Install a system package required by our library +yum install -y atlas-devel lapack-devel blas-devel + +# Compile wheels (only python >= 3.5) +for PYBIN in /opt/python/cp3*/bin; do + "${PYBIN}/pip" install -r /io/requirements.txt + "${PYBIN}/pip" wheel /io/ --no-deps -w /io/dist/ +done + +# Bundle external shared libraries into the wheels +for whl in wheelhouse/*.whl; do + repair_wheel "$whl" +done diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 5844307a..409b2078 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4470,7 +4470,6 @@ def compute_force(indices): fc_tmp = np.zeros((nat3, nat3), dtype = np.double) fc_tmp[3*i+j,:] -= forces.ravel() - #print("FORCE ({}) = ".format(3*i+j), forces) return fc_tmp #atm = s.get_ase_atoms() #atm.set_calculator(ase_calculator) diff --git a/cellconstructor/calculators.py b/cellconstructor/calculators.py index 6aba1fc7..b8a16f8d 100644 --- a/cellconstructor/calculators.py +++ b/cellconstructor/calculators.py @@ -52,10 +52,14 @@ def get_energy_forces(calculator, structure): if isinstance(calculator, ase.calculators.calculator.Calculator): atm = structure.get_ase_atoms() atm.set_calculator(calculator) + energy = atm.get_total_energy() + if isinstance(energy, np.ndarray): energy = energy[0] - return energy, atm.get_forces() + + forces = atm.get_forces() + return energy, forces elif isinstance(calculator, Calculator): calculator.calculate(structure) return calculator.results["energy"], calculator.results["forces"] @@ -226,6 +230,8 @@ def write_input(self, structure): ATOMIC_SPECIES """ for atm in typs: + if not atm in self.pseudopotentials: + raise ValueError(f"Error, the key {atm} is not a valid atom specified in the pseudopotentials: {list(self.pseudopotentials)}") scf_text += "{} {} {}\n".format(atm, self.masses[atm], self.pseudopotentials[atm]) if isinstance(self.kpts, str): diff --git a/setup.py b/setup.py index 393baeec..62176aa3 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ setup( name = "CellConstructor", - version = "1.2.1", + version = "1.2.2", description = "Python utilities that is interfaced with ASE for atomic crystal analysis", author = "Lorenzo Monacelli", url = "https://github.com/mesonepigreco/CellConstructor", From c96de8db4926ea148831d033c234f361dc8b18e7 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 26 Jan 2023 16:02:13 +0100 Subject: [PATCH 066/204] Removing the nonascii character --- FModules/get_equivalent_atoms.f90 | 4 ++-- build-linux.sh | 4 ++-- build-wheels.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/FModules/get_equivalent_atoms.f90 b/FModules/get_equivalent_atoms.f90 index 28befeb3..f08be903 100644 --- a/FModules/get_equivalent_atoms.f90 +++ b/FModules/get_equivalent_atoms.f90 @@ -199,7 +199,7 @@ end subroutine fix_coords_in_unit_cell subroutine matinv3(A, B) implicit none - !! Performs a direct calculation of the inverse of a 3×3 matrix. + double precision, intent(in) :: A(3,3) !! Matrix double precision, intent(out) :: B(3,3) !! Inverse matrix double precision :: detinv @@ -219,4 +219,4 @@ subroutine matinv3(A, B) B(1,3) = +detinv * (A(1,2)*A(2,3) - A(1,3)*A(2,2)) B(2,3) = -detinv * (A(1,1)*A(2,3) - A(1,3)*A(2,1)) B(3,3) = +detinv * (A(1,1)*A(2,2) - A(1,2)*A(2,1)) -end subroutine matinv3 \ No newline at end of file +end subroutine matinv3 diff --git a/build-linux.sh b/build-linux.sh index 02c69292..3dbbeb44 100644 --- a/build-linux.sh +++ b/build-linux.sh @@ -2,6 +2,6 @@ docker run --rm \ -v $(pwd):/io \ - -e PLAT=manylinux1_x86_64 \ - quay.io/pypa/manylinux1_x86_64 \ + -e PLAT=manylinux2014_x86_64 \ + quay.io/pypa/manylinux2014_x86_64 \ /io/build-wheels.sh diff --git a/build-wheels.sh b/build-wheels.sh index efd7c229..37698e34 100755 --- a/build-wheels.sh +++ b/build-wheels.sh @@ -12,7 +12,7 @@ function repair_wheel { # Install a system package required by our library -yum install -y atlas-devel lapack-devel blas-devel +yum install -y atlas-devel lapack-devel blas-devel libjpeg-devel # Compile wheels (only python >= 3.5) for PYBIN in /opt/python/cp3*/bin; do From 1ffd64050a7cff8e69795b166261088d36137960 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:27:53 +0100 Subject: [PATCH 067/204] Spectral function for testing --- cellconstructor/Spectral.py | 90 ++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7b30c246..1c9343de 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,48 +3144,48 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -# def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... -# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) -# """ -# Input data: -# omega = Frequency -# epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) -# N = nº atoms -# a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() -# b = atom b -> Z(b) atomic number of atom b -# nu = damping constant -# --------- -# Z() = Born effective charge ---> Phonon.Phonon.effective_charges() -# M() = Atomic masses -# e() = -# omega_nu = resonant frequency -# Big_omega = Vol. -# Output: -# epsilon = Dielectric function (SI) -# """ -# #electric_charge = 4.803e-10 #Fr (CGS) -# electric_charge = 1.602176462e-19 #C (SI) -# epsilon = np.zeros((3,3)) -# # Prepare the tensor2 and obtain masses -# tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) -# tensor2.SetupFromPhonons(dyn) -# tensor2.Center() -# structure = tensor2.unitcell_structure -# M =structure.get_masses_array() -# #prepare the dielctric tensor of vacuum and effective charges -# Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) -# epsilon_inf() = Fonon.dielectric_tensor() -# Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) -# -# response1 = -(N/Big_omega) * electric_charge**2 -# for a in range(dyn.structure.N_atoms): -# for b in range(dyn.structure.N_atoms): -# #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) -# temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma -# response2 += temp -# response_function = response1*response2 -# -# epsilon=epsilon_inf+4*np.pi*response_function -# -# refractive_index = np.sqrt(epsilon) -# return 0 + def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... + (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) + """ + Input data: + omega = Frequency + epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) + N = nº atoms + a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() + b = atom b -> Z(b) atomic number of atom b + nu = damping constant + --------- + Z() = Born effective charge ---> Phonon.Phonon.effective_charges() + M() = Atomic masses + e() = + omega_nu = resonant frequency + Big_omega = Vol. + Output: + epsilon = Dielectric function (SI) + """ + #electric_charge = 4.803e-10 #Fr (CGS) + electric_charge = 1.602176462e-19 #C (SI) + epsilon = np.zeros((3,3)) + # Prepare the tensor2 and obtain masses + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + structure = tensor2.unitcell_structure + M =structure.get_masses_array() + #prepare the dielctric tensor of vacuum and effective charges + Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) + epsilon_inf() = Fonon.dielectric_tensor() + Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) + + response1 = -(N/Big_omega) * electric_charge**2 + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp + response_function = response1*response2 + + epsilon=epsilon_inf+4*np.pi*response_function + + refractive_index = np.sqrt(epsilon) + return 0 From b843d312f9044a01625ad27ea7a32c3f755d5668 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:35:19 +0100 Subject: [PATCH 068/204] Fix IndentationError --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1c9343de..f35f9c52 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,7 +3144,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") - def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: From b5bd97b26538261518a6b48802b9af7ee026f2f3 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:38:20 +0100 Subject: [PATCH 069/204] More IndentationError fixes --- cellconstructor/Spectral.py | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index f35f9c52..8c2ff39a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3146,26 +3146,26 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) - """ - Input data: - omega = Frequency - epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) - N = nº atoms - a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() - b = atom b -> Z(b) atomic number of atom b - nu = damping constant - --------- - Z() = Born effective charge ---> Phonon.Phonon.effective_charges() - M() = Atomic masses - e() = - omega_nu = resonant frequency - Big_omega = Vol. - Output: - epsilon = Dielectric function (SI) - """ - #electric_charge = 4.803e-10 #Fr (CGS) - electric_charge = 1.602176462e-19 #C (SI) - epsilon = np.zeros((3,3)) + """ + Input data: + omega = Frequency + epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) + N = nº atoms + a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() + b = atom b -> Z(b) atomic number of atom b + nu = damping constant + --------- + Z() = Born effective charge ---> Phonon.Phonon.effective_charges() + M() = Atomic masses + e() = + omega_nu = resonant frequency + Big_omega = Vol. + Output: + epsilon = Dielectric function (SI) + """ + #electric_charge = 4.803e-10 #Fr (CGS) + electric_charge = 1.602176462e-19 #C (SI) + epsilon = np.zeros((3,3)) # Prepare the tensor2 and obtain masses tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) @@ -3177,15 +3177,15 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleto epsilon_inf() = Fonon.dielectric_tensor() Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) - response1 = -(N/Big_omega) * electric_charge**2 - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp - response_function = response1*response2 + response1 = -(N/Big_omega) * electric_charge**2 + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp + response_function = response1*response2 - epsilon=epsilon_inf+4*np.pi*response_function + epsilon=epsilon_inf+4*np.pi*response_function - refractive_index = np.sqrt(epsilon) - return 0 + refractive_index = np.sqrt(epsilon) + return 0 From 1a99c6babbb5ac7c404e484c30ff9dd5d336e704 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:46:02 +0100 Subject: [PATCH 070/204] More fixes --- cellconstructor/Spectral.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 8c2ff39a..73b17b12 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,8 +3144,9 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu): #skeleton function for TESTING... - (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega): #skeleton function for TESTING... +# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) + """ Input data: omega = Frequency From 760a79a277155ce6bf360e91c12aedb735ad2ed1 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:51:27 +0100 Subject: [PATCH 071/204] Fix a bug --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 73b17b12..def5cda6 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3175,7 +3175,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega M =structure.get_masses_array() #prepare the dielctric tensor of vacuum and effective charges Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) - epsilon_inf() = Fonon.dielectric_tensor() + epsilon_inf = Fonon.dielectric_tensor() Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) response1 = -(N/Big_omega) * electric_charge**2 From 37497bad4e07536b3a6a54c18bb5efd1dc0411b5 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 08:55:25 +0100 Subject: [PATCH 072/204] Fix error --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index def5cda6..2f551ac1 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,7 +3144,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega): #skeleton function for TESTING... +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega, dyn): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ From d533eecbf7fdcea19ccb4b64292270cc23cc8b25 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 09:05:26 +0100 Subject: [PATCH 073/204] Forgot to define 2*pi and other. --- cellconstructor/Spectral.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 2f551ac1..7f3e24b8 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,7 +3144,8 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega, dyn): #skeleton function for TESTING... +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega, dyn + , d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ @@ -3167,6 +3168,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega #electric_charge = 4.803e-10 #Fr (CGS) electric_charge = 1.602176462e-19 #C (SI) epsilon = np.zeros((3,3)) + twopi = 2*np.pi # Prepare the tensor2 and obtain masses tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) @@ -3179,6 +3181,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) response1 = -(N/Big_omega) * electric_charge**2 + response2 = 0 for a in range(dyn.structure.N_atoms): for b in range(dyn.structure.N_atoms): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) From c9dfd2cbdf0c1cc01547f8983af8b6561d5a4a62 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 6 Feb 2023 15:28:33 +0100 Subject: [PATCH 074/204] Unit cell volume --- cellconstructor/Spectral.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7f3e24b8..97fa4e04 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,7 +3144,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega, dyn +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn , d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) @@ -3159,9 +3159,9 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses - e() = + e() = polarization vector omega_nu = resonant frequency - Big_omega = Vol. + Big_omega = Unit cell Volume Output: epsilon = Dielectric function (SI) """ @@ -3174,6 +3174,12 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, Big_omega tensor2.SetupFromPhonons(dyn) tensor2.Center() structure = tensor2.unitcell_structure + alat=tensor2.unitcell_structure.unit_cell + # a,b,c volume calculation + # d = np.cross(b,c) + # proj_a = (np.dot(a,d)/np.sqrt(sum(d**2))**2)*d + # Volume = np.linalg.norm(a)*np.linalg.norm(d) + Big_omega = np.abs(np.linalg.det(alat)) # The unit cell volume is the determinant of the matrix defined by the unit cell vectors M =structure.get_masses_array() #prepare the dielctric tensor of vacuum and effective charges Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) From b680efc3a2dd14de66fb68b85debd7e0b9390224 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 7 Feb 2023 09:58:31 +0100 Subject: [PATCH 075/204] Added comment --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 97fa4e04..79fb0018 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3187,7 +3187,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) response1 = -(N/Big_omega) * electric_charge**2 - response2 = 0 + response2 = 0 #init the response2 value for a in range(dyn.structure.N_atoms): for b in range(dyn.structure.N_atoms): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) From 3e5ea45f4d17971e1da05e2a3a41a4f6b9d3a95a Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Tue, 7 Feb 2023 17:08:30 +0100 Subject: [PATCH 076/204] Fixed the FORCE_CONSTANT for phonopy --- cellconstructor/Phonons.py | 96 ++++++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 34 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 5844307a..1b626280 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -45,6 +45,12 @@ except: __SPGLIB__ = False +try: + import ase, ase.io + __ASE__ = True +except: + __ASE__ = False + __EPSILON__ = 1e-5 __EPSILON_W__ = 3e-9 @@ -1248,14 +1254,16 @@ def save_phononpy(self, *args, **kwargs): warnings.warn("[DEPRECATION WARNING] save_phononpy is deprecated: use save_phonopy instead.") self.save_phonopy(*args, **kwargs) - def save_phonopy(self, path = ".", supercell_size = None): + def save_phonopy(self, path = ".", supercell_size = None, units_ev_ang2 = True, + write_poscar = True, write_unitcell = False): """ EXPORT THE DYN IN THE PHONONPY FORMAT ===================================== This tool export the dynamical matrix into the PHONONPY plain text format. - We save them in Ry/bohr^2, as the quantum espresso format. Please, remember - this when using Phononpy for the conversion factors. + If units_ev_ang2 is True (default) the dynamical matrix is written in eV/A^2 + Otherwise we use the Ry/bohr^2, as the quantum espresso format. + Please, remember this when using Phononpy for the conversion factors. It will create a file called FORCE_CONSTANTS, one called unitcell.in with the info on the structure @@ -1267,6 +1275,14 @@ def save_phonopy(self, path = ".", supercell_size = None): supercell_size : list of 3 The supercell that defines the dynamical matrix, note phononpy works in the supercell. If none, it is inferred from the q points + units_ev_ang2 : bool + If True (default) convert the units in eV / A^2 + write_poscar : bool + If True produce also the POSCAR file with the structure + for phonopy. + It requires ASE to be installed. + write_unitcell : bool + If true, produce a unitcell.in for phonopy. """ @@ -1285,8 +1301,12 @@ def save_phonopy(self, path = ".", supercell_size = None): lines.append("%d %d\n" % (nat_sc, nat_sc)) for i in range(nat_sc): for j in range(nat_sc): - lines.append("%4d\t%4d\n" % (i, j)) - mat = np.real(superdyn.dynmats[0][3*i : 3*i+ 3, 3*j: 3*j+3]) + lines.append("%4d\t%4d\n" % (i+1, j+1)) + mat = np.copy(np.real(superdyn.dynmats[0][3*i : 3*i+ 3, 3*j: 3*j+3])) + + if units_ev_ang2: + mat *= RY_TO_EV / BOHR_TO_ANGSTROM**2 + lines.append("%16.8f %16.8f %16.8f\n" % (mat[0,0], mat[0,1], mat[0,2])) lines.append("%16.8f %16.8f %16.8f\n" % (mat[1,0], mat[1,1], mat[1,2])) lines.append("%16.8f %16.8f %16.8f\n" % (mat[2,0], mat[2,1], mat[2,2])) @@ -1297,38 +1317,46 @@ def save_phonopy(self, path = ".", supercell_size = None): f.close() # Produce the unit cell - lines = [] - lines.append("&system\n") - lines.append("ibrav = 0\n") - lines.append("celldm(1) = 1.889726125836928\n") - lines.append("nat = %d\n" % self.structure.N_atoms) - - typs = self.structure.masses.keys() - lines.append("ntyp = %d\n" % len(typs)) - lines.append("&end\n") - - # Write the atomic species - lines.append("ATOMIC_SPECIES\n") - for i in typs: - m = self.structure.masses[i] - lines.append("%s %16.8f XXX\n" % (i, m / 911.444243096)) - - # Write the unit cell - lines.append("CELL_PARAMETERS alat\n") - for i in range(3): - uc_v = self.structure.unit_cell[i, :] #* 1.889726125836928 - lines.append("%16.8f %16.8f %16.8f\n" % (uc_v[0], uc_v[1], uc_v[2])) + if write_unitcell: + lines = [] + lines.append("&system\n") + lines.append("ibrav = 0\n") + lines.append("celldm(1) = 1.889726125836928\n") + lines.append("nat = %d\n" % self.structure.N_atoms) + + typs = self.structure.masses.keys() + lines.append("ntyp = %d\n" % len(typs)) + lines.append("&end\n") + + # Write the atomic species + lines.append("ATOMIC_SPECIES\n") + for i in typs: + m = self.structure.masses[i] + lines.append("%s %16.8f XXX\n" % (i, m / 911.444243096)) + + # Write the unit cell + lines.append("CELL_PARAMETERS alat\n") + for i in range(3): + uc_v = self.structure.unit_cell[i, :] #* 1.889726125836928 + lines.append("%16.8f %16.8f %16.8f\n" % (uc_v[0], uc_v[1], uc_v[2])) - lines.append("ATOMIC_POSITIONS crystal\n") - for i in range(nat): - atm = self.structure.atoms[i] - cov_vect = Methods.covariant_coordinates(self.structure.unit_cell, self.structure.coords[i, :]) - lines.append("%s %16.8f %16.8f %16.8f\n" % (atm, cov_vect[0], cov_vect[1], cov_vect[2])) + lines.append("ATOMIC_POSITIONS crystal\n") + for i in range(nat): + atm = self.structure.atoms[i] + cov_vect = Methods.covariant_coordinates(self.structure.unit_cell, self.structure.coords[i, :]) + lines.append("%s %16.8f %16.8f %16.8f\n" % (atm, cov_vect[0], cov_vect[1], cov_vect[2])) - f = open(os.path.join(path, "unitcell.in"), "w") - f.writelines(lines) - f.close() + f = open(os.path.join(path, "unitcell.in"), "w") + f.writelines(lines) + f.close() + + # Write also the POSCAR file + if write_poscar: + if __ASE__: + ase.io.write("POSCAR", self.structure.get_ase_atoms(), direct=True) + else: + raise ImportError("Error, you must have ase installed to save the POSCAR file.") def load_phonopy(self, yaml_filename = "phonopy.yaml", fc_filename = None): """ From bd7b43a6e88da204aada0c4d75566f6013095fa1 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 8 Feb 2023 17:18:11 +0100 Subject: [PATCH 077/204] Fix the output to phono3py format --- cellconstructor/ForceTensor.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index d9b9995a..5e284931 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -1406,8 +1406,8 @@ def WriteOnFile(self,fname,file_format='Phonopy'): for nat2 in range(self.nat): for nat3 in range(self.nat): f.write("{:d}\n".format(i_block)) - f.write("{:16.8e} {:16.8e} {:16.8e}\n".format(*list(self.r_vector2[:, r_block]))) - f.write("{:16.8e} {:16.8e} {:16.8e}\n".format(*list(self.r_vector3[:, r_block]))) + f.write("{:16.8f} {:16.8f} {:16.8f}\n".format(*list(self.r_vector2[:, r_block]))) + f.write("{:16.8f} {:16.8f} {:16.8f}\n".format(*list(self.r_vector3[:, r_block]))) f.write("{:>6d} {:>6d} {:>6d}\n".format(nat1+1, nat2+1, nat3+1)) i_block += 1 # @@ -1415,7 +1415,8 @@ def WriteOnFile(self,fname,file_format='Phonopy'): z = xyz % 3 y = (xyz %9)//3 x = xyz // 9 - f.write("{:>2d} {:>2d} {:>2d} {:>20.10e}\n".format(x+1,y+1,z+1, self.tensor[r_block, 3*nat1 + x, 3*nat2 + y, 3*nat3 + z])) + f.write("{:>2d} {:>2d} {:>2d} {:>20.10f}\n".format(x+1,y+1,z+1, self.tensor[r_block, 3*nat1 + x, 3*nat2 + y, 3*nat3 + z])) + f.write("\n") elif file_format.upper() == 'D3Q': From d95327fccf93802c8ac890cd2d5182a2c7fef737 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 8 Feb 2023 17:27:40 +0100 Subject: [PATCH 078/204] Fix an error in the phonopy --- cellconstructor/ForceTensor.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index 5e284931..32145765 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -1416,7 +1416,6 @@ def WriteOnFile(self,fname,file_format='Phonopy'): y = (xyz %9)//3 x = xyz // 9 f.write("{:>2d} {:>2d} {:>2d} {:>20.10f}\n".format(x+1,y+1,z+1, self.tensor[r_block, 3*nat1 + x, 3*nat2 + y, 3*nat3 + z])) - f.write("\n") elif file_format.upper() == 'D3Q': From e88912ee8b8f0090c75a62a8f0dba45cae1b698d Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 9 Feb 2023 15:02:26 +0100 Subject: [PATCH 079/204] Added a blank line --- build-linux.sh | 1 + build-wheels.sh | 7 ++++++- cellconstructor/ForceTensor.py | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/build-linux.sh b/build-linux.sh index 3dbbeb44..b1f9b800 100644 --- a/build-linux.sh +++ b/build-linux.sh @@ -1,5 +1,6 @@ #!/usr/bin/env sh + docker run --rm \ -v $(pwd):/io \ -e PLAT=manylinux2014_x86_64 \ diff --git a/build-wheels.sh b/build-wheels.sh index 37698e34..b2d09155 100755 --- a/build-wheels.sh +++ b/build-wheels.sh @@ -5,6 +5,8 @@ function repair_wheel { wheel="$1" if ! auditwheel show "$wheel"; then echo "Skipping non-platform wheel $wheel" + elif echo "$wheel" | grep -q manylinux; then + echo "Skipping wheel $wheel" else auditwheel repair "$wheel" --plat "$PLAT" -w /io/dist/ fi @@ -14,13 +16,16 @@ function repair_wheel { # Install a system package required by our library yum install -y atlas-devel lapack-devel blas-devel libjpeg-devel +mkdir -p /io/dist/ + # Compile wheels (only python >= 3.5) for PYBIN in /opt/python/cp3*/bin; do "${PYBIN}/pip" install -r /io/requirements.txt + cd /io; "${PYBIN}/python" setup.py build "${PYBIN}/pip" wheel /io/ --no-deps -w /io/dist/ done # Bundle external shared libraries into the wheels -for whl in wheelhouse/*.whl; do +for whl in /io/dist/*.whl; do repair_wheel "$whl" done diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index d9b9995a..80128cdf 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -1405,6 +1405,7 @@ def WriteOnFile(self,fname,file_format='Phonopy'): for nat1 in range(self.nat): for nat2 in range(self.nat): for nat3 in range(self.nat): + f.write("\n") f.write("{:d}\n".format(i_block)) f.write("{:16.8e} {:16.8e} {:16.8e}\n".format(*list(self.r_vector2[:, r_block]))) f.write("{:16.8e} {:16.8e} {:16.8e}\n".format(*list(self.r_vector3[:, r_block]))) From 166dbaf20867578f9646e13e3e083504938f4e77 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 12:32:04 +0100 Subject: [PATCH 080/204] Now it seems to work properly with structures! --- cellconstructor/ForceTensor.py | 13 +- cellconstructor/Methods.py | 54 ++++++++ cellconstructor/Phonons.py | 238 ++++++++++++++++++++++++++++++++- 3 files changed, 302 insertions(+), 3 deletions(-) diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index bdcf47f8..4c021fcc 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -1144,7 +1144,7 @@ def __init__(self, unitcell_structure, supercell_structure, supercell_size): self.supercell_size = supercell_size - # Cartesian lattice vectors + # Cartesian lattice vectors (in Angstrom) self.r_vector2 = np.zeros((3, n_R), dtype = np.double, order = "F") self.r_vector3 = np.zeros((3, n_R), dtype = np.double, order = "F") @@ -1376,7 +1376,16 @@ def WriteOnFile(self,fname,file_format='Phonopy'): Save the tensor on a file. - The file format is the same as phono3py or D3Q + The file format is the same as phono3py or D3Q. + The unit of measures are those in which the tensor is stored. + If readed from the result of get_free_energy_hessian, they are in Ry/Bohr^3. + + To convert the units to eV/A^3 (used in phono3py, for example), you need to change them as: + >>> my_tensor3.tensor *= CC.Units.RY_TO_EV / CC.Units.BOHR_TO_ANGSTROM**3 + >>> my_tensor3.WriteOnFile("FORCE_CONSTANTS_3RD", file_format="phonopy") + + However, remember to change back in Ry/Bohr^3 if you want to further process this tensor within Cellconstructor + (For example to compute ) Parameters ---------- diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index 56c90824..944437c5 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -14,6 +14,7 @@ import numpy as np import sys, os import symph +import scipy, scipy.optimize import warnings @@ -1818,3 +1819,56 @@ def get_bandpath(unit_cell, path_string, special_points, n_points = 1000): q_path[i-1, :] = path_points[index, :] + counter * dq * q_versor return q_path, (xaxis, xticks, xlabels) + + + +# A function to check whether a vector is part of a space vector +# Identified by a span of non orthogonal vectors +def get_generic_covariant_coefficients(v, space, thr = 0.05): + """ + Check whether a vector is part of a space spanned by a set of vectors. + Even if the space is a contains less element than the total dimension + + Parameters + ---------- + v : ndarray(size = (d,)) + The vector to check + space : ndarray(size = (n_vectors, d)) + The space spanned by the vectors + thr : float + The threshold to consider a vector as part of the space + + Results + ------- + Return the coefficients of the space that minimize the distance + between the vector and the space spanned by the vectors. + Returns None if the solution is not found. + """ + if len(space) == 0: + return None + + space = np.array(space, dtype = np.double) + + # Solve the minimization problem + def function_to_minimize(x): + res = v - x.dot(space) + return res.dot(res) + + def gradient(x): + return -2*(v - x.dot(space)).dot(space.T) + # Solve the minimization problem + res = scipy.optimize.minimize(function_to_minimize, + np.zeros(space.shape[0]), + jac = gradient, + method = 'BFGS', + options = {'disp' : False}) + + # Check if the solution is correct + if res.success: + if np.linalg.norm(res.x.dot(space) - v) > thr: + return None + return res.x + else: + print("NO SUCCESS") + raise ValueError("Error, the minimization problem was not solved correctly") + return None \ No newline at end of file diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index dc8ccc30..552f9517 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4427,7 +4427,6 @@ def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0. ================================= Use finite displacements to compute the force constant matrix. - (Works only at Gamma) Parameters ---------- @@ -4519,6 +4518,243 @@ def compute_force(indices): #if Settings.am_i_the_master(): # np.savetxt("FC_after_subtraction.dat", fc) + if progress > 0: + print() + print("Done.") + + #np.savetxt("GoodFC.dat", fc, fmt="%10.6f") + + # Impose hermitianity + fc = .5 * (fc + fc.T) / epsilon + + + + # Convert to the correct units + final_dyn.dynmats[0] = fc / RY_TO_EV * BOHR_TO_ANGSTROM**2 + + + # Now we have the dynamical matrix in the supercell, get the dynamical matrix in the correct unit cell + if np.prod(supercell) > 1: + correct_dyn = Phonons(structure, nqirr = np.prod(supercell)) + q_tot = symmetries.GetQGrid(structure.unit_cell, supercell) + dynq = GetDynQFromFCSupercell(final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) + for iq, q in enumerate(q_tot): + correct_dyn.dynmats[iq] = dynq[iq, :,:] + correct_dyn.q_tot[iq] = q + + correct_dyn.AdjustQStar() + final_dyn = correct_dyn + + return final_dyn + + + +def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon = 0.05, + supercell = (1,1,1), progress = -1, progress_bar = False, + debug = False): + """ + COMPUTE THE FORCE CONSTANT MATRIX EXPLOITING SYMMETRIES + ======================================================= + + Use finite displacements to compute the force constant matrix. + This subroutine exploits the symmetries of the structure to + reduce the number of calculations. + + The algorithm is the following: + 1. Generate the supercell + 2. Generate each possible atomic displacement + 3. Check whether the displacement can be obtained as a linear combination + of the displacements already computed (including their symmetry equivalents) + 4. If not, add it to the list of independent displacements + 5. Compute the force on each independent displaced structure + 6. Compute the symmetry equivalent force on each displacement. + 7. Define the matrix of change basis, between all possible Cartesian displacements + and the independent ones + their symmetry equivalents + 8. Compute the force constant matrix as the matrix product of the inverse change of basis + and the matrix of forces. + + Parameters + ---------- + structure : CC.Structure.Structure + The structure on the parameters + ase_calculator : ase.calculators.calculator + The ase calculator to compute energy and forces + epsilon : double + The finite displacement + progress : int + If positive, prints the status each tot structures + progress_bar : bool + If True, overwrite the progress line each structure + debug : bool + If True, prints debugging information + + Results + ------- + phonons : CC.Phonons.Phonons() + The dynamical matrix + """ + #raise NotImplementedError("This subroutine is not working yet") + + super_structure = structure.generate_supercell(supercell) + final_dyn = Phonons(super_structure) + + nat3 = 3 * super_structure.N_atoms + fc = np.zeros( (nat3, nat3), dtype = np.double) + + # Enable the parallel calculation + ase_calculator.directory = "calc_{}".format(Settings.get_rank()) + ase_calculator.set_label("label_{}".format(Settings.get_rank())) + + + #atm = structure.get_ase_atoms() + #atm.set_calculator(ase_calculator) + fc[:,:] = np.zeros((nat3, nat3), np.double) + if progress > 0 or debug: + print() + print("Computing phonons with finite differences.") + + #print("DEBUG:", debug) + + list_of_calculations = [] + + # Create a list of displacements including the symmetries + displacements = [] + + # Use spglib to get all the symmetry operations + symm = spglib.get_symmetry(super_structure.get_ase_atoms()) + symm = symmetries.GetSymmetriesFromSPGLIB(symm) + n_syms = len(symm) + + # Get irt from the symmetries (atomic corruispondance after the application of symmetry) + irts = [] + for i, s in enumerate(symm): + irt = symmetries.GetIRT(super_structure, s) + irts.append(irt) + + # Build the symmetry inequivalent displacements + # This is the basis that we will use to compute the force constant matrix + for i in range(super_structure.N_atoms): + for j in range(3): + # Generate the displacement + disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) + disp[i, j] += 1 + + #if debug: + # print("Simulating displacement", i, j) + + # Check if the displacement can be decomposed in those already computed + coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) + #if debug: + # print("The decomposition is:", coefficients) + if coefficients is None: + # The displacement needs to be computed + list_of_calculations.append((i,j)) + + # Generate the symmetry equivalent displacements + disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + + # Check wether to add or not the newly generated displacements to the space + for i_sym in range(n_syms): + v = disp_sym[i_sym, :, :] + #if debug: + # print("The symmetry {} gives a vector v = {}".format(i_sym, v)) + coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), displacements) + #if debug: + # print("Is new?", coeffs is None) + if coeffs is None: + displacements.append(v.ravel()) + assert len(displacements) <= nat3, "The number of displacements is not correct. Something went wrong." + + print("Number of symmetry inequivalent displacements:", len(list_of_calculations)) + + assert len(displacements) == nat3, "The number of displacements is not correct. Something went wrong." + + def compute_force(indices): + i, j = indices + #Settings.all_print("Computing indices:", i, j) + + if progress > 0: + if (3*i + j) % progress == 0: + if progress_bar and Settings.am_i_the_master(): + sys.stdout.write("\rProgress {:4.1f} % ... ".format(100 * (3*i + j + 1) / nat3)) + sys.stdout.flush() + else: + Settings.all_print("Finite displacement of structure {} / {}".format(3*i + j + 1, nat3)) + + + + s = super_structure.copy() + + + s.coords[i, j] += epsilon + + + ase_calculator.set_label("disp_{}".format(3*i + j)) + ase_calculator.directory = "disp_{}".format(3*i + j) + energy, forces = calculators.get_energy_forces(ase_calculator, s) + fc_tmp = np.zeros((nat3, nat3), dtype = np.double) + fc_tmp[3*i+j,:] -= forces.ravel() + + return fc_tmp + #atm = s.get_ase_atoms() + #atm.set_calculator(ase_calculator) + fc[3*i + j, :] -= forces.ravel() + + fc = Settings.GoParallel(compute_force, list_of_calculations, reduce_op='+') + + #if Settings.am_i_the_master(): + # np.savetxt("FC_before_subtraction.dat", fc) + + energy = None + forces = None + if Settings.am_i_the_master(): + energy, forces = calculators.get_energy_forces(ase_calculator, super_structure) + fc[:,:] += np.tile(forces.ravel(), (nat3, 1)) + Settings.barrier() + fc = Settings.broadcast(fc) + + # Now we can generate all the symmetry equivalent forces + disp_basis = [] + + # Define the force constant matrix in the basis of the auxiliary vectors + fc_aux_basis = np.zeros((nat3, nat3), dtype = np.double) + counter_index = -1 + + for i in range(super_structure.N_atoms): + for j in range(3): + disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) + disp[i, j] += 1 + if (i, j) in list_of_calculations: + # Generate the basis + force = fc[3*i + j, :].reshape((super_structure.N_atoms, 3)) + + # Generate the symmetry equivalent displacements + disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + force_sym = symmetries.ApplySymmetriesToVector(symm, force, super_structure.unit_cell, irts) + + # Check wether to add or not the newly generated displacements to the space + for i_sym in range(n_syms): + v = disp_sym[i_sym, :, :] + coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), disp_basis) + if coeffs is None: + disp_basis.append(v.ravel()) + counter_index += 1 + fc_aux_basis[counter_index, :] = force_sym[i_sym, :, :].ravel() + + #np.savetxt("OriginalFC.dat", fc, fmt="%10.6f") + #np.savetxt("FC_aux_basis.dat", fc_aux_basis, fmt="%10.6f") + + # Transform back the force constant in the real space + metric_tensor = np.array(disp_basis) + inv_metric_tensor = np.linalg.inv(metric_tensor) + fc = inv_metric_tensor.dot(fc_aux_basis)#.dot(inv_metric_tensor.T) + #np.savetxt("NewFC.dat", fc, fmt="%10.6f") + #np.savetxt("MetricTensor.dat", metric_tensor, fmt="%10.6f") + #np.savetxt("InvMetricTensor.dat", inv_metric_tensor, fmt="%10.6f") + + #if Settings.am_i_the_master(): + # np.savetxt("FC_after_subtraction.dat", fc) + if progress > 0: print() print("Done.") From 68f86976c1afebd96553e23319a077aeede52120 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 12:34:20 +0100 Subject: [PATCH 081/204] Added the possibility to computing phonons exploiting symmetries. Now it should allow you to reduce the number of total calculation requested for the phonons --- cellconstructor/Phonons.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 552f9517..27dd59f8 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4421,7 +4421,9 @@ def get_dyn_from_ase_phonons(ase_ph, adjust_qstar = True): -def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0.05, supercell = (1,1,1), progress = -1, progress_bar = False): +def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0.05, + supercell = (1,1,1), progress = -1, progress_bar = False, + use_symmetries = True): """ COMPUTE THE FORCE CONSTANT MATRIX ================================= @@ -4440,13 +4442,18 @@ def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0. If positive, prints the status each tot structures progress_bar : bool If True, overwrite the progress line each structure + use_symmetries : bool + If True, use the symmetries to reduce the number of calculations. + More details in the method 'compute_phonons_finite_displacements_sym' Results ------- phonons : CC.Phonons.Phonons() The dynamical matrix """ - + if use_symmetries: + return compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon, + supercell, progress, progress_bar) super_structure = structure.generate_supercell(supercell) final_dyn = Phonons(super_structure) From 39d868763c66d67890d8239c1553964e45c774c3 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 12:35:53 +0100 Subject: [PATCH 082/204] Added a exeption if spglib cannot be imported --- cellconstructor/Phonons.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 27dd59f8..a4d57227 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4444,7 +4444,8 @@ def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0. If True, overwrite the progress line each structure use_symmetries : bool If True, use the symmetries to reduce the number of calculations. - More details in the method 'compute_phonons_finite_displacements_sym' + More details in the method 'compute_phonons_finite_displacements_sym'. + It requires the SPGLIB library. Results ------- @@ -4452,6 +4453,8 @@ def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0. The dynamical matrix """ if use_symmetries: + if not __SPGLIB__: + raise ImportError("SPGLIB is not installed. Cannot use symmetries. Rerun this subroutine with use_symmetries = False") return compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon, supercell, progress, progress_bar) From f6ffdb729d72b4e5c0c3c99280afb830ff9b8ff5 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 16:17:59 +0100 Subject: [PATCH 083/204] Fixed the reading of espresso file --- cellconstructor/Methods.py | 96 ++++++++++++++++++----------------- cellconstructor/Phonons.py | 6 ++- cellconstructor/Structure.py | 12 +++++ cellconstructor/symmetries.py | 3 ++ 4 files changed, 68 insertions(+), 49 deletions(-) diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index 944437c5..0f7a52dd 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -1018,56 +1018,58 @@ def read_namelist(line_list): inside_namespace = False namespace.clear() continue - - # First of all split for quotes - value = None - new_list_trial = line.split('"') - if len(new_list_trial) == 3: - value = '"' + new_list_trial[1] + '"' - else: - new_list_trial = line.split("'") + + if inside_namespace: + + # First of all split for quotes + value = None + new_list_trial = line.split('"') if len(new_list_trial) == 3: value = '"' + new_list_trial[1] + '"' - - # Get the name of the variable - new_list = line.split("=") - - if len(new_list) != 2 and value is None: - raise IOError("Error, I do not understand the line %s" % line) - elif len(new_list) < 2: - raise IOError("Error, I do not understand the line %s" % line) + else: + new_list_trial = line.split("'") + if len(new_list_trial) == 3: + value = '"' + new_list_trial[1] + '"' - variable = new_list[0].strip().lower() - if value is None: - value = new_list[1].strip() - - # Remove ending comma and otehr tailoring space - if value[-1] == ",": - value = value[:-1].strip() - - - # Convert fortran bool - if value.lower() == ".true.": - value = True - elif value.lower() == ".false.": - value = False - elif '"' == value[0]: # Get a string content - # If it is a string cancel the " or ' or , - value = value.replace("\"", "") - elif "'" == value[0]: - value = value.replace("'", "") - elif value.count(" ") >= 1: - value = [float(item) for item in value.split()] - else: - # Check if it is a number - try: - value = float(value.lower().replace("d", "e")) - except: - pass - if inside_namespace: - namespace[variable] = value - else: - total_dict[variable] = value + # Get the name of the variable + new_list = line.split("=") + + if len(new_list) != 2 and value is None: + raise IOError("Error, I do not understand the line %s" % line) + elif len(new_list) < 2: + raise IOError("Error, I do not understand the line %s" % line) + + variable = new_list[0].strip().lower() + if value is None: + value = new_list[1].strip() + + # Remove ending comma and otehr tailoring space + if value[-1] == ",": + value = value[:-1].strip() + + + # Convert fortran bool + if value.lower() == ".true.": + value = True + elif value.lower() == ".false.": + value = False + elif '"' == value[0]: # Get a string content + # If it is a string cancel the " or ' or , + value = value.replace("\"", "") + elif "'" == value[0]: + value = value.replace("'", "") + elif value.count(" ") >= 1: + value = [float(item) for item in value.split()] + else: + # Check if it is a number + try: + value = float(value.lower().replace("d", "e")) + except: + pass + if inside_namespace: + namespace[variable] = value + else: + total_dict[variable] = value # The file has been analyzed if inside_namespace: diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index a4d57227..5c5e42f4 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4636,6 +4636,8 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon n_syms = len(symm) # Get irt from the symmetries (atomic corruispondance after the application of symmetry) + if debug: + print("Getting symmetry equivalent atoms") irts = [] for i, s in enumerate(symm): irt = symmetries.GetIRT(super_structure, s) @@ -4649,8 +4651,8 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) disp[i, j] += 1 - #if debug: - # print("Simulating displacement", i, j) + if debug: + print("Simulating displacement", i, j) # Check if the displacement can be decomposed in those already computed coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) diff --git a/cellconstructor/Structure.py b/cellconstructor/Structure.py index ac4313c5..09be15ef 100644 --- a/cellconstructor/Structure.py +++ b/cellconstructor/Structure.py @@ -343,6 +343,18 @@ def read_scf(self, filename, alat=1, read_string = False, read_espresso = False) read_atoms = True if read_espresso: read_atoms = False + + # Get the alat from the input file + espresso_dict = Methods.read_namelist(lines) + if "system" in espresso_dict: + if "alat" in espresso_dict["system"]: + alat = espresso_dict["system"]["alat"]*BOHR_TO_ANGSTROM + elif "celldm(1)" in espresso_dict["system"]: + alat = espresso_dict["system"]["celldm(1)"]*BOHR_TO_ANGSTROM + + if "ibrav" in espresso_dict["system"]: + assert espresso_dict["system"]["ibrav"] == 0, "ibrav != 0 not supported yet" + cell_present = False read_crystal = False diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 920352bf..3242e92d 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -1952,6 +1952,9 @@ def GetQGrid(unit_cell, supercell_size, enforce_gamma_first = True): This method gives back a list of q points given the reciprocal lattice vectors and the supercell size. + + The q points are returned in 2pi / a units. + Where a is the unit of measure of the unit_cell (usually Angstrom). Parameters ---------- From d509c6054f9fd639df91c1a54111ffd862982ba0 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 16:46:44 +0100 Subject: [PATCH 084/204] Added a new test for the harmonic finite displacements using symmetries --- .../test_au_phonons.py | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/TestFiniteDisplacementPhonons/test_au_phonons.py diff --git a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py new file mode 100644 index 00000000..ae86b323 --- /dev/null +++ b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 + +import cellconstructor as CC +import cellconstructor.Phonons +import cellconstructor.Structure + +import ase, ase.build +import ase.calculators.emt + +import numpy as np +import pytest + + +@pytest.mark.parametrize("supercell", [(2,2,2), (3,3,3)]) +def test_phonons_finite_displacements(supercell=(3,3,3), debug=False): + """Test the phonons using finite displacements""" + + # Build a MgO structure using ASE + atoms = ase.build.bulk('Cu', 'fcc', a=3.6) + + # Convert to cellconstructor + struct = CC.Structure.Structure() + struct.generate_from_ase_atoms(atoms) + + my_struct = struct.generate_supercell((2,2,2)) + my_struct.unit_cell[0, :] = struct.unit_cell[1, :] + struct.unit_cell[2, :] + my_struct.unit_cell[1, :] = struct.unit_cell[0, :] + struct.unit_cell[2, :] + my_struct.unit_cell[2, :] = struct.unit_cell[0, :] + struct.unit_cell[1, :] + my_struct.fix_coords_in_unit_cell(delete_copies=True) + + struct = my_struct + + # Generate the EMT calculator for ASE + calc = ase.calculators.emt.EMT() + + # Get the dynamical matrix using finite displacements + dyn = CC.Phonons.compute_phonons_finite_displacements(struct, calc, + supercell=supercell) + + # Compute the dynamical matrix using the symmetrized + dyn2 = CC.Phonons.compute_phonons_finite_displacements_sym(struct, calc, + supercell=supercell, + debug=True) + + w_good, pol_good = dyn.DiagonalizeSupercell() + w_bad, pol_bad = dyn2.DiagonalizeSupercell() + + dyn.Symmetrize(use_spglib = True) + dyn2.Symmetrize(use_spglib = True) + + if debug: + print("\n".join(["{:3}) {:10.5f} {:10.5f} cm-1".format(i, + w_good[i] * CC.Units.RY_TO_CM, + w_bad[i] * CC.Units.RY_TO_CM) + for i in range(len(w_good))])) + + # Check that the two are equal + for iq, dyn in enumerate(dyn.dynmats): + assert np.allclose(dyn, dyn2.dynmats[iq], atol=1e-3) + + +if __name__ == "__main__": + test_phonons_finite_displacements() From a1397febc6cba46952d2d24332a8ccd31429a97f Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Fri, 10 Feb 2023 16:50:20 +0100 Subject: [PATCH 085/204] Fixed a bug in the testsuite --- tests/TestFiniteDisplacementPhonons/test_au_phonons.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py index ae86b323..b5e4a394 100644 --- a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py +++ b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py @@ -12,7 +12,7 @@ @pytest.mark.parametrize("supercell", [(2,2,2), (3,3,3)]) -def test_phonons_finite_displacements(supercell=(3,3,3), debug=False): +def test_phonons_finite_displacements(supercell, debug=False): """Test the phonons using finite displacements""" # Build a MgO structure using ASE @@ -60,4 +60,4 @@ def test_phonons_finite_displacements(supercell=(3,3,3), debug=False): if __name__ == "__main__": - test_phonons_finite_displacements() + test_phonons_finite_displacements((2,2,2)) From dd8baee2baad3bdaef708126c7587c4df6e231fc Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sat, 11 Feb 2023 13:17:04 +0100 Subject: [PATCH 086/204] Speedup or the GetIRT of a factor of 2 --- FModules/get_equivalent_atoms.f90 | 39 ++++++++++++-- cellconstructor/Methods.py | 13 ++++- cellconstructor/Phonons.py | 54 +++++++++++++++---- cellconstructor/Timer.py | 10 +--- cellconstructor/symmetries.py | 2 +- .../test_au_phonons.py | 11 +++- 6 files changed, 100 insertions(+), 29 deletions(-) diff --git a/FModules/get_equivalent_atoms.f90 b/FModules/get_equivalent_atoms.f90 index f08be903..c90e04cb 100644 --- a/FModules/get_equivalent_atoms.f90 +++ b/FModules/get_equivalent_atoms.f90 @@ -13,7 +13,11 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at do i = 1, nat min_dist = 1000000.d0 - do j = 1, nat + do j_aux = i, nat + i -1 + ! Warp the loop over j to start with i + ! Which is the most probable value (and the most efficient loop) + j = mod(j_aux, nat + 1) + ! Exclude different type of atoms if ( ityp1(i) .ne. ityp2(j) ) continue call get_closest_vector(unit_cell, coords1(i, :) - coords2(j, :), dist) @@ -23,6 +27,9 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at min_dist = tmp_dist eq_atoms(i) = j - 1 ! - 1 is for Fortan to python correspondance end if + if (tmp_dist .lt. 1.d-6) then + exit + end if enddo enddo @@ -36,16 +43,34 @@ subroutine get_closest_vector(unit_cell, v_dist, new_v_dist) double precision, dimension(3), intent(in) :: v_dist double precision, dimension(3), intent(out) :: new_v_dist - integer :: nx, ny, nz + integer :: nx, ny, nz, mynx, myny, mynz integer, parameter :: far = 2 double precision, dimension(3) :: aux_vect double precision :: min_dist, dist min_dist = sum(v_dist(:) ** 2) new_v_dist(:) = v_dist(:) - do nx = -far, far - do ny = -far, far - do nz = -far, far + do mynx = -far, far + ! Reorder the loop to start with 0 + ! which is the most probable value (exit early if found) + if (mynx .le. 0) then + nx = mynx + far + else + nx = -mynx + endif + + do myny = -far, far + if (myny .le. 0) then + ny = myny + far + else + ny = -myny + endif + do mynz = -far, far + if (mynz .le. 0) then + nz = mynz + far + else + nz = -mynz + endif ! Define the new vector aux_vect(:) = v_dist(:) aux_vect(:) = aux_vect(:) + nx * unit_cell(1, :) @@ -57,6 +82,10 @@ subroutine get_closest_vector(unit_cell, v_dist, new_v_dist) min_dist = dist new_v_dist(:) = aux_vect(:) end if + + if (dist .lt. 1.d-6) then + return + end if enddo enddo enddo diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index 0f7a52dd..b2bf6150 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -1850,6 +1850,14 @@ def get_generic_covariant_coefficients(v, space, thr = 0.05): return None space = np.array(space, dtype = np.double) + x_start = space.dot(v) + + if np.linalg.norm(v - x_start.dot(space)) < thr: + return x_start + + if space.shape[0] == space.shape[1]: + x = np.linalg.solve(space, v) + return x # Solve the minimization problem def function_to_minimize(x): @@ -1858,11 +1866,12 @@ def function_to_minimize(x): def gradient(x): return -2*(v - x.dot(space)).dot(space.T) + # Solve the minimization problem res = scipy.optimize.minimize(function_to_minimize, - np.zeros(space.shape[0]), + x_start, jac = gradient, - method = 'BFGS', + method = "BFGS", options = {'disp' : False}) # Check if the solution is correct diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 5c5e42f4..53422add 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4559,9 +4559,12 @@ def compute_force(indices): -def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon = 0.05, - supercell = (1,1,1), progress = -1, progress_bar = False, - debug = False): +def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon=0.05, + supercell=(1,1,1), + progress=-1, + progress_bar=False, + debug=False, + timer=None): """ COMPUTE THE FORCE CONSTANT MATRIX EXPLOITING SYMMETRIES ======================================================= @@ -4583,6 +4586,10 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon 8. Compute the force constant matrix as the matrix product of the inverse change of basis and the matrix of forces. + TODO: This algorithm neglects the ASR, therefore, sometimes, there are 3 more independent + displacements whose computation could be avoided. + + Parameters ---------- structure : CC.Structure.Structure @@ -4640,7 +4647,10 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon print("Getting symmetry equivalent atoms") irts = [] for i, s in enumerate(symm): - irt = symmetries.GetIRT(super_structure, s) + if timer is not None: + irt = timer.execute_timed_function(symmetries.GetIRT, super_structure, s, timer=timer) + else: + irt = symmetries.GetIRT(super_structure, s, timer=timer) irts.append(irt) # Build the symmetry inequivalent displacements @@ -4655,7 +4665,11 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon print("Simulating displacement", i, j) # Check if the displacement can be decomposed in those already computed - coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) + if timer is not None: + coefficients = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, disp.ravel(), displacements) + else: + coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) + #if debug: # print("The decomposition is:", coefficients) if coefficients is None: @@ -4663,14 +4677,21 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon list_of_calculations.append((i,j)) # Generate the symmetry equivalent displacements - disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + if timer is not None: + disp_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector, symm, disp, super_structure.unit_cell, irts) + else: + disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + # Check wether to add or not the newly generated displacements to the space for i_sym in range(n_syms): v = disp_sym[i_sym, :, :] #if debug: # print("The symmetry {} gives a vector v = {}".format(i_sym, v)) - coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), displacements) + if timer is not None: + coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), displacements) + else: + coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), displacements) #if debug: # print("Is new?", coeffs is None) if coeffs is None: @@ -4712,7 +4733,10 @@ def compute_force(indices): #atm.set_calculator(ase_calculator) fc[3*i + j, :] -= forces.ravel() - fc = Settings.GoParallel(compute_force, list_of_calculations, reduce_op='+') + if timer is not None: + fc = timer.execute_timed_function(Settings.GoParallel, compute_force, list_of_calculations, reduce_op='+') + else: + fc = Settings.GoParallel(compute_force, list_of_calculations, reduce_op='+') #if Settings.am_i_the_master(): # np.savetxt("FC_before_subtraction.dat", fc) @@ -4741,13 +4765,21 @@ def compute_force(indices): force = fc[3*i + j, :].reshape((super_structure.N_atoms, 3)) # Generate the symmetry equivalent displacements - disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) - force_sym = symmetries.ApplySymmetriesToVector(symm, force, super_structure.unit_cell, irts) + if timer is not None: + disp_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, disp, super_structure.unit_cell, irts) + force_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, force, super_structure.unit_cell, irts) + else: + disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + force_sym = symmetries.ApplySymmetriesToVector(symm, force, super_structure.unit_cell, irts) # Check wether to add or not the newly generated displacements to the space for i_sym in range(n_syms): v = disp_sym[i_sym, :, :] - coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), disp_basis) + if timer is not None: + coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), disp_basis) + else: + coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), disp_basis) + if coeffs is None: disp_basis.append(v.ravel()) counter_index += 1 diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index ceeb9e06..fd0ab1c3 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -62,13 +62,7 @@ def print_report(self): """ Print the report on timing for each function. """ - - print("") - print("") - print(" /----------------\ ") - print(" | TIMER REPORT | ") - print(" \----------------/ ") - print() + print("\n\n" + "="*24 + "\n" + " "*8 + "TIMER REPORT" + " "*8 + "\n" + "="*24 + "\n") for name in self.timed_subroutines: tt = self.timed_subroutines[name]["time"] @@ -84,7 +78,7 @@ def print_report(self): print() print(" END OF TIMER REPORT ") - print("---------------------") + print("=====================") print() diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 3242e92d..09ca71c8 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -88,7 +88,7 @@ def __init__(self, structure, threshold = 1e-5): self.QE_ft = np.zeros( (3, 48), dtype = np.float64, order = "F") - self.QE_minus_q = np.bool( False ) + self.QE_minus_q = False self.QE_irotmq = np.intc(0) self.QE_nsymq = np.intc( 0 ) self.QE_nsym = np.intc(0) diff --git a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py index b5e4a394..9c67f0a1 100644 --- a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py +++ b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py @@ -14,6 +14,9 @@ @pytest.mark.parametrize("supercell", [(2,2,2), (3,3,3)]) def test_phonons_finite_displacements(supercell, debug=False): """Test the phonons using finite displacements""" + timer=None + if debug: + timer = CC.Timer.Timer(active=True) # Build a MgO structure using ASE atoms = ase.build.bulk('Cu', 'fcc', a=3.6) @@ -40,7 +43,8 @@ def test_phonons_finite_displacements(supercell, debug=False): # Compute the dynamical matrix using the symmetrized dyn2 = CC.Phonons.compute_phonons_finite_displacements_sym(struct, calc, supercell=supercell, - debug=True) + debug=True, + timer=timer) w_good, pol_good = dyn.DiagonalizeSupercell() w_bad, pol_bad = dyn2.DiagonalizeSupercell() @@ -54,10 +58,13 @@ def test_phonons_finite_displacements(supercell, debug=False): w_bad[i] * CC.Units.RY_TO_CM) for i in range(len(w_good))])) + if timer is not None: + timer.print_report() + # Check that the two are equal for iq, dyn in enumerate(dyn.dynmats): assert np.allclose(dyn, dyn2.dynmats[iq], atol=1e-3) if __name__ == "__main__": - test_phonons_finite_displacements((2,2,2)) + test_phonons_finite_displacements((6,6,6), debug=True) From 5d2c37c77602d590c2145cf046c719b68ebc10a8 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sat, 11 Feb 2023 22:17:06 +0100 Subject: [PATCH 087/204] Now get equivalent atom is much faster, however, it does not work. An example of test that is failing is test_impose_symmetries.py inside the same directory (tests) Needs the debugo --- FModules/get_equivalent_atoms.f90 | 126 +- cellconstructor/Phonons.py | 24 +- .../TestEffChargeInterp/test_eff_interpol.py | 2 +- .../test_impose_symmetries.py | 4 + tests/TestStrainConfiguration/strained_dyn | 1314 ++++++++--------- 5 files changed, 788 insertions(+), 682 deletions(-) diff --git a/FModules/get_equivalent_atoms.f90 b/FModules/get_equivalent_atoms.f90 index c90e04cb..df5097ef 100644 --- a/FModules/get_equivalent_atoms.f90 +++ b/FModules/get_equivalent_atoms.f90 @@ -7,31 +7,115 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at integer, dimension(nat), intent(out) :: eq_atoms integer :: nat - integer :: i, j + integer :: i, j, eq_found, j_aux double precision :: min_dist, tmp_dist - double precision, dimension(3) :: dist + double precision, dimension(3) :: aux_vect + double precision, dimension(nat) :: total_dist + + ! Variables for get_closest_atoms + integer :: nx, ny, nz, mynx, myny, mynz + integer, parameter :: far = 2 + logical :: found + + ! Set all the atoms as not equivalent + eq_atoms(:) = -1 + + ! This subroutine could use get_closest_vector + ! However, we mix it here to invert the loops + ! And exploit a most likely scenario that the + ! Replica of the atoms is on the same cell + ! This is a huge speedup + + eq_found = 0 do i = 1, nat - min_dist = 1000000.d0 - do j_aux = i, nat + i -1 - ! Warp the loop over j to start with i - ! Which is the most probable value (and the most efficient loop) - j = mod(j_aux, nat + 1) - - ! Exclude different type of atoms - if ( ityp1(i) .ne. ityp2(j) ) continue - call get_closest_vector(unit_cell, coords1(i, :) - coords2(j, :), dist) - tmp_dist = sum(dist**2) - - if (tmp_dist .lt. min_dist) then - min_dist = tmp_dist - eq_atoms(i) = j - 1 ! - 1 is for Fortan to python correspondance - end if - if (tmp_dist .lt. 1.d-6) then - exit - end if + total_dist(:) = 100000.d0 + + !print *, "ATOM: ", i, " of ", nat + found = .false. + + ! Decide what cell to probe the distance + do mynx = -far, far + ! Reorder the loop to start with 0 + ! which is the most probable value (exit early if found) + if (mynx .le. 0) then + nx = mynx + far + else + nx = -mynx + endif + do myny = -far, far + if (myny .le. 0) then + ny = myny + far + else + ny = -myny + endif + do mynz = -far, far + if (mynz .le. 0) then + nz = mynz + far + else + nz = -mynz + endif + + !print *, "Checking cell: ", nx, ny, nz + + ! Now we have the cell, we can loop over the atoms + do j_aux = i, nat + i -1 + ! Warp the loop over j to start with i + ! Which is the most probable value (and the most efficient loop) + j = j_aux + if (j .gt. nat) then + j = j - nat + end if + + ! Jump if the atom is already found + if (total_dist(j) .lt. 1.d-6) cycle + + + ! Exclude different type of atoms + if ( ityp1(i) .ne. ityp2(j) ) continue + !call get_closest_vector(unit_cell, coords1(i, :) - coords2(j, :), dist) + + ! Unwrap the get_closest_vector subroutine here + aux_vect(:) = coords1(i, :) - coords2(j, :) + if (nx .ne. 0) then + aux_vect(:) = aux_vect(:) + nx * unit_cell(1, :) + end if + if (ny .ne. 0) then + aux_vect(:) = aux_vect(:) + ny * unit_cell(2, :) + end if + if (nz .ne. 0) then + aux_vect(:) = aux_vect(:) + nz * unit_cell(3, :) + end if + + tmp_dist = sum(aux_vect**2) + + !print *, "Checking atom ", j, " of ", nat, "old_dist: ", & + ! total_dist(j), " new_dist: ", tmp_dist + + if (tmp_dist .lt. total_dist(j)) then + total_dist(j) = tmp_dist + eq_atoms(i) = j - 1 ! - 1 is for Fortan to python correspondance + end if + if (tmp_dist .lt. 1.d-6) then + eq_found = eq_found + 1 + + ! Early exit if all the atoms are found + if (eq_found .eq. nat) then + !print *, "Everything found" + !print *, eq_atoms + return + end if + found = .true. + exit + end if + enddo + if (found) exit + enddo + if (found) exit + enddo + if (found) exit enddo - enddo + enddo end subroutine get_equivalent_atoms diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 53422add..d4ed2c78 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4661,8 +4661,8 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) disp[i, j] += 1 - if debug: - print("Simulating displacement", i, j) + #if debug: + # print("Simulating displacement", i, j) # Check if the displacement can be decomposed in those already computed if timer is not None: @@ -4697,6 +4697,16 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= if coeffs is None: displacements.append(v.ravel()) assert len(displacements) <= nat3, "The number of displacements is not correct. Something went wrong." + if len(displacements) == nat3: + break + + # Early exit + if len(displacements) == nat3: + break + + # Early exit + if len(displacements) == nat3: + break print("Number of symmetry inequivalent displacements:", len(list_of_calculations)) @@ -4757,7 +4767,11 @@ def compute_force(indices): counter_index = -1 for i in range(super_structure.N_atoms): + if counter_index +1 == nat3: + break for j in range(3): + if counter_index +1 == nat3: + break disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) disp[i, j] += 1 if (i, j) in list_of_calculations: @@ -4814,7 +4828,11 @@ def compute_force(indices): if np.prod(supercell) > 1: correct_dyn = Phonons(structure, nqirr = np.prod(supercell)) q_tot = symmetries.GetQGrid(structure.unit_cell, supercell) - dynq = GetDynQFromFCSupercell(final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) + if timer is not None: + dynq = timer.execute_timed_function(GetDynQFromFCSupercell, + final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) + else: + dynq = GetDynQFromFCSupercell(final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) for iq, q in enumerate(q_tot): correct_dyn.dynmats[iq] = dynq[iq, :,:] correct_dyn.q_tot[iq] = q diff --git a/tests/TestEffChargeInterp/test_eff_interpol.py b/tests/TestEffChargeInterp/test_eff_interpol.py index 15ae3aaa..730c93f1 100644 --- a/tests/TestEffChargeInterp/test_eff_interpol.py +++ b/tests/TestEffChargeInterp/test_eff_interpol.py @@ -8,7 +8,7 @@ import numpy as np import pytest -def test_eff_charge_signle_q(): +def test_eff_charge_single_q(): total_path = os.path.dirname(os.path.abspath(__file__)) os.chdir(total_path) diff --git a/tests/TestImposeSymmetries/test_impose_symmetries.py b/tests/TestImposeSymmetries/test_impose_symmetries.py index 696f7088..4ea67d84 100644 --- a/tests/TestImposeSymmetries/test_impose_symmetries.py +++ b/tests/TestImposeSymmetries/test_impose_symmetries.py @@ -51,3 +51,7 @@ def test_impose_symmetry(): print ("New space group with high threshold:", s_group_after) assert s_group_after == GROUP + + +if __name__ == "__main__": + test_impose_symmetry() diff --git a/tests/TestStrainConfiguration/strained_dyn b/tests/TestStrainConfiguration/strained_dyn index 0b0e8846..d0cfc3f0 100644 --- a/tests/TestStrainConfiguration/strained_dyn +++ b/tests/TestStrainConfiguration/strained_dyn @@ -8,643 +8,643 @@ Basis vectors 1 'O ' 14582.1964298742277606 2 'H ' 918.8360549359653078 1 1 0.5839302648000000 0.3319937777999998 0.1132488480000000 - 2 2 0.5839302648000000 0.3320150535600000 0.3843247011600000 + 2 2 0.5839302648000000 0.3320150535599999 0.3843247011600000 3 2 0.5839302648000000 0.0732959209200000 0.0332384636400000 - 4 1 1.1678605296000000 0.6712271367599999 1.7829483982799998 - 5 2 1.3852049017199992 0.5385565359600000 1.8752979972000001 - 6 2 0.9505161586799996 0.5385565359600000 1.8752979972000001 - 7 1 1.1678605296000000 0.6823894577999998 1.0673640780000000 - 8 2 1.1678605296000000 0.6823681820400000 1.3384399323599998 - 9 2 1.1678605296000000 0.9410873158799999 0.9873536936399999 + 4 1 1.1678605296000000 0.6712271367599996 1.7829483982799998 + 5 2 1.3852049017199992 0.5385565359599997 1.8752979972000001 + 6 2 0.9505161586799996 0.5385565359599997 1.8752979972000001 + 7 1 1.1678605296000000 0.6823894577999996 1.0673640780000000 + 8 2 1.1678605296000000 0.6823681820399999 1.3384399323599998 + 9 2 1.1678605296000000 0.9410873158799996 0.9873536936399999 10 1 0.5839302648000000 0.3431560988400000 0.8288331670799999 - 11 2 0.3665858938799999 0.4758266996400000 0.9211827659999999 - 12 2 0.8012746369199997 0.4758266996400000 0.9211827659999999 + 11 2 0.3665858938799999 0.4758266996399999 0.9211827659999999 + 12 2 0.8012746369199997 0.4758266996399998 0.9211827659999999 Dynamical Matrix in cartesian axes q = ( 0.000000000000 0.000000000000 0.000000000000 ) 1 1 - 0.0723775009917373 0.0000000000000000 0.0000000000000009 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000009 0.0000000000000000 0.3831399905936629 0.0000000000000000 0.0800072256509417 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0800072256509417 0.0000000000000000 0.4293434337307540 0.0000000000000000 + 0.0723775009917373 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.3831399905936653 0.0000000000000000 0.0800072256509785 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0800072256509785 0.0000000000000000 0.4293434337307697 0.0000000000000000 1 2 - -0.0251057439413787 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 -0.0569567699834664 0.0000000000000000 -0.0058150573711815 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0222771411146684 0.0000000000000000 -0.2988598772525919 0.0000000000000000 + -0.0251057439413780 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0569567699834672 0.0000000000000000 -0.0058150573712186 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0222771411146680 0.0000000000000000 -0.2988598772525951 0.0000000000000000 1 3 - -0.0289738345959185 0.0000000000000000 -0.0000000000000009 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.2820802915433075 0.0000000000000000 -0.0527306161696237 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0884826303559393 0.0000000000000000 -0.0739447334126185 0.0000000000000000 + -0.0289738345959185 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.2820802915433048 0.0000000000000000 -0.0527306161696213 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0884826303559725 0.0000000000000000 -0.0739447334126281 0.0000000000000000 1 4 - -0.0373686571560713 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000202 0.0000000000000000 -0.0336428001201908 0.0000000000000000 -0.0041894809945791 0.0000000000000000 - -0.0000000000000050 0.0000000000000000 -0.0044397818519440 0.0000000000000000 0.0041303780996453 0.0000000000000000 + -0.0373686571560741 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0336428001201926 0.0000000000000000 -0.0041894809945765 0.0000000000000000 + -0.0000000000000063 0.0000000000000000 -0.0044397818519279 0.0000000000000000 0.0041303780996326 0.0000000000000000 1 5 - 0.0079739154089267 0.0000000000000000 -0.0168418597307717 0.0000000000000000 0.0106690755761885 0.0000000000000000 - -0.0100652146645538 0.0000000000000000 -0.0099918936929229 0.0000000000000000 -0.0069122209428933 0.0000000000000000 - -0.0036706343437367 0.0000000000000000 -0.0005259246072792 0.0000000000000000 -0.0156150191112106 0.0000000000000000 + 0.0079739154089275 0.0000000000000000 -0.0168418597307725 0.0000000000000000 0.0106690755761885 0.0000000000000000 + -0.0100652146645704 0.0000000000000000 -0.0099918936929139 0.0000000000000000 -0.0069122209428995 0.0000000000000000 + -0.0036706343437213 0.0000000000000000 -0.0005259246072887 0.0000000000000000 -0.0156150191112053 0.0000000000000000 1 6 - 0.0079739154089256 0.0000000000000000 0.0168418597307711 0.0000000000000000 -0.0106690755761881 0.0000000000000000 - 0.0100652146645725 0.0000000000000000 -0.0099918936929108 0.0000000000000000 -0.0069122209429007 0.0000000000000000 - 0.0036706343437412 0.0000000000000000 -0.0005259246072760 0.0000000000000000 -0.0156150191112127 0.0000000000000000 + 0.0079739154089276 0.0000000000000000 0.0168418597307724 0.0000000000000000 -0.0106690755761890 0.0000000000000000 + 0.0100652146645703 0.0000000000000000 -0.0099918936929136 0.0000000000000000 -0.0069122209428989 0.0000000000000000 + 0.0036706343437270 0.0000000000000000 -0.0005259246072848 0.0000000000000000 -0.0156150191112072 0.0000000000000000 1 7 - 0.0015706027157736 0.0000000000000000 0.0000000000000013 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0058994142114985 0.0000000000000000 0.0129555088579418 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0129555088579327 0.0000000000000000 -0.0025061456783197 0.0000000000000000 + 0.0015706027157741 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0058994142115015 0.0000000000000000 0.0129555088579829 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0129555088579013 0.0000000000000000 -0.0025061456783163 0.0000000000000000 1 8 - -0.0018152750012302 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000007 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0012476417535534 0.0000000000000000 -0.0078942408875820 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0002039213450287 0.0000000000000000 0.0145769254785594 0.0000000000000000 + -0.0018152750012302 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0012476417535537 0.0000000000000000 -0.0078942408876209 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0002039213450301 0.0000000000000000 0.0145769254785470 0.0000000000000000 1 9 - -0.0016399265604469 0.0000000000000000 -0.0000000000000010 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0035091911501687 0.0000000000000000 -0.0021722504817093 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0074822204968633 0.0000000000000000 0.0003426041600677 0.0000000000000000 + -0.0016399265604471 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0035091911501727 0.0000000000000000 -0.0021722504817068 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0074822204968365 0.0000000000000000 0.0003426041600751 0.0000000000000000 1 10 - 0.0078082955673492 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000011 0.0000000000000000 - -0.0000000000000095 0.0000000000000000 0.0119074076296581 0.0000000000000000 -0.0034942738523537 0.0000000000000000 - 0.0000000000000029 0.0000000000000000 0.0044778895271369 0.0000000000000000 -0.0367974389514098 0.0000000000000000 + 0.0078082955673501 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000058 0.0000000000000000 0.0119074076296487 0.0000000000000000 -0.0034942738523646 0.0000000000000000 + -0.0000000000000043 0.0000000000000000 0.0044778895271552 0.0000000000000000 -0.0367974389513981 0.0000000000000000 1 11 - -0.0014003952261861 0.0000000000000000 0.0002449744821626 0.0000000000000000 -0.0015206472447131 0.0000000000000000 - -0.0091891495399317 0.0000000000000000 -0.0030108060126926 0.0000000000000000 -0.0014211831836486 0.0000000000000000 - -0.0007217572183791 0.0000000000000000 -0.0035553985811589 0.0000000000000000 -0.0025275585661352 0.0000000000000000 + -0.0014003952261873 0.0000000000000000 0.0002449744821629 0.0000000000000000 -0.0015206472447125 0.0000000000000000 + -0.0091891495399408 0.0000000000000000 -0.0030108060126852 0.0000000000000000 -0.0014211831836439 0.0000000000000000 + -0.0007217572183650 0.0000000000000000 -0.0035553985811701 0.0000000000000000 -0.0025275585661420 0.0000000000000000 1 12 - -0.0014003952261879 0.0000000000000000 -0.0002449744821634 0.0000000000000000 0.0015206472447121 0.0000000000000000 - 0.0091891495399399 0.0000000000000000 -0.0030108060126880 0.0000000000000000 -0.0014211831836464 0.0000000000000000 - 0.0007217572183766 0.0000000000000000 -0.0035553985811604 0.0000000000000000 -0.0025275585661368 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 -0.0002449744821633 0.0000000000000000 0.0015206472447124 0.0000000000000000 + 0.0091891495399460 0.0000000000000000 -0.0030108060126819 0.0000000000000000 -0.0014211831836424 0.0000000000000000 + 0.0007217572183687 0.0000000000000000 -0.0035553985811676 0.0000000000000000 -0.0025275585661413 0.0000000000000000 2 1 - -0.0251057439413787 0.0000000000000000 0.0000000000000011 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0569567699834664 0.0000000000000000 0.0222771411146684 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0058150573711815 0.0000000000000000 -0.2988598772525920 0.0000000000000000 + -0.0251057439413780 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000006 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0569567699834672 0.0000000000000000 0.0222771411146680 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0058150573712186 0.0000000000000000 -0.2988598772525951 0.0000000000000000 2 2 - 0.0352255604087121 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0577498980966746 0.0000000000000000 0.0004642893512919 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0004642893512919 0.0000000000000000 0.2960907478396961 0.0000000000000000 + 0.0352255604087115 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0577498980966757 0.0000000000000000 0.0004642893512939 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0004642893512939 0.0000000000000000 0.2960907478396882 0.0000000000000000 2 3 - 0.0037861455182865 0.0000000000000000 -0.0000000000000006 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0103751426308787 0.0000000000000000 -0.0282119025677887 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0049287602283657 0.0000000000000000 -0.0033792838522517 0.0000000000000000 + 0.0037861455182863 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0103751426308778 0.0000000000000000 -0.0282119025677900 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0049287602283322 0.0000000000000000 -0.0033792838522429 0.0000000000000000 2 4 - -0.0149643881777186 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000010 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0044261389355785 0.0000000000000000 - -0.0000000000000008 0.0000000000000000 0.0009466269410001 0.0000000000000000 0.0064890897647976 0.0000000000000000 + -0.0149643881777191 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000005 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0085647327830328 0.0000000000000000 0.0044261389355786 0.0000000000000000 + 0.0000000000000059 0.0000000000000000 0.0009466269409799 0.0000000000000000 0.0064890897648134 0.0000000000000000 2 5 - 0.0053960771921631 0.0000000000000000 -0.0027777266316762 0.0000000000000000 -0.0010754919735294 0.0000000000000000 - -0.0041883714492634 0.0000000000000000 0.0037383917967313 0.0000000000000000 -0.0001605357525139 0.0000000000000000 - 0.0052382113260860 0.0000000000000000 0.0007249474944342 0.0000000000000000 -0.0008206821613049 0.0000000000000000 + 0.0053960771921629 0.0000000000000000 -0.0027777266316761 0.0000000000000000 -0.0010754919735295 0.0000000000000000 + -0.0041883714492616 0.0000000000000000 0.0037383917967313 0.0000000000000000 -0.0001605357525136 0.0000000000000000 + 0.0052382113260673 0.0000000000000000 0.0007249474944469 0.0000000000000000 -0.0008206821613126 0.0000000000000000 2 6 - 0.0053960771921624 0.0000000000000000 0.0027777266316753 0.0000000000000000 0.0010754919735291 0.0000000000000000 - 0.0041883714492625 0.0000000000000000 0.0037383917967304 0.0000000000000000 -0.0001605357525135 0.0000000000000000 - -0.0052382113260854 0.0000000000000000 0.0007249474944347 0.0000000000000000 -0.0008206821613051 0.0000000000000000 + 0.0053960771921629 0.0000000000000000 0.0027777266316758 0.0000000000000000 0.0010754919735288 0.0000000000000000 + 0.0041883714492619 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0001605357525140 0.0000000000000000 + -0.0052382113260725 0.0000000000000000 0.0007249474944436 0.0000000000000000 -0.0008206821613105 0.0000000000000000 2 7 - -0.0018152750012295 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0012476417535550 0.0000000000000000 0.0002039213450275 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0078942408875715 0.0000000000000000 0.0145769254785630 0.0000000000000000 + -0.0018152750012303 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0012476417535543 0.0000000000000000 0.0002039213450258 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0078942408875419 0.0000000000000000 0.0145769254785731 0.0000000000000000 2 8 - 0.0036353210827943 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0001181663659069 0.0000000000000000 -0.0026161584162162 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0026161584162164 0.0000000000000000 -0.0221544638345910 0.0000000000000000 + 0.0036353210827945 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0001181663659067 0.0000000000000000 -0.0026161584162145 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0026161584162183 0.0000000000000000 -0.0221544638345920 0.0000000000000000 2 9 - -0.0006990068039689 0.0000000000000000 -0.0000000000000007 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0007453998223711 0.0000000000000000 0.0020862975258870 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0005005588826071 0.0000000000000000 -0.0034474484778407 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0007453998223720 0.0000000000000000 0.0020862975258871 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0005005588826329 0.0000000000000000 -0.0034474484778466 0.0000000000000000 2 10 - -0.0158629633765113 0.0000000000000000 0.0000000000000008 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 -0.0142572303934425 0.0000000000000000 0.0025026894102773 0.0000000000000000 - -0.0000000000000058 0.0000000000000000 -0.0110402408679744 0.0000000000000000 0.0060798140623874 0.0000000000000000 + -0.0158629633765108 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0142572303934415 0.0000000000000000 0.0025026894102782 0.0000000000000000 + 0.0000000000000022 0.0000000000000000 -0.0110402408679930 0.0000000000000000 0.0060798140623739 0.0000000000000000 2 11 - 0.0025040980237175 0.0000000000000000 -0.0023164619816248 0.0000000000000000 0.0038518265447299 0.0000000000000000 - 0.0006119532508366 0.0000000000000000 0.0011510144726826 0.0000000000000000 -0.0004056725610959 0.0000000000000000 - -0.0017406728581228 0.0000000000000000 0.0039561444256946 0.0000000000000000 0.0031229275970274 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 -0.0023164619816243 0.0000000000000000 0.0038518265447299 0.0000000000000000 + 0.0006119532508363 0.0000000000000000 0.0011510144726815 0.0000000000000000 -0.0004056725610964 0.0000000000000000 + -0.0017406728581400 0.0000000000000000 0.0039561444257064 0.0000000000000000 0.0031229275970346 0.0000000000000000 2 12 - 0.0025040980237168 0.0000000000000000 0.0023164619816240 0.0000000000000000 -0.0038518265447296 0.0000000000000000 - -0.0006119532508375 0.0000000000000000 0.0011510144726821 0.0000000000000000 -0.0004056725610957 0.0000000000000000 - 0.0017406728581278 0.0000000000000000 0.0039561444256975 0.0000000000000000 0.0031229275970291 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 0.0023164619816238 0.0000000000000000 -0.0038518265447294 0.0000000000000000 + -0.0006119532508367 0.0000000000000000 0.0011510144726812 0.0000000000000000 -0.0004056725610964 0.0000000000000000 + 0.0017406728581383 0.0000000000000000 0.0039561444257052 0.0000000000000000 0.0031229275970341 0.0000000000000000 3 1 - -0.0289738345959185 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000009 0.0000000000000000 -0.2820802915433075 0.0000000000000000 -0.0884826303559393 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0527306161696237 0.0000000000000000 -0.0739447334126185 0.0000000000000000 + -0.0289738345959185 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.2820802915433048 0.0000000000000000 -0.0884826303559725 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0527306161696213 0.0000000000000000 -0.0739447334126281 0.0000000000000000 3 2 - 0.0037861455182865 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0103751426308787 0.0000000000000000 -0.0049287602283657 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0282119025677887 0.0000000000000000 -0.0033792838522517 0.0000000000000000 + 0.0037861455182863 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0103751426308778 0.0000000000000000 -0.0049287602283322 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0282119025677900 0.0000000000000000 -0.0033792838522429 0.0000000000000000 3 3 - 0.0365782981378747 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.2729248902175087 0.0000000000000000 0.0713458205553473 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0713458205553473 0.0000000000000000 0.0798291225288867 0.0000000000000000 + 0.0365782981378748 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.2729248902175019 0.0000000000000000 0.0713458205553449 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0713458205553449 0.0000000000000000 0.0798291225288869 0.0000000000000000 3 4 - -0.0193793176120027 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000176 0.0000000000000000 0.0128264092257460 0.0000000000000000 0.0093892601393180 0.0000000000000000 - 0.0000000000000041 0.0000000000000000 0.0108019320579820 0.0000000000000000 -0.0127958810116038 0.0000000000000000 + -0.0193793176120033 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0128264092257524 0.0000000000000000 0.0093892601393132 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0108019320579850 0.0000000000000000 -0.0127958810116063 0.0000000000000000 3 5 - 0.0043670482201904 0.0000000000000000 0.0062527546419651 0.0000000000000000 0.0032245610064168 0.0000000000000000 - 0.0073649825438505 0.0000000000000000 -0.0050060184798300 0.0000000000000000 0.0046134194019358 0.0000000000000000 - 0.0069798143243255 0.0000000000000000 -0.0003322634792029 0.0000000000000000 0.0072531804468945 0.0000000000000000 + 0.0043670482201905 0.0000000000000000 0.0062527546419656 0.0000000000000000 0.0032245610064173 0.0000000000000000 + 0.0073649825438658 0.0000000000000000 -0.0050060184798395 0.0000000000000000 0.0046134194019416 0.0000000000000000 + 0.0069798143243291 0.0000000000000000 -0.0003322634792060 0.0000000000000000 0.0072531804468971 0.0000000000000000 3 6 - 0.0043670482201902 0.0000000000000000 -0.0062527546419650 0.0000000000000000 -0.0032245610064164 0.0000000000000000 - -0.0073649825438664 0.0000000000000000 -0.0050060184798397 0.0000000000000000 0.0046134194019418 0.0000000000000000 - -0.0069798143243292 0.0000000000000000 -0.0003322634792054 0.0000000000000000 0.0072531804468961 0.0000000000000000 + 0.0043670482201906 0.0000000000000000 -0.0062527546419649 0.0000000000000000 -0.0032245610064164 0.0000000000000000 + -0.0073649825438657 0.0000000000000000 -0.0050060184798391 0.0000000000000000 0.0046134194019415 0.0000000000000000 + -0.0069798143243287 0.0000000000000000 -0.0003322634792062 0.0000000000000000 0.0072531804468966 0.0000000000000000 3 7 - -0.0016399265604474 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0035091911501681 0.0000000000000000 -0.0074822204968739 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0021722504817079 0.0000000000000000 0.0003426041600652 0.0000000000000000 + -0.0016399265604473 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0035091911501668 0.0000000000000000 -0.0074822204969110 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0021722504817096 0.0000000000000000 0.0003426041600554 0.0000000000000000 3 8 - -0.0006990068039682 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0007453998223729 0.0000000000000000 -0.0005005588825975 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778374 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0007453998223720 0.0000000000000000 -0.0005005588825623 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0020862975258870 0.0000000000000000 -0.0034474484778282 0.0000000000000000 3 9 - 0.0025844652016200 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0002706095090059 0.0000000000000000 0.0025129031626737 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0025129031626718 0.0000000000000000 -0.0015754786010474 0.0000000000000000 + 0.0025844652016199 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0002706095090055 0.0000000000000000 0.0025129031626719 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0025129031626731 0.0000000000000000 -0.0015754786010481 0.0000000000000000 3 10 - -0.0001599946965682 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000070 0.0000000000000000 0.0004054668963083 0.0000000000000000 0.0101430343307429 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 0.0081775121522211 0.0000000000000000 0.0079899884223479 0.0000000000000000 + -0.0001599946965685 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000053 0.0000000000000000 0.0004054668963170 0.0000000000000000 0.0101430343307528 0.0000000000000000 + 0.0000000000000016 0.0000000000000000 0.0081775121522225 0.0000000000000000 0.0079899884223502 0.0000000000000000 3 11 - -0.0004154624427384 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225502 0.0000000000000000 - 0.0127928624961699 0.0000000000000000 -0.0007025897616743 0.0000000000000000 -0.0006118410528829 0.0000000000000000 - 0.0050585024151198 0.0000000000000000 -0.0031456369018469 0.0000000000000000 -0.0037626256179469 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0012439381262117 0.0000000000000000 0.0022873936225500 0.0000000000000000 + 0.0127928624961786 0.0000000000000000 -0.0007025897616810 0.0000000000000000 -0.0006118410528871 0.0000000000000000 + 0.0050585024151230 0.0000000000000000 -0.0031456369018478 0.0000000000000000 -0.0037626256179474 0.0000000000000000 3 12 - -0.0004154624427384 0.0000000000000000 -0.0012439381262114 0.0000000000000000 -0.0022873936225505 0.0000000000000000 - -0.0127928624961760 0.0000000000000000 -0.0007025897616779 0.0000000000000000 -0.0006118410528851 0.0000000000000000 - -0.0050585024151207 0.0000000000000000 -0.0031456369018475 0.0000000000000000 -0.0037626256179469 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0012439381262110 0.0000000000000000 -0.0022873936225507 0.0000000000000000 + -0.0127928624961835 0.0000000000000000 -0.0007025897616839 0.0000000000000000 -0.0006118410528890 0.0000000000000000 + -0.0050585024151244 0.0000000000000000 -0.0031456369018485 0.0000000000000000 -0.0037626256179478 0.0000000000000000 4 1 - -0.0373686571560713 0.0000000000000000 -0.0000000000000202 0.0000000000000000 -0.0000000000000050 0.0000000000000000 - 0.0000000000000010 0.0000000000000000 -0.0336428001201908 0.0000000000000000 -0.0044397818519440 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0041894809945791 0.0000000000000000 0.0041303780996453 0.0000000000000000 + -0.0373686571560741 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000063 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0336428001201926 0.0000000000000000 -0.0044397818519279 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0041894809945765 0.0000000000000000 0.0041303780996326 0.0000000000000000 4 2 - -0.0149643881777186 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000008 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0009466269410001 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0044261389355785 0.0000000000000000 0.0064890897647976 0.0000000000000000 + -0.0149643881777191 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000059 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0085647327830328 0.0000000000000000 0.0009466269409799 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0044261389355786 0.0000000000000000 0.0064890897648134 0.0000000000000000 4 3 - -0.0193793176120027 0.0000000000000000 0.0000000000000176 0.0000000000000000 0.0000000000000041 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0128264092257460 0.0000000000000000 0.0108019320579820 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0093892601393180 0.0000000000000000 -0.0127958810116038 0.0000000000000000 + -0.0193793176120033 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0128264092257524 0.0000000000000000 0.0108019320579850 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0093892601393133 0.0000000000000000 -0.0127958810116063 0.0000000000000000 4 4 - 0.4834443802759689 0.0000000000000000 -0.0000000000000128 0.0000000000000000 0.0000000000000093 0.0000000000000000 - -0.0000000000000128 0.0000000000000000 0.2588422264936643 0.0000000000000000 -0.1308110718530715 0.0000000000000000 - 0.0000000000000093 0.0000000000000000 -0.1308110718530715 0.0000000000000000 0.1639030178691390 0.0000000000000000 + 0.4834443802759824 0.0000000000000000 0.0000000000000025 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000025 0.0000000000000000 0.2588422264936672 0.0000000000000000 -0.1308110718530735 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.1308110718530735 0.0000000000000000 0.1639030178691405 0.0000000000000000 4 5 - -0.2042620382021134 0.0000000000000000 0.1111612914471694 0.0000000000000000 -0.0678004081048752 0.0000000000000000 - 0.0961493426419503 0.0000000000000000 -0.1150790588758547 0.0000000000000000 0.0626077946132216 0.0000000000000000 - -0.0680988033808478 0.0000000000000000 0.0633030715249513 0.0000000000000000 -0.0673384314526836 0.0000000000000000 + -0.2042620382021099 0.0000000000000000 0.1111612914471668 0.0000000000000000 -0.0678004081048736 0.0000000000000000 + 0.0961493426419429 0.0000000000000000 -0.1150790588758525 0.0000000000000000 0.0626077946132204 0.0000000000000000 + -0.0680988033808428 0.0000000000000000 0.0633030715249498 0.0000000000000000 -0.0673384314526837 0.0000000000000000 4 6 - -0.2042620382020952 0.0000000000000000 -0.1111612914471573 0.0000000000000000 0.0678004081048672 0.0000000000000000 - -0.0961493426419393 0.0000000000000000 -0.1150790588758474 0.0000000000000000 0.0626077946132176 0.0000000000000000 - 0.0680988033808392 0.0000000000000000 0.0633030715249466 0.0000000000000000 -0.0673384314526808 0.0000000000000000 + -0.2042620382021122 0.0000000000000000 -0.1111612914471684 0.0000000000000000 0.0678004081048743 0.0000000000000000 + -0.0961493426419451 0.0000000000000000 -0.1150790588758535 0.0000000000000000 0.0626077946132218 0.0000000000000000 + 0.0680988033808430 0.0000000000000000 0.0633030715249508 0.0000000000000000 -0.0673384314526835 0.0000000000000000 4 7 - 0.0078082955673498 0.0000000000000000 -0.0000000000000234 0.0000000000000000 0.0000000000000023 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0119074076296463 0.0000000000000000 -0.0044778895271283 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0034942738523667 0.0000000000000000 -0.0367974389514158 0.0000000000000000 + 0.0078082955673491 0.0000000000000000 0.0000000000000043 0.0000000000000000 -0.0000000000000099 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0119074076296680 0.0000000000000000 -0.0044778895271169 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0034942738523487 0.0000000000000000 -0.0367974389514246 0.0000000000000000 4 8 - -0.0158629633765101 0.0000000000000000 0.0000000000000012 0.0000000000000000 0.0000000000000052 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 -0.0142572303934406 0.0000000000000000 0.0110402408679694 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0025026894102787 0.0000000000000000 0.0060798140623915 0.0000000000000000 + -0.0158629633765105 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000077 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0142572303934424 0.0000000000000000 0.0110402408679523 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 -0.0025026894102775 0.0000000000000000 0.0060798140624046 0.0000000000000000 4 9 - -0.0001599946965684 0.0000000000000000 0.0000000000000197 0.0000000000000000 -0.0000000000000052 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0004054668963187 0.0000000000000000 -0.0081775121522221 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0101430343307523 0.0000000000000000 0.0079899884223495 0.0000000000000000 + -0.0001599946965686 0.0000000000000000 -0.0000000000000031 0.0000000000000000 0.0000000000000010 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0004054668962976 0.0000000000000000 -0.0081775121522166 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0101430343307356 0.0000000000000000 0.0079899884223450 0.0000000000000000 4 10 - 0.0039008143595911 0.0000000000000000 -0.0000000000000132 0.0000000000000000 -0.0000000000000089 0.0000000000000000 - -0.0000000000000082 0.0000000000000000 -0.0008485805837892 0.0000000000000000 -0.0030686652718412 0.0000000000000000 - 0.0000000000000041 0.0000000000000000 0.0030686652718371 0.0000000000000000 -0.0082838582595772 0.0000000000000000 + 0.0039008143595918 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000010 0.0000000000000000 -0.0008485805837920 0.0000000000000000 -0.0030686652718427 0.0000000000000000 + 0.0000000000000009 0.0000000000000000 0.0030686652718384 0.0000000000000000 -0.0082838582595766 0.0000000000000000 4 11 - 0.0005529569781313 0.0000000000000000 0.0006881224323749 0.0000000000000000 0.0009938270035023 0.0000000000000000 - -0.0004060563613244 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0014852637978335 0.0000000000000000 - -0.0028171359308505 0.0000000000000000 0.0003308975272967 0.0000000000000000 0.0019808748951335 0.0000000000000000 + 0.0005529569781391 0.0000000000000000 0.0006881224323696 0.0000000000000000 0.0009938270034989 0.0000000000000000 + -0.0004060563613288 0.0000000000000000 0.0017449768597158 0.0000000000000000 0.0014852637978359 0.0000000000000000 + -0.0028171359308498 0.0000000000000000 0.0003308975272952 0.0000000000000000 0.0019808748951325 0.0000000000000000 4 12 - 0.0005529569781507 0.0000000000000000 -0.0006881224323619 0.0000000000000000 -0.0009938270034943 0.0000000000000000 - 0.0004060563613315 0.0000000000000000 0.0017449768597169 0.0000000000000000 0.0014852637978357 0.0000000000000000 - 0.0028171359308470 0.0000000000000000 0.0003308975272944 0.0000000000000000 0.0019808748951313 0.0000000000000000 + 0.0005529569781400 0.0000000000000000 -0.0006881224323686 0.0000000000000000 -0.0009938270034983 0.0000000000000000 + 0.0004060563613293 0.0000000000000000 0.0017449768597167 0.0000000000000000 0.0014852637978358 0.0000000000000000 + 0.0028171359308487 0.0000000000000000 0.0003308975272945 0.0000000000000000 0.0019808748951313 0.0000000000000000 5 1 - 0.0079739154089267 0.0000000000000000 -0.0100652146645538 0.0000000000000000 -0.0036706343437367 0.0000000000000000 - -0.0168418597307717 0.0000000000000000 -0.0099918936929229 0.0000000000000000 -0.0005259246072792 0.0000000000000000 - 0.0106690755761885 0.0000000000000000 -0.0069122209428933 0.0000000000000000 -0.0156150191112106 0.0000000000000000 + 0.0079739154089275 0.0000000000000000 -0.0100652146645704 0.0000000000000000 -0.0036706343437213 0.0000000000000000 + -0.0168418597307725 0.0000000000000000 -0.0099918936929139 0.0000000000000000 -0.0005259246072887 0.0000000000000000 + 0.0106690755761885 0.0000000000000000 -0.0069122209428995 0.0000000000000000 -0.0156150191112053 0.0000000000000000 5 2 - 0.0053960771921631 0.0000000000000000 -0.0041883714492634 0.0000000000000000 0.0052382113260860 0.0000000000000000 - -0.0027777266316762 0.0000000000000000 0.0037383917967313 0.0000000000000000 0.0007249474944342 0.0000000000000000 - -0.0010754919735294 0.0000000000000000 -0.0001605357525139 0.0000000000000000 -0.0008206821613049 0.0000000000000000 + 0.0053960771921629 0.0000000000000000 -0.0041883714492616 0.0000000000000000 0.0052382113260673 0.0000000000000000 + -0.0027777266316761 0.0000000000000000 0.0037383917967313 0.0000000000000000 0.0007249474944469 0.0000000000000000 + -0.0010754919735295 0.0000000000000000 -0.0001605357525136 0.0000000000000000 -0.0008206821613126 0.0000000000000000 5 3 - 0.0043670482201904 0.0000000000000000 0.0073649825438505 0.0000000000000000 0.0069798143243255 0.0000000000000000 - 0.0062527546419651 0.0000000000000000 -0.0050060184798300 0.0000000000000000 -0.0003322634792029 0.0000000000000000 - 0.0032245610064168 0.0000000000000000 0.0046134194019358 0.0000000000000000 0.0072531804468945 0.0000000000000000 + 0.0043670482201905 0.0000000000000000 0.0073649825438658 0.0000000000000000 0.0069798143243291 0.0000000000000000 + 0.0062527546419656 0.0000000000000000 -0.0050060184798395 0.0000000000000000 -0.0003322634792060 0.0000000000000000 + 0.0032245610064173 0.0000000000000000 0.0046134194019416 0.0000000000000000 0.0072531804468971 0.0000000000000000 5 4 - -0.2042620382021134 0.0000000000000000 0.0961493426419503 0.0000000000000000 -0.0680988033808478 0.0000000000000000 - 0.1111612914471695 0.0000000000000000 -0.1150790588758547 0.0000000000000000 0.0633030715249513 0.0000000000000000 - -0.0678004081048752 0.0000000000000000 0.0626077946132216 0.0000000000000000 -0.0673384314526836 0.0000000000000000 + -0.2042620382021099 0.0000000000000000 0.0961493426419429 0.0000000000000000 -0.0680988033808428 0.0000000000000000 + 0.1111612914471668 0.0000000000000000 -0.1150790588758525 0.0000000000000000 0.0633030715249498 0.0000000000000000 + -0.0678004081048736 0.0000000000000000 0.0626077946132204 0.0000000000000000 -0.0673384314526837 0.0000000000000000 5 5 - 0.2174594979186329 0.0000000000000000 -0.0954682304260234 0.0000000000000000 0.0600636707989573 0.0000000000000000 - -0.0954682304260234 0.0000000000000000 0.1104252604741436 0.0000000000000000 -0.0503426131734412 0.0000000000000000 - 0.0600636707989573 0.0000000000000000 -0.0503426131734412 0.0000000000000000 0.0677190190410534 0.0000000000000000 + 0.2174594979186275 0.0000000000000000 -0.0954682304260194 0.0000000000000000 0.0600636707989548 0.0000000000000000 + -0.0954682304260194 0.0000000000000000 0.1104252604741422 0.0000000000000000 -0.0503426131734402 0.0000000000000000 + 0.0600636707989547 0.0000000000000000 -0.0503426131734401 0.0000000000000000 0.0677190190410537 0.0000000000000000 5 6 - -0.0299583471230477 0.0000000000000000 0.0025306649736007 0.0000000000000000 0.0001964280885715 0.0000000000000000 - -0.0025306649736009 0.0000000000000000 0.0189330240079854 0.0000000000000000 -0.0130002466230954 0.0000000000000000 - -0.0001964280885709 0.0000000000000000 -0.0130002466230957 0.0000000000000000 0.0113735279572496 0.0000000000000000 + -0.0299583471230443 0.0000000000000000 0.0025306649736035 0.0000000000000000 0.0001964280885695 0.0000000000000000 + -0.0025306649736033 0.0000000000000000 0.0189330240079849 0.0000000000000000 -0.0130002466230954 0.0000000000000000 + -0.0001964280885694 0.0000000000000000 -0.0130002466230956 0.0000000000000000 0.0113735279572496 0.0000000000000000 5 7 - -0.0014003952261870 0.0000000000000000 -0.0091891495399357 0.0000000000000000 0.0007217572183866 0.0000000000000000 - 0.0002449744821628 0.0000000000000000 -0.0030108060126879 0.0000000000000000 0.0035553985811564 0.0000000000000000 - 0.0015206472447120 0.0000000000000000 0.0014211831836455 0.0000000000000000 -0.0025275585661338 0.0000000000000000 + -0.0014003952261863 0.0000000000000000 -0.0091891495399323 0.0000000000000000 0.0007217572183987 0.0000000000000000 + 0.0002449744821628 0.0000000000000000 -0.0030108060126917 0.0000000000000000 0.0035553985811469 0.0000000000000000 + 0.0015206472447127 0.0000000000000000 0.0014211831836480 0.0000000000000000 -0.0025275585661281 0.0000000000000000 5 8 - 0.0025040980237170 0.0000000000000000 0.0006119532508351 0.0000000000000000 0.0017406728581190 0.0000000000000000 - -0.0023164619816241 0.0000000000000000 0.0011510144726812 0.0000000000000000 -0.0039561444256922 0.0000000000000000 - -0.0038518265447295 0.0000000000000000 0.0004056725610968 0.0000000000000000 0.0031229275970259 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 0.0006119532508360 0.0000000000000000 0.0017406728581048 0.0000000000000000 + -0.0023164619816242 0.0000000000000000 0.0011510144726821 0.0000000000000000 -0.0039561444256822 0.0000000000000000 + -0.0038518265447300 0.0000000000000000 0.0004056725610963 0.0000000000000000 0.0031229275970200 0.0000000000000000 5 9 - -0.0004154624427383 0.0000000000000000 0.0127928624961753 0.0000000000000000 -0.0050585024151234 0.0000000000000000 - 0.0012439381262114 0.0000000000000000 -0.0007025897616783 0.0000000000000000 0.0031456369018466 0.0000000000000000 - -0.0022873936225497 0.0000000000000000 0.0006118410528855 0.0000000000000000 -0.0037626256179466 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0127928624961687 0.0000000000000000 -0.0050585024151197 0.0000000000000000 + 0.0012439381262113 0.0000000000000000 -0.0007025897616739 0.0000000000000000 0.0031456369018453 0.0000000000000000 + -0.0022873936225499 0.0000000000000000 0.0006118410528823 0.0000000000000000 -0.0037626256179460 0.0000000000000000 5 10 - 0.0005529569781352 0.0000000000000000 -0.0004060563613216 0.0000000000000000 0.0028171359308520 0.0000000000000000 - 0.0006881224323728 0.0000000000000000 0.0017449768597111 0.0000000000000000 -0.0003308975272969 0.0000000000000000 - -0.0009938270035008 0.0000000000000000 -0.0014852637978326 0.0000000000000000 0.0019808748951336 0.0000000000000000 + 0.0005529569781392 0.0000000000000000 -0.0004060563613284 0.0000000000000000 0.0028171359308478 0.0000000000000000 + 0.0006881224323695 0.0000000000000000 0.0017449768597154 0.0000000000000000 -0.0003308975272938 0.0000000000000000 + -0.0009938270034988 0.0000000000000000 -0.0014852637978357 0.0000000000000000 0.0019808748951321 0.0000000000000000 5 11 - -0.0001947154534005 0.0000000000000000 0.0001055444019297 0.0000000000000000 -0.0008285855530559 0.0000000000000000 - 0.0001055444019295 0.0000000000000000 -0.0022624521874613 0.0000000000000000 -0.0020902638812461 0.0000000000000000 - 0.0008285855530556 0.0000000000000000 0.0020902638812462 0.0000000000000000 0.0008479800149218 0.0000000000000000 + -0.0001947154534063 0.0000000000000000 0.0001055444019334 0.0000000000000000 -0.0008285855530534 0.0000000000000000 + 0.0001055444019335 0.0000000000000000 -0.0022624521874642 0.0000000000000000 -0.0020902638812480 0.0000000000000000 + 0.0008285855530534 0.0000000000000000 0.0020902638812482 0.0000000000000000 0.0008479800149230 0.0000000000000000 5 12 - -0.0020226399972430 0.0000000000000000 -0.0002383182140806 0.0000000000000000 -0.0001011648438952 0.0000000000000000 - 0.0002383182140800 0.0000000000000000 0.0000601515309646 0.0000000000000000 -0.0001507007232528 0.0000000000000000 - -0.0001011648438945 0.0000000000000000 0.0001507007232529 0.0000000000000000 -0.0022331838997255 0.0000000000000000 + -0.0020226399972399 0.0000000000000000 -0.0002383182140785 0.0000000000000000 -0.0001011648438935 0.0000000000000000 + 0.0002383182140784 0.0000000000000000 0.0000601515309633 0.0000000000000000 -0.0001507007232538 0.0000000000000000 + -0.0001011648438937 0.0000000000000000 0.0001507007232539 0.0000000000000000 -0.0022331838997249 0.0000000000000000 6 1 - 0.0079739154089256 0.0000000000000000 0.0100652146645725 0.0000000000000000 0.0036706343437412 0.0000000000000000 - 0.0168418597307711 0.0000000000000000 -0.0099918936929108 0.0000000000000000 -0.0005259246072760 0.0000000000000000 - -0.0106690755761881 0.0000000000000000 -0.0069122209429007 0.0000000000000000 -0.0156150191112127 0.0000000000000000 + 0.0079739154089276 0.0000000000000000 0.0100652146645703 0.0000000000000000 0.0036706343437270 0.0000000000000000 + 0.0168418597307724 0.0000000000000000 -0.0099918936929136 0.0000000000000000 -0.0005259246072848 0.0000000000000000 + -0.0106690755761890 0.0000000000000000 -0.0069122209428989 0.0000000000000000 -0.0156150191112072 0.0000000000000000 6 2 - 0.0053960771921624 0.0000000000000000 0.0041883714492625 0.0000000000000000 -0.0052382113260854 0.0000000000000000 - 0.0027777266316753 0.0000000000000000 0.0037383917967304 0.0000000000000000 0.0007249474944347 0.0000000000000000 - 0.0010754919735291 0.0000000000000000 -0.0001605357525135 0.0000000000000000 -0.0008206821613051 0.0000000000000000 + 0.0053960771921629 0.0000000000000000 0.0041883714492619 0.0000000000000000 -0.0052382113260725 0.0000000000000000 + 0.0027777266316758 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0007249474944436 0.0000000000000000 + 0.0010754919735288 0.0000000000000000 -0.0001605357525140 0.0000000000000000 -0.0008206821613105 0.0000000000000000 6 3 - 0.0043670482201902 0.0000000000000000 -0.0073649825438664 0.0000000000000000 -0.0069798143243292 0.0000000000000000 - -0.0062527546419650 0.0000000000000000 -0.0050060184798397 0.0000000000000000 -0.0003322634792054 0.0000000000000000 - -0.0032245610064164 0.0000000000000000 0.0046134194019418 0.0000000000000000 0.0072531804468961 0.0000000000000000 + 0.0043670482201906 0.0000000000000000 -0.0073649825438657 0.0000000000000000 -0.0069798143243287 0.0000000000000000 + -0.0062527546419649 0.0000000000000000 -0.0050060184798391 0.0000000000000000 -0.0003322634792062 0.0000000000000000 + -0.0032245610064164 0.0000000000000000 0.0046134194019415 0.0000000000000000 0.0072531804468966 0.0000000000000000 6 4 - -0.2042620382020953 0.0000000000000000 -0.0961493426419393 0.0000000000000000 0.0680988033808392 0.0000000000000000 - -0.1111612914471574 0.0000000000000000 -0.1150790588758474 0.0000000000000000 0.0633030715249466 0.0000000000000000 - 0.0678004081048672 0.0000000000000000 0.0626077946132176 0.0000000000000000 -0.0673384314526808 0.0000000000000000 + -0.2042620382021122 0.0000000000000000 -0.0961493426419451 0.0000000000000000 0.0680988033808430 0.0000000000000000 + -0.1111612914471684 0.0000000000000000 -0.1150790588758535 0.0000000000000000 0.0633030715249508 0.0000000000000000 + 0.0678004081048743 0.0000000000000000 0.0626077946132218 0.0000000000000000 -0.0673384314526835 0.0000000000000000 6 5 - -0.0299583471230477 0.0000000000000000 -0.0025306649736009 0.0000000000000000 -0.0001964280885709 0.0000000000000000 - 0.0025306649736007 0.0000000000000000 0.0189330240079854 0.0000000000000000 -0.0130002466230957 0.0000000000000000 - 0.0001964280885715 0.0000000000000000 -0.0130002466230954 0.0000000000000000 0.0113735279572496 0.0000000000000000 + -0.0299583471230443 0.0000000000000000 -0.0025306649736033 0.0000000000000000 -0.0001964280885694 0.0000000000000000 + 0.0025306649736035 0.0000000000000000 0.0189330240079849 0.0000000000000000 -0.0130002466230956 0.0000000000000000 + 0.0001964280885695 0.0000000000000000 -0.0130002466230954 0.0000000000000000 0.0113735279572496 0.0000000000000000 6 6 - 0.2174594979186168 0.0000000000000000 0.0954682304260131 0.0000000000000000 -0.0600636707989507 0.0000000000000000 - 0.0954682304260131 0.0000000000000000 0.1104252604741363 0.0000000000000000 -0.0503426131734374 0.0000000000000000 - -0.0600636707989507 0.0000000000000000 -0.0503426131734374 0.0000000000000000 0.0677190190410512 0.0000000000000000 + 0.2174594979186291 0.0000000000000000 0.0954682304260206 0.0000000000000000 -0.0600636707989554 0.0000000000000000 + 0.0954682304260207 0.0000000000000000 0.1104252604741425 0.0000000000000000 -0.0503426131734413 0.0000000000000000 + -0.0600636707989554 0.0000000000000000 -0.0503426131734413 0.0000000000000000 0.0677190190410534 0.0000000000000000 6 7 - -0.0014003952261876 0.0000000000000000 0.0091891495399560 0.0000000000000000 -0.0007217572183881 0.0000000000000000 - -0.0002449744821631 0.0000000000000000 -0.0030108060126753 0.0000000000000000 0.0035553985811555 0.0000000000000000 - -0.0015206472447118 0.0000000000000000 0.0014211831836384 0.0000000000000000 -0.0025275585661340 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 0.0091891495399289 0.0000000000000000 -0.0007217572183899 0.0000000000000000 + -0.0002449744821626 0.0000000000000000 -0.0030108060126935 0.0000000000000000 0.0035553985811520 0.0000000000000000 + -0.0015206472447122 0.0000000000000000 0.0014211831836500 0.0000000000000000 -0.0025275585661319 0.0000000000000000 6 8 - 0.0025040980237164 0.0000000000000000 -0.0006119532508362 0.0000000000000000 -0.0017406728581238 0.0000000000000000 - 0.0023164619816234 0.0000000000000000 0.0011510144726806 0.0000000000000000 -0.0039561444256951 0.0000000000000000 - 0.0038518265447295 0.0000000000000000 0.0004056725610968 0.0000000000000000 0.0031229275970278 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 -0.0006119532508360 0.0000000000000000 -0.0017406728581117 0.0000000000000000 + 0.0023164619816236 0.0000000000000000 0.0011510144726815 0.0000000000000000 -0.0039561444256864 0.0000000000000000 + 0.0038518265447292 0.0000000000000000 0.0004056725610959 0.0000000000000000 0.0031229275970225 0.0000000000000000 6 9 - -0.0004154624427383 0.0000000000000000 -0.0127928624961926 0.0000000000000000 0.0050585024151280 0.0000000000000000 - -0.0012439381262112 0.0000000000000000 -0.0007025897616889 0.0000000000000000 0.0031456369018494 0.0000000000000000 - 0.0022873936225502 0.0000000000000000 0.0006118410528921 0.0000000000000000 -0.0037626256179481 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0127928624961664 0.0000000000000000 0.0050585024151189 0.0000000000000000 + -0.0012439381262112 0.0000000000000000 -0.0007025897616722 0.0000000000000000 0.0031456369018453 0.0000000000000000 + 0.0022873936225501 0.0000000000000000 0.0006118410528815 0.0000000000000000 -0.0037626256179454 0.0000000000000000 6 10 - 0.0005529569781460 0.0000000000000000 0.0004060563613334 0.0000000000000000 -0.0028171359308443 0.0000000000000000 - -0.0006881224323642 0.0000000000000000 0.0017449768597187 0.0000000000000000 -0.0003308975272922 0.0000000000000000 - 0.0009938270034957 0.0000000000000000 -0.0014852637978367 0.0000000000000000 0.0019808748951298 0.0000000000000000 + 0.0005529569781417 0.0000000000000000 0.0004060563613285 0.0000000000000000 -0.0028171359308475 0.0000000000000000 + -0.0006881224323676 0.0000000000000000 0.0017449768597156 0.0000000000000000 -0.0003308975272941 0.0000000000000000 + 0.0009938270034978 0.0000000000000000 -0.0014852637978352 0.0000000000000000 0.0019808748951311 0.0000000000000000 6 11 - -0.0020226399972392 0.0000000000000000 0.0002383182140778 0.0000000000000000 0.0001011648438933 0.0000000000000000 - -0.0002383182140784 0.0000000000000000 0.0000601515309634 0.0000000000000000 -0.0001507007232540 0.0000000000000000 - 0.0001011648438934 0.0000000000000000 0.0001507007232534 0.0000000000000000 -0.0022331838997250 0.0000000000000000 + -0.0020226399972403 0.0000000000000000 0.0002383182140788 0.0000000000000000 0.0001011648438937 0.0000000000000000 + -0.0002383182140788 0.0000000000000000 0.0000601515309635 0.0000000000000000 -0.0001507007232539 0.0000000000000000 + 0.0001011648438940 0.0000000000000000 0.0001507007232536 0.0000000000000000 -0.0022331838997249 0.0000000000000000 6 12 - -0.0001947154534137 0.0000000000000000 -0.0001055444019383 0.0000000000000000 0.0008285855530508 0.0000000000000000 - -0.0001055444019386 0.0000000000000000 -0.0022624521874673 0.0000000000000000 -0.0020902638812492 0.0000000000000000 - -0.0008285855530501 0.0000000000000000 0.0020902638812493 0.0000000000000000 0.0008479800149251 0.0000000000000000 + -0.0001947154534082 0.0000000000000000 -0.0001055444019347 0.0000000000000000 0.0008285855530525 0.0000000000000000 + -0.0001055444019346 0.0000000000000000 -0.0022624521874654 0.0000000000000000 -0.0020902638812481 0.0000000000000000 + -0.0008285855530527 0.0000000000000000 0.0020902638812481 0.0000000000000000 0.0008479800149244 0.0000000000000000 7 1 - 0.0015706027157737 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000013 0.0000000000000000 0.0058994142114986 0.0000000000000000 -0.0129555088579327 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0129555088579418 0.0000000000000000 -0.0025061456783197 0.0000000000000000 + 0.0015706027157741 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0058994142115015 0.0000000000000000 -0.0129555088579013 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0129555088579829 0.0000000000000000 -0.0025061456783163 0.0000000000000000 7 2 - -0.0018152750012295 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 0.0012476417535550 0.0000000000000000 0.0078942408875715 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0002039213450275 0.0000000000000000 0.0145769254785630 0.0000000000000000 + -0.0018152750012303 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0012476417535543 0.0000000000000000 0.0078942408875419 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0002039213450258 0.0000000000000000 0.0145769254785730 0.0000000000000000 7 3 - -0.0016399265604474 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0035091911501681 0.0000000000000000 0.0021722504817079 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0074822204968739 0.0000000000000000 0.0003426041600652 0.0000000000000000 + -0.0016399265604473 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0035091911501668 0.0000000000000000 0.0021722504817096 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0074822204969110 0.0000000000000000 0.0003426041600554 0.0000000000000000 7 4 - 0.0078082955673498 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000234 0.0000000000000000 0.0119074076296463 0.0000000000000000 0.0034942738523667 0.0000000000000000 - 0.0000000000000023 0.0000000000000000 -0.0044778895271283 0.0000000000000000 -0.0367974389514158 0.0000000000000000 + 0.0078082955673491 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000043 0.0000000000000000 0.0119074076296680 0.0000000000000000 0.0034942738523488 0.0000000000000000 + -0.0000000000000099 0.0000000000000000 -0.0044778895271169 0.0000000000000000 -0.0367974389514246 0.0000000000000000 7 5 - -0.0014003952261870 0.0000000000000000 0.0002449744821628 0.0000000000000000 0.0015206472447120 0.0000000000000000 - -0.0091891495399357 0.0000000000000000 -0.0030108060126879 0.0000000000000000 0.0014211831836455 0.0000000000000000 - 0.0007217572183866 0.0000000000000000 0.0035553985811564 0.0000000000000000 -0.0025275585661338 0.0000000000000000 + -0.0014003952261863 0.0000000000000000 0.0002449744821628 0.0000000000000000 0.0015206472447127 0.0000000000000000 + -0.0091891495399323 0.0000000000000000 -0.0030108060126917 0.0000000000000000 0.0014211831836480 0.0000000000000000 + 0.0007217572183987 0.0000000000000000 0.0035553985811469 0.0000000000000000 -0.0025275585661281 0.0000000000000000 7 6 - -0.0014003952261876 0.0000000000000000 -0.0002449744821631 0.0000000000000000 -0.0015206472447118 0.0000000000000000 - 0.0091891495399560 0.0000000000000000 -0.0030108060126753 0.0000000000000000 0.0014211831836384 0.0000000000000000 - -0.0007217572183881 0.0000000000000000 0.0035553985811555 0.0000000000000000 -0.0025275585661340 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 -0.0002449744821626 0.0000000000000000 -0.0015206472447122 0.0000000000000000 + 0.0091891495399289 0.0000000000000000 -0.0030108060126935 0.0000000000000000 0.0014211831836500 0.0000000000000000 + -0.0007217572183899 0.0000000000000000 0.0035553985811520 0.0000000000000000 -0.0025275585661319 0.0000000000000000 7 7 - 0.0723775009917355 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 0.3831399905936550 0.0000000000000000 -0.0800072256509440 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0800072256509440 0.0000000000000000 0.4293434337307544 0.0000000000000000 + 0.0723775009917343 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.3831399905936640 0.0000000000000000 -0.0800072256509050 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0800072256509050 0.0000000000000000 0.4293434337307372 0.0000000000000000 7 8 - -0.0251057439413771 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 -0.0569567699834669 0.0000000000000000 0.0058150573711849 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 -0.0222771411146692 0.0000000000000000 -0.2988598772525934 0.0000000000000000 + -0.0251057439413776 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0569567699834670 0.0000000000000000 0.0058150573711444 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0222771411146711 0.0000000000000000 -0.2988598772525884 0.0000000000000000 7 9 - -0.0289738345959180 0.0000000000000000 -0.0000000000000011 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.2820802915433018 0.0000000000000000 0.0527306161696217 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0884826303559400 0.0000000000000000 -0.0739447334126196 0.0000000000000000 + -0.0289738345959176 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.2820802915433103 0.0000000000000000 0.0527306161696246 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0884826303559051 0.0000000000000000 -0.0739447334126106 0.0000000000000000 7 10 - -0.0373686571560774 0.0000000000000000 0.0000000000000006 0.0000000000000000 0.0000000000000004 0.0000000000000000 - -0.0000000000000240 0.0000000000000000 -0.0336428001201925 0.0000000000000000 0.0041894809945729 0.0000000000000000 - 0.0000000000000096 0.0000000000000000 0.0044397818519502 0.0000000000000000 0.0041303780996480 0.0000000000000000 + -0.0373686571560746 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000006 0.0000000000000000 + 0.0000000000000018 0.0000000000000000 -0.0336428001201986 0.0000000000000000 0.0041894809945660 0.0000000000000000 + -0.0000000000000036 0.0000000000000000 0.0044397818519684 0.0000000000000000 0.0041303780996630 0.0000000000000000 7 11 - 0.0079739154089295 0.0000000000000000 -0.0168418597307733 0.0000000000000000 -0.0106690755761892 0.0000000000000000 - -0.0100652146645641 0.0000000000000000 -0.0099918936929178 0.0000000000000000 0.0069122209428965 0.0000000000000000 - 0.0036706343437350 0.0000000000000000 0.0005259246072787 0.0000000000000000 -0.0156150191112114 0.0000000000000000 + 0.0079739154089283 0.0000000000000000 -0.0168418597307721 0.0000000000000000 -0.0106690755761892 0.0000000000000000 + -0.0100652146645782 0.0000000000000000 -0.0099918936929071 0.0000000000000000 0.0069122209429032 0.0000000000000000 + 0.0036706343437568 0.0000000000000000 0.0005259246072647 0.0000000000000000 -0.0156150191112196 0.0000000000000000 7 12 - 0.0079739154089283 0.0000000000000000 0.0168418597307727 0.0000000000000000 0.0106690755761890 0.0000000000000000 - 0.0100652146645851 0.0000000000000000 -0.0099918936929047 0.0000000000000000 0.0069122209429044 0.0000000000000000 - -0.0036706343437432 0.0000000000000000 0.0005259246072730 0.0000000000000000 -0.0156150191112145 0.0000000000000000 + 0.0079739154089275 0.0000000000000000 0.0168418597307719 0.0000000000000000 0.0106690755761886 0.0000000000000000 + 0.0100652146645769 0.0000000000000000 -0.0099918936929076 0.0000000000000000 0.0069122209429026 0.0000000000000000 + -0.0036706343437536 0.0000000000000000 0.0005259246072664 0.0000000000000000 -0.0156150191112183 0.0000000000000000 8 1 - -0.0018152750012302 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0012476417535534 0.0000000000000000 -0.0002039213450287 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 -0.0078942408875820 0.0000000000000000 0.0145769254785594 0.0000000000000000 + -0.0018152750012302 0.0000000000000000 0.0000000000000006 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0012476417535537 0.0000000000000000 -0.0002039213450301 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 -0.0078942408876209 0.0000000000000000 0.0145769254785470 0.0000000000000000 8 2 - 0.0036353210827943 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0001181663659069 0.0000000000000000 0.0026161584162164 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0026161584162162 0.0000000000000000 -0.0221544638345910 0.0000000000000000 + 0.0036353210827945 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0001181663659067 0.0000000000000000 0.0026161584162183 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0026161584162145 0.0000000000000000 -0.0221544638345920 0.0000000000000000 8 3 - -0.0006990068039682 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0007453998223729 0.0000000000000000 -0.0020862975258866 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0005005588825975 0.0000000000000000 -0.0034474484778374 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0007453998223720 0.0000000000000000 -0.0020862975258870 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0005005588825623 0.0000000000000000 -0.0034474484778282 0.0000000000000000 8 4 - -0.0158629633765101 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000012 0.0000000000000000 -0.0142572303934406 0.0000000000000000 -0.0025026894102787 0.0000000000000000 - 0.0000000000000052 0.0000000000000000 0.0110402408679694 0.0000000000000000 0.0060798140623915 0.0000000000000000 + -0.0158629633765105 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000007 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0142572303934424 0.0000000000000000 -0.0025026894102775 0.0000000000000000 + 0.0000000000000077 0.0000000000000000 0.0110402408679523 0.0000000000000000 0.0060798140624046 0.0000000000000000 8 5 - 0.0025040980237170 0.0000000000000000 -0.0023164619816241 0.0000000000000000 -0.0038518265447295 0.0000000000000000 - 0.0006119532508351 0.0000000000000000 0.0011510144726812 0.0000000000000000 0.0004056725610968 0.0000000000000000 - 0.0017406728581190 0.0000000000000000 -0.0039561444256922 0.0000000000000000 0.0031229275970259 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 -0.0023164619816242 0.0000000000000000 -0.0038518265447300 0.0000000000000000 + 0.0006119532508360 0.0000000000000000 0.0011510144726821 0.0000000000000000 0.0004056725610963 0.0000000000000000 + 0.0017406728581048 0.0000000000000000 -0.0039561444256822 0.0000000000000000 0.0031229275970200 0.0000000000000000 8 6 - 0.0025040980237164 0.0000000000000000 0.0023164619816234 0.0000000000000000 0.0038518265447295 0.0000000000000000 - -0.0006119532508362 0.0000000000000000 0.0011510144726806 0.0000000000000000 0.0004056725610968 0.0000000000000000 - -0.0017406728581238 0.0000000000000000 -0.0039561444256951 0.0000000000000000 0.0031229275970278 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 0.0023164619816236 0.0000000000000000 0.0038518265447292 0.0000000000000000 + -0.0006119532508360 0.0000000000000000 0.0011510144726815 0.0000000000000000 0.0004056725610959 0.0000000000000000 + -0.0017406728581117 0.0000000000000000 -0.0039561444256864 0.0000000000000000 0.0031229275970225 0.0000000000000000 8 7 - -0.0251057439413771 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000005 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0569567699834669 0.0000000000000000 -0.0222771411146692 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0058150573711849 0.0000000000000000 -0.2988598772525934 0.0000000000000000 + -0.0251057439413776 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0569567699834670 0.0000000000000000 -0.0222771411146711 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0058150573711444 0.0000000000000000 -0.2988598772525884 0.0000000000000000 8 8 - 0.0352255604087111 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0577498980966753 0.0000000000000000 -0.0004642893512922 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0004642893512922 0.0000000000000000 0.2960907478396965 0.0000000000000000 + 0.0352255604087114 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0577498980966752 0.0000000000000000 -0.0004642893512902 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0004642893512902 0.0000000000000000 0.2960907478397038 0.0000000000000000 8 9 - 0.0037861455182856 0.0000000000000000 -0.0000000000000007 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0103751426308777 0.0000000000000000 0.0282119025677895 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0049287602283615 0.0000000000000000 -0.0033792838522503 0.0000000000000000 + 0.0037861455182859 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0103751426308782 0.0000000000000000 0.0282119025677896 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0049287602283988 0.0000000000000000 -0.0033792838522603 0.0000000000000000 8 10 - -0.0149643881777200 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 -0.0085647327830328 0.0000000000000000 -0.0044261389355788 0.0000000000000000 - -0.0000000000000021 0.0000000000000000 -0.0009466269409981 0.0000000000000000 0.0064890897648002 0.0000000000000000 + -0.0149643881777196 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000005 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0085647327830319 0.0000000000000000 -0.0044261389355780 0.0000000000000000 + 0.0000000000000029 0.0000000000000000 -0.0009466269410164 0.0000000000000000 0.0064890897647860 0.0000000000000000 8 11 - 0.0053960771921638 0.0000000000000000 -0.0027777266316769 0.0000000000000000 0.0010754919735291 0.0000000000000000 - -0.0041883714492624 0.0000000000000000 0.0037383917967316 0.0000000000000000 0.0001605357525141 0.0000000000000000 - -0.0052382113260821 0.0000000000000000 -0.0007249474944365 0.0000000000000000 -0.0008206821613061 0.0000000000000000 + 0.0053960771921632 0.0000000000000000 -0.0027777266316766 0.0000000000000000 0.0010754919735294 0.0000000000000000 + -0.0041883714492626 0.0000000000000000 0.0037383917967306 0.0000000000000000 0.0001605357525135 0.0000000000000000 + -0.0052382113260983 0.0000000000000000 -0.0007249474944253 0.0000000000000000 -0.0008206821612994 0.0000000000000000 8 12 - 0.0053960771921631 0.0000000000000000 0.0027777266316761 0.0000000000000000 -0.0010754919735288 0.0000000000000000 - 0.0041883714492619 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0001605357525140 0.0000000000000000 - 0.0052382113260839 0.0000000000000000 -0.0007249474944354 0.0000000000000000 -0.0008206821613054 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 0.0027777266316760 0.0000000000000000 -0.0010754919735287 0.0000000000000000 + 0.0041883714492625 0.0000000000000000 0.0037383917967305 0.0000000000000000 0.0001605357525135 0.0000000000000000 + 0.0052382113260957 0.0000000000000000 -0.0007249474944268 0.0000000000000000 -0.0008206821613003 0.0000000000000000 9 1 - -0.0016399265604469 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - -0.0000000000000010 0.0000000000000000 -0.0035091911501687 0.0000000000000000 0.0074822204968633 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0021722504817093 0.0000000000000000 0.0003426041600677 0.0000000000000000 + -0.0016399265604471 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0035091911501727 0.0000000000000000 0.0074822204968365 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0021722504817068 0.0000000000000000 0.0003426041600751 0.0000000000000000 9 2 - -0.0006990068039689 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 0.0007453998223711 0.0000000000000000 0.0005005588826071 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0020862975258870 0.0000000000000000 -0.0034474484778407 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0007453998223720 0.0000000000000000 0.0005005588826329 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0020862975258871 0.0000000000000000 -0.0034474484778466 0.0000000000000000 9 3 - 0.0025844652016200 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0002706095090059 0.0000000000000000 -0.0025129031626718 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0025129031626737 0.0000000000000000 -0.0015754786010474 0.0000000000000000 + 0.0025844652016199 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0002706095090055 0.0000000000000000 -0.0025129031626731 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0025129031626719 0.0000000000000000 -0.0015754786010481 0.0000000000000000 9 4 - -0.0001599946965684 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000197 0.0000000000000000 0.0004054668963187 0.0000000000000000 -0.0101430343307523 0.0000000000000000 - -0.0000000000000052 0.0000000000000000 -0.0081775121522221 0.0000000000000000 0.0079899884223495 0.0000000000000000 + -0.0001599946965686 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000031 0.0000000000000000 0.0004054668962976 0.0000000000000000 -0.0101430343307356 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0081775121522166 0.0000000000000000 0.0079899884223450 0.0000000000000000 9 5 - -0.0004154624427383 0.0000000000000000 0.0012439381262114 0.0000000000000000 -0.0022873936225497 0.0000000000000000 - 0.0127928624961753 0.0000000000000000 -0.0007025897616783 0.0000000000000000 0.0006118410528855 0.0000000000000000 - -0.0050585024151234 0.0000000000000000 0.0031456369018466 0.0000000000000000 -0.0037626256179466 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0012439381262113 0.0000000000000000 -0.0022873936225499 0.0000000000000000 + 0.0127928624961687 0.0000000000000000 -0.0007025897616739 0.0000000000000000 0.0006118410528823 0.0000000000000000 + -0.0050585024151198 0.0000000000000000 0.0031456369018453 0.0000000000000000 -0.0037626256179460 0.0000000000000000 9 6 - -0.0004154624427383 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225502 0.0000000000000000 - -0.0127928624961926 0.0000000000000000 -0.0007025897616889 0.0000000000000000 0.0006118410528921 0.0000000000000000 - 0.0050585024151280 0.0000000000000000 0.0031456369018494 0.0000000000000000 -0.0037626256179481 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225501 0.0000000000000000 + -0.0127928624961664 0.0000000000000000 -0.0007025897616722 0.0000000000000000 0.0006118410528815 0.0000000000000000 + 0.0050585024151189 0.0000000000000000 0.0031456369018453 0.0000000000000000 -0.0037626256179454 0.0000000000000000 9 7 - -0.0289738345959180 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000011 0.0000000000000000 -0.2820802915433018 0.0000000000000000 0.0884826303559400 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0527306161696217 0.0000000000000000 -0.0739447334126196 0.0000000000000000 + -0.0289738345959175 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.2820802915433103 0.0000000000000000 0.0884826303559051 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0527306161696246 0.0000000000000000 -0.0739447334126106 0.0000000000000000 9 8 - 0.0037861455182856 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 0.0103751426308777 0.0000000000000000 0.0049287602283615 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0282119025677895 0.0000000000000000 -0.0033792838522503 0.0000000000000000 + 0.0037861455182859 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0103751426308782 0.0000000000000000 0.0049287602283988 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0282119025677896 0.0000000000000000 -0.0033792838522603 0.0000000000000000 9 9 - 0.0365782981378749 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.2729248902175013 0.0000000000000000 -0.0713458205553457 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0713458205553457 0.0000000000000000 0.0798291225288868 0.0000000000000000 + 0.0365782981378742 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.2729248902175101 0.0000000000000000 -0.0713458205553484 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0713458205553484 0.0000000000000000 0.0798291225288879 0.0000000000000000 9 10 - -0.0193793176120035 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000005 0.0000000000000000 - 0.0000000000000219 0.0000000000000000 0.0128264092257547 0.0000000000000000 -0.0093892601393086 0.0000000000000000 - -0.0000000000000062 0.0000000000000000 -0.0108019320579856 0.0000000000000000 -0.0127958810116073 0.0000000000000000 + -0.0193793176120032 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000012 0.0000000000000000 0.0128264092257570 0.0000000000000000 -0.0093892601393046 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0108019320579851 0.0000000000000000 -0.0127958810116074 0.0000000000000000 9 11 - 0.0043670482201907 0.0000000000000000 0.0062527546419651 0.0000000000000000 -0.0032245610064175 0.0000000000000000 - 0.0073649825438591 0.0000000000000000 -0.0050060184798352 0.0000000000000000 -0.0046134194019389 0.0000000000000000 - -0.0069798143243272 0.0000000000000000 0.0003322634792049 0.0000000000000000 0.0072531804468960 0.0000000000000000 + 0.0043670482201905 0.0000000000000000 0.0062527546419647 0.0000000000000000 -0.0032245610064169 0.0000000000000000 + 0.0073649825438708 0.0000000000000000 -0.0050060184798432 0.0000000000000000 -0.0046134194019439 0.0000000000000000 + -0.0069798143243308 0.0000000000000000 0.0003322634792064 0.0000000000000000 0.0072531804468968 0.0000000000000000 9 12 - 0.0043670482201907 0.0000000000000000 -0.0062527546419648 0.0000000000000000 0.0032245610064170 0.0000000000000000 - -0.0073649825438783 0.0000000000000000 -0.0050060184798469 0.0000000000000000 -0.0046134194019461 0.0000000000000000 - 0.0069798143243326 0.0000000000000000 0.0003322634792084 0.0000000000000000 0.0072531804468980 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 -0.0062527546419645 0.0000000000000000 0.0032245610064168 0.0000000000000000 + -0.0073649825438702 0.0000000000000000 -0.0050060184798427 0.0000000000000000 -0.0046134194019436 0.0000000000000000 + 0.0069798143243306 0.0000000000000000 0.0003322634792063 0.0000000000000000 0.0072531804468967 0.0000000000000000 10 1 - 0.0078082955673492 0.0000000000000000 -0.0000000000000095 0.0000000000000000 0.0000000000000029 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0119074076296581 0.0000000000000000 0.0044778895271369 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 -0.0034942738523537 0.0000000000000000 -0.0367974389514098 0.0000000000000000 + 0.0078082955673501 0.0000000000000000 -0.0000000000000058 0.0000000000000000 -0.0000000000000043 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0119074076296487 0.0000000000000000 0.0044778895271552 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0034942738523646 0.0000000000000000 -0.0367974389513981 0.0000000000000000 10 2 - -0.0158629633765113 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000058 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0142572303934425 0.0000000000000000 -0.0110402408679744 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0025026894102773 0.0000000000000000 0.0060798140623874 0.0000000000000000 + -0.0158629633765108 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000022 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0142572303934415 0.0000000000000000 -0.0110402408679930 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0025026894102782 0.0000000000000000 0.0060798140623739 0.0000000000000000 10 3 - -0.0001599946965682 0.0000000000000000 0.0000000000000070 0.0000000000000000 0.0000000000000011 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0004054668963083 0.0000000000000000 0.0081775121522211 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0101430343307429 0.0000000000000000 0.0079899884223479 0.0000000000000000 + -0.0001599946965685 0.0000000000000000 0.0000000000000053 0.0000000000000000 0.0000000000000016 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0004054668963170 0.0000000000000000 0.0081775121522225 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0101430343307528 0.0000000000000000 0.0079899884223502 0.0000000000000000 10 4 - 0.0039008143595910 0.0000000000000000 -0.0000000000000082 0.0000000000000000 0.0000000000000041 0.0000000000000000 - -0.0000000000000132 0.0000000000000000 -0.0008485805837892 0.0000000000000000 0.0030686652718371 0.0000000000000000 - -0.0000000000000089 0.0000000000000000 -0.0030686652718412 0.0000000000000000 -0.0082838582595772 0.0000000000000000 + 0.0039008143595918 0.0000000000000000 -0.0000000000000010 0.0000000000000000 0.0000000000000009 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0008485805837920 0.0000000000000000 0.0030686652718384 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0030686652718427 0.0000000000000000 -0.0082838582595766 0.0000000000000000 10 5 - 0.0005529569781352 0.0000000000000000 0.0006881224323728 0.0000000000000000 -0.0009938270035008 0.0000000000000000 - -0.0004060563613216 0.0000000000000000 0.0017449768597111 0.0000000000000000 -0.0014852637978326 0.0000000000000000 - 0.0028171359308520 0.0000000000000000 -0.0003308975272969 0.0000000000000000 0.0019808748951336 0.0000000000000000 + 0.0005529569781392 0.0000000000000000 0.0006881224323695 0.0000000000000000 -0.0009938270034988 0.0000000000000000 + -0.0004060563613284 0.0000000000000000 0.0017449768597154 0.0000000000000000 -0.0014852637978357 0.0000000000000000 + 0.0028171359308478 0.0000000000000000 -0.0003308975272938 0.0000000000000000 0.0019808748951321 0.0000000000000000 10 6 - 0.0005529569781460 0.0000000000000000 -0.0006881224323641 0.0000000000000000 0.0009938270034957 0.0000000000000000 - 0.0004060563613334 0.0000000000000000 0.0017449768597187 0.0000000000000000 -0.0014852637978367 0.0000000000000000 - -0.0028171359308443 0.0000000000000000 -0.0003308975272922 0.0000000000000000 0.0019808748951298 0.0000000000000000 + 0.0005529569781417 0.0000000000000000 -0.0006881224323676 0.0000000000000000 0.0009938270034978 0.0000000000000000 + 0.0004060563613285 0.0000000000000000 0.0017449768597156 0.0000000000000000 -0.0014852637978352 0.0000000000000000 + -0.0028171359308475 0.0000000000000000 -0.0003308975272941 0.0000000000000000 0.0019808748951311 0.0000000000000000 10 7 - -0.0373686571560774 0.0000000000000000 -0.0000000000000240 0.0000000000000000 0.0000000000000096 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 -0.0336428001201925 0.0000000000000000 0.0044397818519502 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0041894809945729 0.0000000000000000 0.0041303780996480 0.0000000000000000 + -0.0373686571560745 0.0000000000000000 0.0000000000000018 0.0000000000000000 -0.0000000000000036 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0336428001201986 0.0000000000000000 0.0044397818519684 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0041894809945660 0.0000000000000000 0.0041303780996630 0.0000000000000000 10 8 - -0.0149643881777200 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000021 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 -0.0085647327830328 0.0000000000000000 -0.0009466269409981 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0044261389355788 0.0000000000000000 0.0064890897648002 0.0000000000000000 + -0.0149643881777196 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000029 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0085647327830319 0.0000000000000000 -0.0009466269410164 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0044261389355780 0.0000000000000000 0.0064890897647860 0.0000000000000000 10 9 - -0.0193793176120035 0.0000000000000000 0.0000000000000219 0.0000000000000000 -0.0000000000000062 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0128264092257547 0.0000000000000000 -0.0108019320579856 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.0093892601393086 0.0000000000000000 -0.0127958810116073 0.0000000000000000 + -0.0193793176120032 0.0000000000000000 -0.0000000000000012 0.0000000000000000 0.0000000000000004 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0128264092257570 0.0000000000000000 -0.0108019320579851 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0093892601393046 0.0000000000000000 -0.0127958810116074 0.0000000000000000 10 10 - 0.4834443802760303 0.0000000000000000 -0.0000000000000084 0.0000000000000000 -0.0000000000000085 0.0000000000000000 - -0.0000000000000084 0.0000000000000000 0.2588422264936620 0.0000000000000000 0.1308110718530699 0.0000000000000000 - -0.0000000000000085 0.0000000000000000 0.1308110718530699 0.0000000000000000 0.1639030178691374 0.0000000000000000 + 0.4834443802760142 0.0000000000000000 -0.0000000000000015 0.0000000000000000 -0.0000000000000009 0.0000000000000000 + -0.0000000000000015 0.0000000000000000 0.2588422264936573 0.0000000000000000 0.1308110718530658 0.0000000000000000 + -0.0000000000000009 0.0000000000000000 0.1308110718530658 0.0000000000000000 0.1639030178691330 0.0000000000000000 10 11 - -0.2042620382021395 0.0000000000000000 0.1111612914471852 0.0000000000000000 0.0678004081048849 0.0000000000000000 - 0.0961493426419440 0.0000000000000000 -0.1150790588758555 0.0000000000000000 -0.0626077946132228 0.0000000000000000 - 0.0680988033808426 0.0000000000000000 -0.0633030715249513 0.0000000000000000 -0.0673384314526844 0.0000000000000000 + -0.2042620382021262 0.0000000000000000 0.1111612914471771 0.0000000000000000 0.0678004081048795 0.0000000000000000 + 0.0961493426419405 0.0000000000000000 -0.1150790588758511 0.0000000000000000 -0.0626077946132198 0.0000000000000000 + 0.0680988033808381 0.0000000000000000 -0.0633030715249469 0.0000000000000000 -0.0673384314526815 0.0000000000000000 10 12 - -0.2042620382021260 0.0000000000000000 -0.1111612914471765 0.0000000000000000 -0.0678004081048793 0.0000000000000000 - -0.0961493426419365 0.0000000000000000 -0.1150790588758506 0.0000000000000000 -0.0626077946132203 0.0000000000000000 - -0.0680988033808350 0.0000000000000000 -0.0633030715249474 0.0000000000000000 -0.0673384314526816 0.0000000000000000 + -0.2042620382021240 0.0000000000000000 -0.1111612914471754 0.0000000000000000 -0.0678004081048786 0.0000000000000000 + -0.0961493426419388 0.0000000000000000 -0.1150790588758495 0.0000000000000000 -0.0626077946132193 0.0000000000000000 + -0.0680988033808372 0.0000000000000000 -0.0633030715249469 0.0000000000000000 -0.0673384314526809 0.0000000000000000 11 1 - -0.0014003952261861 0.0000000000000000 -0.0091891495399317 0.0000000000000000 -0.0007217572183791 0.0000000000000000 - 0.0002449744821626 0.0000000000000000 -0.0030108060126926 0.0000000000000000 -0.0035553985811589 0.0000000000000000 - -0.0015206472447131 0.0000000000000000 -0.0014211831836486 0.0000000000000000 -0.0025275585661352 0.0000000000000000 + -0.0014003952261873 0.0000000000000000 -0.0091891495399408 0.0000000000000000 -0.0007217572183650 0.0000000000000000 + 0.0002449744821629 0.0000000000000000 -0.0030108060126852 0.0000000000000000 -0.0035553985811701 0.0000000000000000 + -0.0015206472447125 0.0000000000000000 -0.0014211831836439 0.0000000000000000 -0.0025275585661420 0.0000000000000000 11 2 - 0.0025040980237175 0.0000000000000000 0.0006119532508366 0.0000000000000000 -0.0017406728581228 0.0000000000000000 - -0.0023164619816248 0.0000000000000000 0.0011510144726826 0.0000000000000000 0.0039561444256946 0.0000000000000000 - 0.0038518265447299 0.0000000000000000 -0.0004056725610959 0.0000000000000000 0.0031229275970274 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 0.0006119532508363 0.0000000000000000 -0.0017406728581400 0.0000000000000000 + -0.0023164619816243 0.0000000000000000 0.0011510144726815 0.0000000000000000 0.0039561444257064 0.0000000000000000 + 0.0038518265447299 0.0000000000000000 -0.0004056725610964 0.0000000000000000 0.0031229275970346 0.0000000000000000 11 3 - -0.0004154624427384 0.0000000000000000 0.0127928624961699 0.0000000000000000 0.0050585024151198 0.0000000000000000 - 0.0012439381262115 0.0000000000000000 -0.0007025897616743 0.0000000000000000 -0.0031456369018469 0.0000000000000000 - 0.0022873936225502 0.0000000000000000 -0.0006118410528829 0.0000000000000000 -0.0037626256179469 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0127928624961786 0.0000000000000000 0.0050585024151230 0.0000000000000000 + 0.0012439381262117 0.0000000000000000 -0.0007025897616810 0.0000000000000000 -0.0031456369018478 0.0000000000000000 + 0.0022873936225500 0.0000000000000000 -0.0006118410528871 0.0000000000000000 -0.0037626256179474 0.0000000000000000 11 4 - 0.0005529569781313 0.0000000000000000 -0.0004060563613244 0.0000000000000000 -0.0028171359308505 0.0000000000000000 - 0.0006881224323749 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0003308975272967 0.0000000000000000 - 0.0009938270035023 0.0000000000000000 0.0014852637978335 0.0000000000000000 0.0019808748951335 0.0000000000000000 + 0.0005529569781391 0.0000000000000000 -0.0004060563613288 0.0000000000000000 -0.0028171359308498 0.0000000000000000 + 0.0006881224323696 0.0000000000000000 0.0017449768597158 0.0000000000000000 0.0003308975272952 0.0000000000000000 + 0.0009938270034990 0.0000000000000000 0.0014852637978359 0.0000000000000000 0.0019808748951325 0.0000000000000000 11 5 - -0.0001947154534004 0.0000000000000000 0.0001055444019295 0.0000000000000000 0.0008285855530556 0.0000000000000000 - 0.0001055444019297 0.0000000000000000 -0.0022624521874613 0.0000000000000000 0.0020902638812462 0.0000000000000000 - -0.0008285855530560 0.0000000000000000 -0.0020902638812461 0.0000000000000000 0.0008479800149218 0.0000000000000000 + -0.0001947154534063 0.0000000000000000 0.0001055444019335 0.0000000000000000 0.0008285855530534 0.0000000000000000 + 0.0001055444019334 0.0000000000000000 -0.0022624521874642 0.0000000000000000 0.0020902638812482 0.0000000000000000 + -0.0008285855530534 0.0000000000000000 -0.0020902638812480 0.0000000000000000 0.0008479800149230 0.0000000000000000 11 6 - -0.0020226399972392 0.0000000000000000 -0.0002383182140784 0.0000000000000000 0.0001011648438934 0.0000000000000000 - 0.0002383182140778 0.0000000000000000 0.0000601515309634 0.0000000000000000 0.0001507007232534 0.0000000000000000 - 0.0001011648438933 0.0000000000000000 -0.0001507007232540 0.0000000000000000 -0.0022331838997250 0.0000000000000000 + -0.0020226399972403 0.0000000000000000 -0.0002383182140788 0.0000000000000000 0.0001011648438940 0.0000000000000000 + 0.0002383182140788 0.0000000000000000 0.0000601515309635 0.0000000000000000 0.0001507007232536 0.0000000000000000 + 0.0001011648438937 0.0000000000000000 -0.0001507007232539 0.0000000000000000 -0.0022331838997249 0.0000000000000000 11 7 - 0.0079739154089295 0.0000000000000000 -0.0100652146645641 0.0000000000000000 0.0036706343437350 0.0000000000000000 - -0.0168418597307733 0.0000000000000000 -0.0099918936929178 0.0000000000000000 0.0005259246072787 0.0000000000000000 - -0.0106690755761892 0.0000000000000000 0.0069122209428964 0.0000000000000000 -0.0156150191112114 0.0000000000000000 + 0.0079739154089283 0.0000000000000000 -0.0100652146645782 0.0000000000000000 0.0036706343437568 0.0000000000000000 + -0.0168418597307721 0.0000000000000000 -0.0099918936929071 0.0000000000000000 0.0005259246072647 0.0000000000000000 + -0.0106690755761892 0.0000000000000000 0.0069122209429032 0.0000000000000000 -0.0156150191112196 0.0000000000000000 11 8 - 0.0053960771921638 0.0000000000000000 -0.0041883714492624 0.0000000000000000 -0.0052382113260821 0.0000000000000000 - -0.0027777266316769 0.0000000000000000 0.0037383917967316 0.0000000000000000 -0.0007249474944365 0.0000000000000000 - 0.0010754919735291 0.0000000000000000 0.0001605357525141 0.0000000000000000 -0.0008206821613061 0.0000000000000000 + 0.0053960771921632 0.0000000000000000 -0.0041883714492626 0.0000000000000000 -0.0052382113260983 0.0000000000000000 + -0.0027777266316766 0.0000000000000000 0.0037383917967306 0.0000000000000000 -0.0007249474944253 0.0000000000000000 + 0.0010754919735294 0.0000000000000000 0.0001605357525135 0.0000000000000000 -0.0008206821612994 0.0000000000000000 11 9 - 0.0043670482201907 0.0000000000000000 0.0073649825438591 0.0000000000000000 -0.0069798143243272 0.0000000000000000 - 0.0062527546419651 0.0000000000000000 -0.0050060184798352 0.0000000000000000 0.0003322634792049 0.0000000000000000 - -0.0032245610064175 0.0000000000000000 -0.0046134194019389 0.0000000000000000 0.0072531804468960 0.0000000000000000 + 0.0043670482201905 0.0000000000000000 0.0073649825438708 0.0000000000000000 -0.0069798143243308 0.0000000000000000 + 0.0062527546419647 0.0000000000000000 -0.0050060184798432 0.0000000000000000 0.0003322634792064 0.0000000000000000 + -0.0032245610064169 0.0000000000000000 -0.0046134194019439 0.0000000000000000 0.0072531804468968 0.0000000000000000 11 10 - -0.2042620382021395 0.0000000000000000 0.0961493426419440 0.0000000000000000 0.0680988033808426 0.0000000000000000 - 0.1111612914471852 0.0000000000000000 -0.1150790588758555 0.0000000000000000 -0.0633030715249513 0.0000000000000000 - 0.0678004081048849 0.0000000000000000 -0.0626077946132227 0.0000000000000000 -0.0673384314526844 0.0000000000000000 + -0.2042620382021262 0.0000000000000000 0.0961493426419405 0.0000000000000000 0.0680988033808381 0.0000000000000000 + 0.1111612914471771 0.0000000000000000 -0.1150790588758511 0.0000000000000000 -0.0633030715249469 0.0000000000000000 + 0.0678004081048795 0.0000000000000000 -0.0626077946132198 0.0000000000000000 -0.0673384314526815 0.0000000000000000 11 11 - 0.2174594979186433 0.0000000000000000 -0.0954682304260273 0.0000000000000000 -0.0600636707989595 0.0000000000000000 - -0.0954682304260273 0.0000000000000000 0.1104252604741487 0.0000000000000000 0.0503426131734442 0.0000000000000000 - -0.0600636707989595 0.0000000000000000 0.0503426131734442 0.0000000000000000 0.0677190190410563 0.0000000000000000 + 0.2174594979186324 0.0000000000000000 -0.0954682304260219 0.0000000000000000 -0.0600636707989565 0.0000000000000000 + -0.0954682304260219 0.0000000000000000 0.1104252604741438 0.0000000000000000 0.0503426131734414 0.0000000000000000 + -0.0600636707989565 0.0000000000000000 0.0503426131734414 0.0000000000000000 0.0677190190410544 0.0000000000000000 11 12 - -0.0299583471230341 0.0000000000000000 0.0025306649736114 0.0000000000000000 -0.0001964280885646 0.0000000000000000 - -0.0025306649736115 0.0000000000000000 0.0189330240079811 0.0000000000000000 0.0130002466230935 0.0000000000000000 - 0.0001964280885642 0.0000000000000000 0.0130002466230938 0.0000000000000000 0.0113735279572483 0.0000000000000000 + -0.0299583471230355 0.0000000000000000 0.0025306649736093 0.0000000000000000 -0.0001964280885660 0.0000000000000000 + -0.0025306649736094 0.0000000000000000 0.0189330240079814 0.0000000000000000 0.0130002466230933 0.0000000000000000 + 0.0001964280885659 0.0000000000000000 0.0130002466230935 0.0000000000000000 0.0113735279572482 0.0000000000000000 12 1 - -0.0014003952261879 0.0000000000000000 0.0091891495399399 0.0000000000000000 0.0007217572183766 0.0000000000000000 - -0.0002449744821634 0.0000000000000000 -0.0030108060126880 0.0000000000000000 -0.0035553985811604 0.0000000000000000 - 0.0015206472447121 0.0000000000000000 -0.0014211831836464 0.0000000000000000 -0.0025275585661368 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 0.0091891495399460 0.0000000000000000 0.0007217572183687 0.0000000000000000 + -0.0002449744821633 0.0000000000000000 -0.0030108060126819 0.0000000000000000 -0.0035553985811676 0.0000000000000000 + 0.0015206472447124 0.0000000000000000 -0.0014211831836424 0.0000000000000000 -0.0025275585661413 0.0000000000000000 12 2 - 0.0025040980237168 0.0000000000000000 -0.0006119532508375 0.0000000000000000 0.0017406728581278 0.0000000000000000 - 0.0023164619816240 0.0000000000000000 0.0011510144726821 0.0000000000000000 0.0039561444256975 0.0000000000000000 - -0.0038518265447296 0.0000000000000000 -0.0004056725610957 0.0000000000000000 0.0031229275970291 0.0000000000000000 + 0.0025040980237169 0.0000000000000000 -0.0006119532508367 0.0000000000000000 0.0017406728581383 0.0000000000000000 + 0.0023164619816238 0.0000000000000000 0.0011510144726812 0.0000000000000000 0.0039561444257052 0.0000000000000000 + -0.0038518265447294 0.0000000000000000 -0.0004056725610964 0.0000000000000000 0.0031229275970341 0.0000000000000000 12 3 - -0.0004154624427384 0.0000000000000000 -0.0127928624961760 0.0000000000000000 -0.0050585024151207 0.0000000000000000 - -0.0012439381262114 0.0000000000000000 -0.0007025897616779 0.0000000000000000 -0.0031456369018475 0.0000000000000000 - -0.0022873936225505 0.0000000000000000 -0.0006118410528851 0.0000000000000000 -0.0037626256179469 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0127928624961835 0.0000000000000000 -0.0050585024151244 0.0000000000000000 + -0.0012439381262110 0.0000000000000000 -0.0007025897616839 0.0000000000000000 -0.0031456369018485 0.0000000000000000 + -0.0022873936225507 0.0000000000000000 -0.0006118410528890 0.0000000000000000 -0.0037626256179478 0.0000000000000000 12 4 - 0.0005529569781507 0.0000000000000000 0.0004060563613315 0.0000000000000000 0.0028171359308470 0.0000000000000000 - -0.0006881224323619 0.0000000000000000 0.0017449768597169 0.0000000000000000 0.0003308975272944 0.0000000000000000 - -0.0009938270034943 0.0000000000000000 0.0014852637978357 0.0000000000000000 0.0019808748951313 0.0000000000000000 + 0.0005529569781400 0.0000000000000000 0.0004060563613293 0.0000000000000000 0.0028171359308487 0.0000000000000000 + -0.0006881224323686 0.0000000000000000 0.0017449768597167 0.0000000000000000 0.0003308975272945 0.0000000000000000 + -0.0009938270034983 0.0000000000000000 0.0014852637978358 0.0000000000000000 0.0019808748951313 0.0000000000000000 12 5 - -0.0020226399972430 0.0000000000000000 0.0002383182140800 0.0000000000000000 -0.0001011648438945 0.0000000000000000 - -0.0002383182140806 0.0000000000000000 0.0000601515309646 0.0000000000000000 0.0001507007232529 0.0000000000000000 - -0.0001011648438952 0.0000000000000000 -0.0001507007232528 0.0000000000000000 -0.0022331838997255 0.0000000000000000 + -0.0020226399972399 0.0000000000000000 0.0002383182140784 0.0000000000000000 -0.0001011648438937 0.0000000000000000 + -0.0002383182140785 0.0000000000000000 0.0000601515309633 0.0000000000000000 0.0001507007232539 0.0000000000000000 + -0.0001011648438935 0.0000000000000000 -0.0001507007232538 0.0000000000000000 -0.0022331838997249 0.0000000000000000 12 6 - -0.0001947154534137 0.0000000000000000 -0.0001055444019386 0.0000000000000000 -0.0008285855530501 0.0000000000000000 - -0.0001055444019383 0.0000000000000000 -0.0022624521874673 0.0000000000000000 0.0020902638812493 0.0000000000000000 - 0.0008285855530508 0.0000000000000000 -0.0020902638812492 0.0000000000000000 0.0008479800149251 0.0000000000000000 + -0.0001947154534082 0.0000000000000000 -0.0001055444019346 0.0000000000000000 -0.0008285855530527 0.0000000000000000 + -0.0001055444019347 0.0000000000000000 -0.0022624521874654 0.0000000000000000 0.0020902638812481 0.0000000000000000 + 0.0008285855530525 0.0000000000000000 -0.0020902638812481 0.0000000000000000 0.0008479800149244 0.0000000000000000 12 7 - 0.0079739154089283 0.0000000000000000 0.0100652146645851 0.0000000000000000 -0.0036706343437432 0.0000000000000000 - 0.0168418597307727 0.0000000000000000 -0.0099918936929047 0.0000000000000000 0.0005259246072730 0.0000000000000000 - 0.0106690755761890 0.0000000000000000 0.0069122209429044 0.0000000000000000 -0.0156150191112145 0.0000000000000000 + 0.0079739154089275 0.0000000000000000 0.0100652146645769 0.0000000000000000 -0.0036706343437536 0.0000000000000000 + 0.0168418597307719 0.0000000000000000 -0.0099918936929076 0.0000000000000000 0.0005259246072664 0.0000000000000000 + 0.0106690755761886 0.0000000000000000 0.0069122209429026 0.0000000000000000 -0.0156150191112183 0.0000000000000000 12 8 - 0.0053960771921631 0.0000000000000000 0.0041883714492619 0.0000000000000000 0.0052382113260839 0.0000000000000000 - 0.0027777266316761 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0007249474944354 0.0000000000000000 - -0.0010754919735288 0.0000000000000000 0.0001605357525140 0.0000000000000000 -0.0008206821613054 0.0000000000000000 + 0.0053960771921631 0.0000000000000000 0.0041883714492625 0.0000000000000000 0.0052382113260957 0.0000000000000000 + 0.0027777266316760 0.0000000000000000 0.0037383917967305 0.0000000000000000 -0.0007249474944268 0.0000000000000000 + -0.0010754919735287 0.0000000000000000 0.0001605357525135 0.0000000000000000 -0.0008206821613003 0.0000000000000000 12 9 - 0.0043670482201907 0.0000000000000000 -0.0073649825438783 0.0000000000000000 0.0069798143243326 0.0000000000000000 - -0.0062527546419648 0.0000000000000000 -0.0050060184798469 0.0000000000000000 0.0003322634792084 0.0000000000000000 - 0.0032245610064170 0.0000000000000000 -0.0046134194019461 0.0000000000000000 0.0072531804468980 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 -0.0073649825438702 0.0000000000000000 0.0069798143243306 0.0000000000000000 + -0.0062527546419645 0.0000000000000000 -0.0050060184798427 0.0000000000000000 0.0003322634792063 0.0000000000000000 + 0.0032245610064168 0.0000000000000000 -0.0046134194019436 0.0000000000000000 0.0072531804468967 0.0000000000000000 12 10 - -0.2042620382021260 0.0000000000000000 -0.0961493426419365 0.0000000000000000 -0.0680988033808350 0.0000000000000000 - -0.1111612914471765 0.0000000000000000 -0.1150790588758506 0.0000000000000000 -0.0633030715249474 0.0000000000000000 - -0.0678004081048794 0.0000000000000000 -0.0626077946132203 0.0000000000000000 -0.0673384314526816 0.0000000000000000 + -0.2042620382021240 0.0000000000000000 -0.0961493426419389 0.0000000000000000 -0.0680988033808372 0.0000000000000000 + -0.1111612914471754 0.0000000000000000 -0.1150790588758495 0.0000000000000000 -0.0633030715249469 0.0000000000000000 + -0.0678004081048786 0.0000000000000000 -0.0626077946132193 0.0000000000000000 -0.0673384314526809 0.0000000000000000 12 11 - -0.0299583471230341 0.0000000000000000 -0.0025306649736115 0.0000000000000000 0.0001964280885642 0.0000000000000000 - 0.0025306649736114 0.0000000000000000 0.0189330240079811 0.0000000000000000 0.0130002466230938 0.0000000000000000 - -0.0001964280885646 0.0000000000000000 0.0130002466230935 0.0000000000000000 0.0113735279572483 0.0000000000000000 + -0.0299583471230356 0.0000000000000000 -0.0025306649736094 0.0000000000000000 0.0001964280885659 0.0000000000000000 + 0.0025306649736093 0.0000000000000000 0.0189330240079814 0.0000000000000000 0.0130002466230935 0.0000000000000000 + -0.0001964280885660 0.0000000000000000 0.0130002466230933 0.0000000000000000 0.0113735279572482 0.0000000000000000 12 12 - 0.2174594979186313 0.0000000000000000 0.0954682304260197 0.0000000000000000 0.0600636707989549 0.0000000000000000 - 0.0954682304260198 0.0000000000000000 0.1104252604741433 0.0000000000000000 0.0503426131734418 0.0000000000000000 - 0.0600636707989550 0.0000000000000000 0.0503426131734418 0.0000000000000000 0.0677190190410545 0.0000000000000000 + 0.2174594979186301 0.0000000000000000 0.0954682304260204 0.0000000000000000 0.0600636707989554 0.0000000000000000 + 0.0954682304260205 0.0000000000000000 0.1104252604741423 0.0000000000000000 0.0503426131734412 0.0000000000000000 + 0.0600636707989554 0.0000000000000000 0.0503426131734412 0.0000000000000000 0.0677190190410534 0.0000000000000000 Diagonalizing the dynamical matrix q = ( 0.000000000000 0.000000000000 0.000000000000 ) *************************************************************************** - freq ( 1) = -0.00000056 [THz] = -0.00001880 [cm-1] -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) -( 0.288675 0.000000 0.000004 0.000000 0.000003 0.000000 ) - freq ( 2) = -0.00000049 [THz] = -0.00001648 [cm-1] -( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141350 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) -( 0.000005 0.000000 -0.141351 0.000000 -0.251701 0.000000 ) - freq ( 3) = -0.00000020 [THz] = -0.00000651 [cm-1] -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) -( 0.000001 0.000000 -0.251701 0.000000 0.141351 0.000000 ) + freq ( 1) = -0.00000098 [THz] = -0.00003281 [cm-1] +( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) +( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) + freq ( 2) = -0.00000041 [THz] = -0.00001358 [cm-1] +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) + freq ( 3) = -0.00000031 [THz] = -0.00001024 [cm-1] +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) +( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) freq ( 4) = 1.74178330 [THz] = 58.09962873 [cm-1] ( 0.000000 0.000000 -0.300463 0.000000 0.002787 0.000000 ) ( 0.000000 0.000000 -0.166848 0.000000 -0.011440 0.000000 ) @@ -668,48 +668,48 @@ Basis vectors ( 0.305440 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.126386 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.338635 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.290653 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) ( 0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) freq ( 6) = 4.65916041 [THz] = 155.41284058 [cm-1] ( -0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) -( -0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) -( -0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) +( 0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) +( 0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) ( -0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) -( 0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) +( -0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) ( -0.000000 0.000000 -0.043691 0.000000 -0.347361 0.000000 ) -( 0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) -( -0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) +( -0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) +( 0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) freq ( 7) = 6.03591072 [THz] = 201.33628095 [cm-1] -( 0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.136548 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.302481 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.305036 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.315550 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.136548 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.302481 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.296555 0.000000 0.062886 0.000000 -0.081985 0.000000 ) ( -0.296555 0.000000 -0.062886 0.000000 0.081985 0.000000 ) -( -0.305036 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.315550 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.136548 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.302481 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.305036 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.315550 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.136548 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.302481 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) ( 0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) freq ( 8) = 6.15949351 [THz] = 205.45855860 [cm-1] -( 0.000000 0.000000 -0.203150 0.000000 -0.219537 0.000000 ) -( 0.000000 0.000000 -0.278164 0.000000 -0.273652 0.000000 ) -( 0.000000 0.000000 -0.239679 0.000000 -0.256163 0.000000 ) -( -0.000000 0.000000 0.209804 0.000000 0.243059 0.000000 ) -( -0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) -( 0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) -( -0.000000 0.000000 0.203150 0.000000 -0.219537 0.000000 ) -( -0.000000 0.000000 0.278164 0.000000 -0.273652 0.000000 ) -( -0.000000 0.000000 0.239679 0.000000 -0.256163 0.000000 ) -( 0.000000 0.000000 -0.209804 0.000000 0.243059 0.000000 ) -( 0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) -( -0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) +( 0.000000 0.000000 0.203150 0.000000 0.219537 0.000000 ) +( 0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) +( 0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) +( -0.000000 0.000000 -0.209804 0.000000 -0.243059 0.000000 ) +( 0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) +( -0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) +( -0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) +( -0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) +( -0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) +( 0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) +( -0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) +( 0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) freq ( 9) = 6.29096533 [THz] = 209.84398575 [cm-1] ( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) @@ -738,106 +738,106 @@ Basis vectors ( 0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) freq ( 11) = 8.28300944 [THz] = 276.29141531 [cm-1] ( -0.000000 0.000000 0.338439 0.000000 -0.044008 0.000000 ) -( -0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) +( 0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) ( -0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) ( 0.000000 0.000000 -0.345335 0.000000 0.006237 0.000000 ) ( 0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) ( -0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) -( -0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) +( 0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) ( -0.000000 0.000000 0.194825 0.000000 0.047214 0.000000 ) ( -0.000000 0.000000 0.343457 0.000000 0.016680 0.000000 ) ( -0.000000 0.000000 -0.345335 0.000000 -0.006237 0.000000 ) ( 0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) ( -0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) freq ( 12) = 8.43189918 [THz] = 281.25784182 [cm-1] -( -0.000000 0.000000 0.229760 0.000000 -0.213402 0.000000 ) -( -0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) -( -0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) -( 0.000000 0.000000 -0.236152 0.000000 0.212913 0.000000 ) -( 0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) -( -0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) -( -0.000000 0.000000 -0.229760 0.000000 -0.213402 0.000000 ) -( 0.000000 0.000000 -0.281970 0.000000 -0.221619 0.000000 ) -( -0.000000 0.000000 -0.166741 0.000000 -0.115050 0.000000 ) -( -0.000000 0.000000 0.236152 0.000000 0.212913 0.000000 ) -( -0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) -( 0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) +( -0.000000 0.000000 -0.229760 0.000000 0.213402 0.000000 ) +( 0.000000 0.000000 -0.281970 0.000000 0.221619 0.000000 ) +( 0.000000 0.000000 -0.166741 0.000000 0.115050 0.000000 ) +( -0.000000 0.000000 0.236152 0.000000 -0.212913 0.000000 ) +( -0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) +( 0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) +( 0.000000 0.000000 0.229760 0.000000 0.213402 0.000000 ) +( 0.000000 0.000000 0.281970 0.000000 0.221619 0.000000 ) +( 0.000000 0.000000 0.166741 0.000000 0.115050 0.000000 ) +( 0.000000 0.000000 -0.236152 0.000000 -0.212913 0.000000 ) +( 0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) +( -0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) freq ( 13) = 15.52715504 [THz] = 517.93006796 [cm-1] -( 0.003319 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.136710 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.394334 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.009417 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.003319 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.136710 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.394334 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.009417 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.177193 0.000000 0.356157 0.000000 0.067900 0.000000 ) ( 0.177193 0.000000 -0.356157 0.000000 -0.067900 0.000000 ) -( 0.003319 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.136710 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.394334 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.009417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.003319 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.136710 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.394334 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.009417 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.177193 0.000000 0.356157 0.000000 -0.067900 0.000000 ) ( 0.177193 0.000000 -0.356157 0.000000 0.067900 0.000000 ) freq ( 14) = 15.77685603 [THz] = 526.25919529 [cm-1] -( 0.000000 0.000000 -0.006657 0.000000 -0.008034 0.000000 ) -( 0.000000 0.000000 0.432968 0.000000 -0.015983 0.000000 ) -( -0.000000 0.000000 -0.143749 0.000000 0.426045 0.000000 ) -( 0.000000 0.000000 0.004900 0.000000 0.011633 0.000000 ) -( -0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) -( 0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) -( -0.000000 0.000000 -0.006657 0.000000 0.008034 0.000000 ) -( -0.000000 0.000000 0.432968 0.000000 0.015983 0.000000 ) -( 0.000000 0.000000 -0.143749 0.000000 -0.426045 0.000000 ) -( -0.000000 0.000000 0.004900 0.000000 -0.011633 0.000000 ) -( -0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) -( 0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) +( 0.000000 0.000000 0.006657 0.000000 0.008034 0.000000 ) +( 0.000000 0.000000 -0.432968 0.000000 0.015983 0.000000 ) +( -0.000000 0.000000 0.143749 0.000000 -0.426045 0.000000 ) +( 0.000000 0.000000 -0.004900 0.000000 -0.011633 0.000000 ) +( 0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) +( -0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) +( -0.000000 0.000000 0.006657 0.000000 -0.008034 0.000000 ) +( -0.000000 0.000000 -0.432968 0.000000 -0.015983 0.000000 ) +( 0.000000 0.000000 0.143749 0.000000 0.426045 0.000000 ) +( -0.000000 0.000000 -0.004900 0.000000 0.011633 0.000000 ) +( 0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) +( -0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) freq ( 15) = 15.80580280 [THz] = 527.22475550 [cm-1] -( -0.020053 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.114237 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.468968 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.000805 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.020053 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.114237 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.468968 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.000805 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.127463 0.000000 -0.299100 0.000000 -0.166134 0.000000 ) ( -0.127463 0.000000 0.299100 0.000000 0.166134 0.000000 ) -( 0.020053 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.114237 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.468968 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.000805 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.020053 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.114237 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.468968 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.000805 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) ( 0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) freq ( 16) = 16.34770861 [THz] = 545.30078498 [cm-1] -( 0.007401 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.375543 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.009605 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.005927 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.375543 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.009605 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.005927 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 -0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 0.380036 0.000000 ) -( 0.007401 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.375543 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.009605 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.005927 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.375543 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.009605 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.005927 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) freq ( 17) = 17.38212592 [THz] = 579.80522742 [cm-1] ( 0.000000 0.000000 0.006663 0.000000 0.018085 0.000000 ) ( -0.000000 0.000000 -0.408134 0.000000 0.010473 0.000000 ) -( 0.000000 0.000000 0.163504 0.000000 -0.439667 0.000000 ) -( -0.000000 0.000000 -0.029278 0.000000 -0.015379 0.000000 ) +( -0.000000 0.000000 0.163504 0.000000 -0.439667 0.000000 ) +( 0.000000 0.000000 -0.029278 0.000000 -0.015379 0.000000 ) ( 0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) ( -0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) ( -0.000000 0.000000 -0.006663 0.000000 0.018085 0.000000 ) -( 0.000000 0.000000 0.408134 0.000000 0.010473 0.000000 ) -( -0.000000 0.000000 -0.163504 0.000000 -0.439667 0.000000 ) -( 0.000000 0.000000 0.029278 0.000000 -0.015379 0.000000 ) +( -0.000000 0.000000 0.408134 0.000000 0.010473 0.000000 ) +( 0.000000 0.000000 -0.163504 0.000000 -0.439667 0.000000 ) +( -0.000000 0.000000 0.029278 0.000000 -0.015379 0.000000 ) ( -0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) ( 0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) freq ( 18) = 18.97560951 [THz] = 632.95811128 [cm-1] ( -0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.123298 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.015257 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) ( -0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) -( 0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.026207 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.643317 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.015257 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) ( 0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) freq ( 19) = 21.12523228 [THz] = 704.66179829 [cm-1] @@ -883,26 +883,26 @@ Basis vectors ( -0.000000 0.000000 0.018519 0.000000 0.017965 0.000000 ) ( 0.000000 0.000000 -0.267387 0.000000 0.025126 0.000000 ) ( -0.000000 0.000000 0.103166 0.000000 -0.181808 0.000000 ) -( 0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) +( -0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) ( -0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) ( 0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) ( -0.000000 0.000000 0.018519 0.000000 -0.017965 0.000000 ) ( 0.000000 0.000000 -0.267387 0.000000 -0.025126 0.000000 ) ( -0.000000 0.000000 0.103166 0.000000 0.181808 0.000000 ) -( -0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) +( 0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) ( -0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) ( 0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) freq ( 23) = 23.82111353 [THz] = 794.58670445 [cm-1] -( 0.033391 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.247417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.503562 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.010494 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.033391 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.247417 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.503562 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.010494 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.066182 0.000000 -0.245304 0.000000 -0.165645 0.000000 ) ( -0.066182 0.000000 0.245304 0.000000 0.165645 0.000000 ) -( -0.033391 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.247417 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.503562 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.010494 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.033391 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.247417 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.503562 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.010494 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.066182 0.000000 0.245304 0.000000 -0.165645 0.000000 ) ( 0.066182 0.000000 -0.245304 0.000000 0.165645 0.000000 ) freq ( 24) = 24.61305360 [THz] = 821.00297787 [cm-1] @@ -919,18 +919,18 @@ Basis vectors ( 0.107892 0.000000 0.176896 0.000000 0.114270 0.000000 ) ( 0.107892 0.000000 -0.176896 0.000000 -0.114270 0.000000 ) freq ( 25) = 32.09428546 [THz] = 1070.54997601 [cm-1] -( -0.000000 0.000000 0.035654 0.000000 -0.024948 0.000000 ) -( 0.000000 0.000000 -0.496236 0.000000 -0.024837 0.000000 ) -( -0.000000 0.000000 -0.120098 0.000000 0.436907 0.000000 ) -( 0.000000 0.000000 0.003481 0.000000 -0.011802 0.000000 ) -( -0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) -( 0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) -( -0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) -( 0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) -( 0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) -( 0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) -( 0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) -( -0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) +( -0.000000 0.000000 -0.035654 0.000000 0.024948 0.000000 ) +( 0.000000 0.000000 0.496236 0.000000 0.024837 0.000000 ) +( -0.000000 0.000000 0.120098 0.000000 -0.436907 0.000000 ) +( 0.000000 0.000000 -0.003481 0.000000 0.011802 0.000000 ) +( 0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) +( -0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) +( -0.000000 0.000000 0.035654 0.000000 0.024948 0.000000 ) +( 0.000000 0.000000 -0.496236 0.000000 0.024837 0.000000 ) +( 0.000000 0.000000 -0.120098 0.000000 -0.436907 0.000000 ) +( -0.000000 0.000000 0.003481 0.000000 0.011802 0.000000 ) +( -0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) +( 0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) freq ( 26) = 32.55854203 [THz] = 1086.03590588 [cm-1] ( -0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) ( 0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) @@ -940,101 +940,101 @@ Basis vectors ( -0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) ( 0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) ( 0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) -( -0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) -( -0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) +( 0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) +( 0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) freq ( 27) = 34.33677276 [THz] = 1145.35128984 [cm-1] ( -0.000000 0.000000 0.023259 0.000000 -0.023011 0.000000 ) -( 0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) +( -0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) ( 0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) ( -0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( -0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) -( 0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) -( 0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) -( -0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) +( -0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) +( -0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) +( 0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) freq ( 28) = 34.43427982 [THz] = 1148.60377497 [cm-1] -( -0.000000 0.000000 0.002777 0.000000 -0.003396 0.000000 ) -( -0.000000 0.000000 -0.136805 0.000000 -0.007772 0.000000 ) -( 0.000000 0.000000 -0.017157 0.000000 0.165743 0.000000 ) -( 0.000000 0.000000 -0.031764 0.000000 0.019397 0.000000 ) -( 0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) -( -0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) -( -0.000000 0.000000 -0.002777 0.000000 -0.003396 0.000000 ) -( -0.000000 0.000000 0.136805 0.000000 -0.007772 0.000000 ) -( -0.000000 0.000000 0.017157 0.000000 0.165743 0.000000 ) -( -0.000000 0.000000 0.031764 0.000000 0.019397 0.000000 ) -( -0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) -( 0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) +( -0.000000 0.000000 -0.002777 0.000000 0.003396 0.000000 ) +( 0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) +( 0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) +( -0.000000 0.000000 0.031764 0.000000 -0.019397 0.000000 ) +( -0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) +( 0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) +( -0.000000 0.000000 0.002777 0.000000 0.003396 0.000000 ) +( 0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) +( 0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) +( -0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) +( 0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) +( -0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) freq ( 29) = 58.49309377 [THz] = 1951.11931058 [cm-1] -( -0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) -( 0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) -( -0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) -( 0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) -( 0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) -( -0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) -( 0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) -( 0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) -( 0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) -( -0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) -( -0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) -( 0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) +( 0.000000 0.000000 -0.000385 0.000000 -0.044914 0.000000 ) +( 0.000000 0.000000 -0.004574 0.000000 0.685508 0.000000 ) +( 0.000000 0.000000 -0.037283 0.000000 -0.020274 0.000000 ) +( -0.000000 0.000000 -0.006725 0.000000 0.007763 0.000000 ) +( -0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) +( 0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) +( 0.000000 0.000000 0.000385 0.000000 -0.044914 0.000000 ) +( 0.000000 0.000000 0.004574 0.000000 0.685508 0.000000 ) +( -0.000000 0.000000 0.037283 0.000000 -0.020274 0.000000 ) +( -0.000000 0.000000 0.006725 0.000000 0.007763 0.000000 ) +( 0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) +( -0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) freq ( 30) = 58.64595875 [THz] = 1956.21833687 [cm-1] -( 0.000000 0.000000 -0.038621 0.000000 -0.009281 0.000000 ) -( 0.000000 0.000000 0.029768 0.000000 -0.049879 0.000000 ) -( 0.000000 0.000000 0.559468 0.000000 0.148460 0.000000 ) -( -0.000000 0.000000 -0.018040 0.000000 0.013870 0.000000 ) -( -0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) -( 0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) -( 0.000000 0.000000 -0.038621 0.000000 0.009281 0.000000 ) -( 0.000000 0.000000 0.029768 0.000000 0.049879 0.000000 ) -( 0.000000 0.000000 0.559468 0.000000 -0.148460 0.000000 ) -( -0.000000 0.000000 -0.018040 0.000000 -0.013870 0.000000 ) -( -0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) -( 0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) +( 0.000000 0.000000 0.038621 0.000000 0.009281 0.000000 ) +( -0.000000 0.000000 -0.029768 0.000000 0.049879 0.000000 ) +( 0.000000 0.000000 -0.559468 0.000000 -0.148460 0.000000 ) +( -0.000000 0.000000 0.018040 0.000000 -0.013870 0.000000 ) +( 0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) +( -0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) +( -0.000000 0.000000 0.038621 0.000000 -0.009281 0.000000 ) +( -0.000000 0.000000 -0.029768 0.000000 -0.049879 0.000000 ) +( -0.000000 0.000000 -0.559468 0.000000 0.148460 0.000000 ) +( 0.000000 0.000000 0.018040 0.000000 0.013870 0.000000 ) +( 0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) +( -0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) freq ( 31) = 59.18441210 [THz] = 1974.17920491 [cm-1] ( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.003416 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.057236 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) -( -0.003846 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.057236 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.057236 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) freq ( 32) = 59.64579843 [THz] = 1989.56939401 [cm-1] -( 0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.012328 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.015191 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.055912 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.015191 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.055912 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) ( 0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) -( -0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.012328 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.015191 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.055912 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.015191 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.055912 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) ( -0.402838 0.000000 -0.249120 0.000000 -0.154587 0.000000 ) freq ( 33) = 61.28050278 [THz] = 2044.09725399 [cm-1] -( 0.000000 0.000000 0.043022 0.000000 0.019555 0.000000 ) -( -0.000000 0.000000 -0.011017 0.000000 -0.020659 0.000000 ) -( 0.000000 0.000000 -0.669201 0.000000 -0.219427 0.000000 ) -( -0.000000 0.000000 -0.002372 0.000000 -0.002514 0.000000 ) -( 0.017848 0.000000 0.008103 0.000000 -0.015175 0.000000 ) -( -0.017848 0.000000 0.008103 0.000000 -0.015175 0.000000 ) -( -0.000000 0.000000 -0.043022 0.000000 0.019555 0.000000 ) -( -0.000000 0.000000 0.011017 0.000000 -0.020659 0.000000 ) -( -0.000000 0.000000 0.669201 0.000000 -0.219427 0.000000 ) -( 0.000000 0.000000 0.002372 0.000000 -0.002514 0.000000 ) -( -0.017848 0.000000 -0.008103 0.000000 -0.015175 0.000000 ) -( 0.017848 0.000000 -0.008103 0.000000 -0.015175 0.000000 ) +( -0.000000 0.000000 -0.043022 0.000000 -0.019555 0.000000 ) +( -0.000000 0.000000 0.011017 0.000000 0.020659 0.000000 ) +( 0.000000 0.000000 0.669201 0.000000 0.219427 0.000000 ) +( 0.000000 0.000000 0.002372 0.000000 0.002514 0.000000 ) +( -0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) +( 0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) +( -0.000000 0.000000 0.043022 0.000000 -0.019555 0.000000 ) +( -0.000000 0.000000 -0.011017 0.000000 0.020659 0.000000 ) +( -0.000000 0.000000 -0.669201 0.000000 0.219427 0.000000 ) +( 0.000000 0.000000 -0.002372 0.000000 0.002514 0.000000 ) +( 0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) +( -0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) freq ( 34) = 63.16500883 [THz] = 2106.95760040 [cm-1] ( -0.000000 0.000000 0.001416 0.000000 0.045005 0.000000 ) ( -0.000000 0.000000 -0.005022 0.000000 -0.703766 0.000000 ) @@ -1042,29 +1042,29 @@ Basis vectors ( 0.000000 0.000000 0.003291 0.000000 -0.001095 0.000000 ) ( 0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) ( -0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) -( -0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) +( 0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) ( -0.000000 0.000000 -0.005022 0.000000 0.703766 0.000000 ) -( 0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) +( -0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) ( 0.000000 0.000000 0.003291 0.000000 0.001095 0.000000 ) ( 0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) ( -0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) freq ( 35) = 63.58360137 [THz] = 2120.92034271 [cm-1] ( 0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) ( 0.000000 0.000000 0.020599 0.000000 -0.158729 0.000000 ) -( -0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) +( 0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) ( -0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) ( -0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) ( 0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) ( 0.000000 0.000000 -0.000415 0.000000 0.010914 0.000000 ) ( 0.000000 0.000000 -0.020599 0.000000 -0.158729 0.000000 ) ( -0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) -( 0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) +( -0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) ( 0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) ( -0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) freq ( 36) = 65.67178765 [THz] = 2190.57472950 [cm-1] ( -0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) ( -0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) -( -0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) +( 0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) ( 0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) ( -0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) ( 0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) From b68f8706fd2c907ed811c0aa016e0670d0636750 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sun, 12 Feb 2023 11:57:44 +0100 Subject: [PATCH 088/204] Bugfix on the new get_equivalent_atoms --- FModules/get_equivalent_atoms.f90 | 12 +++-- cellconstructor/Structure.py | 3 +- .../test_eqivalent_atoms.py | 50 +++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 tests/TestImposeSymmetries/test_eqivalent_atoms.py diff --git a/FModules/get_equivalent_atoms.f90 b/FModules/get_equivalent_atoms.f90 index df5097ef..e2b6c749 100644 --- a/FModules/get_equivalent_atoms.f90 +++ b/FModules/get_equivalent_atoms.f90 @@ -68,7 +68,7 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at end if ! Jump if the atom is already found - if (total_dist(j) .lt. 1.d-6) cycle + if (total_dist(j) .lt. 1.d-6) continue ! Exclude different type of atoms @@ -90,14 +90,14 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at tmp_dist = sum(aux_vect**2) !print *, "Checking atom ", j, " of ", nat, "old_dist: ", & - ! total_dist(j), " new_dist: ", tmp_dist + ! total_dist(j), " new_dist: ", tmp_dist, "current: ", eq_atoms(i) if (tmp_dist .lt. total_dist(j)) then total_dist(j) = tmp_dist - eq_atoms(i) = j - 1 ! - 1 is for Fortan to python correspondance end if if (tmp_dist .lt. 1.d-6) then eq_found = eq_found + 1 + eq_atoms(i) = j - 1 ! - 1 is for Fortan to python correspondance ! Early exit if all the atoms are found if (eq_found .eq. nat) then @@ -115,6 +115,12 @@ subroutine get_equivalent_atoms(coords1, coords2, unit_cell, ityp1, ityp2, eq_at enddo if (found) exit enddo + + ! Check if the atom is not found + if (.not. found .or. eq_atoms(i) .eq. -1) then + ! Pick the index of the minimum value of total_dist + eq_atoms(i) = minloc(total_dist, dim=1) - 1 + end if enddo end subroutine get_equivalent_atoms diff --git a/cellconstructor/Structure.py b/cellconstructor/Structure.py index 09be15ef..71c8e6b8 100644 --- a/cellconstructor/Structure.py +++ b/cellconstructor/Structure.py @@ -976,7 +976,8 @@ def get_equivalent_atoms(self, target_structure, return_distances = False, debug #print "Max distance:", np.max(effective_distances) - assert all(eq_atm == equiv_atoms) + assert all(np.array(eq_atm) == np.array(equiv_atoms)) + eq_atm = equiv_atoms if return_distances: return equiv_atoms, effective_distances diff --git a/tests/TestImposeSymmetries/test_eqivalent_atoms.py b/tests/TestImposeSymmetries/test_eqivalent_atoms.py new file mode 100644 index 00000000..b2e87ad9 --- /dev/null +++ b/tests/TestImposeSymmetries/test_eqivalent_atoms.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +import sys, os +import pytest +import numpy as np + +import cellconstructor as CC +import cellconstructor.Structure + + + +def test_equivalent_atoms(debug=False): + # Set a seed for reproducibility + np.random.seed(0) + + struct = CC.Structure.Structure(2) + struct.coords[1, :] = 0.5 + struct.has_unit_cell = True + struct.unit_cell = np.eye(3) + + new_struct = struct.generate_supercell((3,3,3)) + reference = new_struct.copy() + new_struct.coords[:,:] += np.random.normal(0, 0.1, new_struct.coords.shape) + + # Shuffle the rows of new_struct.coords + irt = np.random.permutation(new_struct.coords.shape[0]) + new_struct.coords = new_struct.coords[irt, :] + + irt_code = new_struct.get_equivalent_atoms(reference) + irt_debug = new_struct.get_equivalent_atoms(reference, + debug=True) + + if debug: + print("IRT:", irt) + print("IRT_CODE:", irt_code) + print("IRT_DEBUG:", irt_debug) + + assert np.all(np.array(irt_code) == np.array(irt_debug)), "Pristine structure wrong atom assignment" + new_struct.coords[:,:] += np.random.normal(0, 0.1, new_struct.coords.shape) + + irt_code = reference.get_equivalent_atoms(new_struct) + irt_debug = reference.get_equivalent_atoms(new_struct, + debug=True) + assert np.all(np.array(irt_code) == np.array(irt_debug)), "Noised structure wrong atom assignment" + + + + +if __name__ == "__main__": + test_equivalent_atoms(debug=True) From b3b95b50fbec95b0fdf91f874a19d8c51282e0bd Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sun, 12 Feb 2023 12:20:56 +0100 Subject: [PATCH 089/204] Other bugfix on the np.complex (no more available in the latest numpy version) --- cellconstructor/ForceTensor.py | 2 +- cellconstructor/symmetries.py | 1 - tests/TestSymmetriesSupercell/test_symmetries_supercell.py | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index 4c021fcc..260ab596 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -769,7 +769,7 @@ def Interpolate(self, q2, asr = False, verbose = False, asr_range = None, q_dire # If effective charges are present, then add the nonanalitic part if self.effective_charges is not None: - dynq = np.zeros((3,3,self.nat, self.nat), dtype = np.complex, order = "F") + dynq = np.zeros((3,3,self.nat, self.nat), dtype = np.complex128, order = "F") for i in range(self.nat): for j in range(self.nat): dynq[:,:, i, j] = final_fc[3*i : 3*i+3, 3*j:3*j+3] diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 09ca71c8..ebba59ae 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -831,7 +831,6 @@ def SymmetrizeFCQ(self, fcq, q_stars, verbose = False, asr = "simple"): The list of q points divided by stars, the fcq must follow the order of the q points in the q_stars array """ - nqirr = len(q_stars) nq = np.sum([len(x) for x in q_stars]) diff --git a/tests/TestSymmetriesSupercell/test_symmetries_supercell.py b/tests/TestSymmetriesSupercell/test_symmetries_supercell.py index 5bcc2671..7844a783 100644 --- a/tests/TestSymmetriesSupercell/test_symmetries_supercell.py +++ b/tests/TestSymmetriesSupercell/test_symmetries_supercell.py @@ -37,7 +37,7 @@ def test_symmetries_supercell(FILDYN, NQIRR): after_sym = fc_dynmat_start.copy() - qe_sym.SymmetrizeFCQ(after_sym, np.array(dynmat.q_stars), verbose = True) + qe_sym.SymmetrizeFCQ(after_sym, dynmat.q_stars, verbose = True) for i,q in enumerate(dynmat.q_tot): dynmat.dynmats[i] = after_sym[i,:,:] From 7bce1bd569958fa89a407d96adb96678adfcedbd Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Mon, 13 Feb 2023 15:48:54 +0100 Subject: [PATCH 090/204] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a043f924..e5e7910c 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,8 @@ pip install CellConstructor ``` In this way you will not install the last developing version. + NOTE: From d8b864c74260c1a1ce0bc6d692ffc7e8fba6025b Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Mon, 13 Feb 2023 15:56:45 +0100 Subject: [PATCH 091/204] Added a warning on a possible bugged subroutine --- cellconstructor/Phonons.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index d4ed2c78..b10606bc 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -1367,6 +1367,8 @@ def load_phonopy(self, yaml_filename = "phonopy.yaml", fc_filename = None): It needs two files: the file with the structure information, and the file with the force constant matrix. + TODO: Test properly, possible bugs. + Parameters ---------- yaml_filename : string @@ -1375,6 +1377,7 @@ def load_phonopy(self, yaml_filename = "phonopy.yaml", fc_filename = None): Path to the FORCE_CONSTANTS file. If None, a file called FORCE_CONSTANTS in the same directory as phonopy.yaml will be looked for. """ + warnings.warn("This subroutine is not tested yet, use it with care.") unit_cell = np.zeros((3,3), dtype = np.double) supercell = np.zeros(3, dtype = np.intc) From f887c2cb42c8dcb9f71402975b035324f0991eac Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Tue, 14 Feb 2023 17:28:29 +0100 Subject: [PATCH 092/204] Added a new function to GoParallel, now it is able to use the parallelization of lists. --- cellconstructor/Settings.py | 59 ++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/cellconstructor/Settings.py b/cellconstructor/Settings.py index 5d3f8aee..fbd5234a 100644 --- a/cellconstructor/Settings.py +++ b/cellconstructor/Settings.py @@ -160,7 +160,14 @@ def GoParallel(function, list_of_inputs, reduce_op = None): =========== Perform a parallel evaluation of the provided function with the spawned - list of inputs, and returns a list of output + list of inputs, and returns a list of output. + + Note, this subroutine will not speedup the reduction, + the good speedup is obtained not with a large number of inputs, + but with a large execution time of the function on each element. + + Therefore, the cost to apply the function on a element of list_of_inputs + must be greather than the cost of the reduction (otherwise no gain is obtained). Parameters ---------- @@ -190,10 +197,25 @@ def GoParallel(function, list_of_inputs, reduce_op = None): list_of_inputs = broadcast(list_of_inputs) # Prepare the work for the current processor - # TODO: Use a generator - computing_list = [] - for i in range(rank, len(list_of_inputs), n_proc): - computing_list.append(list_of_inputs[i]) + # Define the range of the list to be computed by the current processor + n_elements = len(list_of_inputs) + n_per_proc = int(n_elements / n_proc) + n_left = n_elements - n_per_proc * n_proc + if rank < n_left: + start = rank * (n_per_proc + 1) + end = start + n_per_proc + 1 + else: + start = rank * n_per_proc + n_left + end = start + n_per_proc + + computing_list = list_of_inputs[start:end] + + # old version + #computing_list = [] + #for i in range(rank, len(list_of_inputs), n_proc): + # computing_list.append(list_of_inputs[i]) + + #print("Rank {} is computing {} elements".format(rank, len(computing_list))) #all_print("Computing:", computing_list) @@ -204,14 +226,17 @@ def GoParallel(function, list_of_inputs, reduce_op = None): result = 0 for x in computing_list: result += function(x) - elif reduce_op == "*": result = 1 for x in computing_list: result *= function(x) + else: + result = [] + for x in computing_list: + result.append(function(x)) # If a reduction must be done, return - if not reduce_op is None: + if reduce_op is not None: if __PARALLEL_TYPE__ == "mpi4py": comm = mpi4py.MPI.COMM_WORLD results = comm.allgather(result) @@ -234,10 +259,24 @@ def GoParallel(function, list_of_inputs, reduce_op = None): #np.savetxt("result_{}_total.dat".format(rank), result) return result - else: - raise NotImplementedError("Error, for now parallelization with MPI implemented only with reduction") + else: + # Gather the results + if __PARALLEL_TYPE__ == "mpi4py": + comm = mpi4py.MPI.COMM_WORLD + results = comm.allgather(result) + + # Flatten the list + result = [item for sublist in results for item in sublist] + + return result else: - raise NotImplementedError("Something went wrong: {}".format(__PARALLEL_TYPE__)) + raise ValueError("Something wrong with the MPI initialization, parallel type is {}".format(__PARALLEL_TYPE__)) + + + + + + #raise NotImplementedError("Something went wrong: {}".format(__PARALLEL_TYPE__)) #elif __PARALLEL_TYPE__ == "mp": #p = mp.Pool(__NPROC__) From ee339d66c714c873aedc2da7096efb61476d77c8 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Tue, 14 Feb 2023 17:52:02 +0100 Subject: [PATCH 093/204] Added parallelization in the harmonic phonons. --- cellconstructor/Phonons.py | 19 +++++++------ cellconstructor/Timer.py | 2 ++ cellconstructor/symmetries.py | 50 ++++++++++++++++++++++++++++++++++- 3 files changed, 62 insertions(+), 9 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index b10606bc..2236e75c 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4645,16 +4645,19 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= symm = symmetries.GetSymmetriesFromSPGLIB(symm) n_syms = len(symm) - # Get irt from the symmetries (atomic corruispondance after the application of symmetry) + # Get irt from the symmetries (atomic corrispondance after the application of symmetry) if debug: print("Getting symmetry equivalent atoms") - irts = [] - for i, s in enumerate(symm): - if timer is not None: - irt = timer.execute_timed_function(symmetries.GetIRT, super_structure, s, timer=timer) - else: - irt = symmetries.GetIRT(super_structure, s, timer=timer) - irts.append(irt) + + + irts = symmetries.get_symmetry_equivalent_atoms(symm, super_structure, timer=timer) + #irts = [] + #for i, s in enumerate(symm): + # if timer is not None: + # irt = timer.execute_timed_function(symmetries.GetIRT, super_structure, s, timer=timer) + # else: + # irt = symmetries.GetIRT(super_structure, s, timer=timer) + # irts.append(irt) # Build the symmetry inequivalent displacements # This is the basis that we will use to compute the force constant matrix diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index fd0ab1c3..10324f2e 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -1,5 +1,7 @@ import time import numpy as np +import cellconstructor as CC, cellconstructor.Settings +from cellconstructor.Settings import ParallelPrint as print class Timer: diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index ebba59ae..407a8624 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -20,6 +20,7 @@ from cellconstructor.Units import * import cellconstructor.Timer as Timer from cellconstructor.Settings import ParallelPrint as print +import cellconstructor.Settings as Settings # Load the fortran symmetry QE module import symph @@ -2910,4 +2911,51 @@ def GetSymmetryMatrix(sym, structure, crystal = False): i_irt = irt[i] sym_mat[3 * i_irt : 3*i_irt+3, 3*i : 3*i+ 3] = sym_cryst - return sym_mat \ No newline at end of file + return sym_mat + + +def get_symmetry_equivalent_atoms(symmetries, structure, parallel=True, timer=None): + """ + GET THE SYMMETRY EQUIVALENT ATOMS + ================================= + + This subroutine returns the list of the 'irt' variable, + which is the index of the atom in the original structure + equivalent to that of the structure after the symmetry operation is applied. + + new_coords[irt[i], :] = S coords[i, :] + + This subroutine exploits MPI parallelization. + + Parameters + ---------- + symmetries : list of ndarray(size = (3, 4)) + The array of the symmetries + structure : CC.Structure.Structure() + The structure on which the symmetries are applied + + Results + ------- + irts : list of ndarray(size = (structure.N_atoms, ), dtype = np.intc) + The list of the irt array for each symmetry + """ + + if not parallel: + irts = [] + for i, s in enumerate(symmetries): + if timer is not None: + irt = timer.execute_timed_function(GetIRT, structure, s, timer=timer) + else: + irt = GetIRT(structure, s, timer=timer) + irts.append(irt) + else: + def function(s): + return GetIRT(structure, s, timer=timer) + + if timer is not None: + irts = timer.execute_timed_function(Settings.GoParallel, function, symmetries) + else: + irts = Settings.GoParallel(function, symmetries) + + + return irts \ No newline at end of file From 2e2c1d7576ed48f30d0ab673d40fd5261e982419 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 15 Feb 2023 11:29:17 +0100 Subject: [PATCH 094/204] Speedup by a factor of 2 in the phonons with finite displacements, and now the parallelization is an actual speedup as it does not affect the serial parts. --- cellconstructor/Phonons.py | 151 +++++++++++++--------------------- cellconstructor/symmetries.py | 117 +++++++++++++++++++++++++- 2 files changed, 175 insertions(+), 93 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 2236e75c..bd9594ae 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4634,12 +4634,6 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= print("Computing phonons with finite differences.") #print("DEBUG:", debug) - - list_of_calculations = [] - - # Create a list of displacements including the symmetries - displacements = [] - # Use spglib to get all the symmetry operations symm = spglib.get_symmetry(super_structure.get_ase_atoms()) symm = symmetries.GetSymmetriesFromSPGLIB(symm) @@ -4661,59 +4655,13 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= # Build the symmetry inequivalent displacements # This is the basis that we will use to compute the force constant matrix - for i in range(super_structure.N_atoms): - for j in range(3): - # Generate the displacement - disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) - disp[i, j] += 1 - - #if debug: - # print("Simulating displacement", i, j) - - # Check if the displacement can be decomposed in those already computed - if timer is not None: - coefficients = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, disp.ravel(), displacements) - else: - coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) - - #if debug: - # print("The decomposition is:", coefficients) - if coefficients is None: - # The displacement needs to be computed - list_of_calculations.append((i,j)) - - # Generate the symmetry equivalent displacements - if timer is not None: - disp_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector, symm, disp, super_structure.unit_cell, irts) - else: - disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) - + # Doing this in parallel is not possible, because the displacements are not independent + # Therefore, we need to compute all the displacements in a single process + if timer is not None: + generators, list_of_calculations, displacements = timer.execute_timed_function(symmetries.get_force_constants_generators, symm, irts, super_structure, timer=timer) + else: + generators, list_of_calculations, displacements = symmetries.get_force_constants_generators(symm, irts, super_structure) - # Check wether to add or not the newly generated displacements to the space - for i_sym in range(n_syms): - v = disp_sym[i_sym, :, :] - #if debug: - # print("The symmetry {} gives a vector v = {}".format(i_sym, v)) - if timer is not None: - coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), displacements) - else: - coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), displacements) - #if debug: - # print("Is new?", coeffs is None) - if coeffs is None: - displacements.append(v.ravel()) - assert len(displacements) <= nat3, "The number of displacements is not correct. Something went wrong." - if len(displacements) == nat3: - break - - # Early exit - if len(displacements) == nat3: - break - - # Early exit - if len(displacements) == nat3: - break - print("Number of symmetry inequivalent displacements:", len(list_of_calculations)) assert len(displacements) == nat3, "The number of displacements is not correct. Something went wrong." @@ -4766,50 +4714,69 @@ def compute_force(indices): fc = Settings.broadcast(fc) # Now we can generate all the symmetry equivalent forces - disp_basis = [] # Define the force constant matrix in the basis of the auxiliary vectors fc_aux_basis = np.zeros((nat3, nat3), dtype = np.double) - counter_index = -1 + + # Compute the auxiliary force basis + for index, gen in enumerate(generators): + # Get the symmetry operation + current_sym = symm[gen["sym_index"]] + current_irt = irts[gen["sym_index"]] - for i in range(super_structure.N_atoms): - if counter_index +1 == nat3: - break - for j in range(3): - if counter_index +1 == nat3: - break - disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) - disp[i, j] += 1 - if (i, j) in list_of_calculations: - # Generate the basis - force = fc[3*i + j, :].reshape((super_structure.N_atoms, 3)) - - # Generate the symmetry equivalent displacements - if timer is not None: - disp_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, disp, super_structure.unit_cell, irts) - force_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, force, super_structure.unit_cell, irts) - else: - disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) - force_sym = symmetries.ApplySymmetriesToVector(symm, force, super_structure.unit_cell, irts) - - # Check wether to add or not the newly generated displacements to the space - for i_sym in range(n_syms): - v = disp_sym[i_sym, :, :] - if timer is not None: - coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), disp_basis) - else: - coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), disp_basis) + i = gen["atom_index"] + j = gen["direction"] + force = fc[3*i + j, :].reshape((super_structure.N_atoms, 3)) - if coeffs is None: - disp_basis.append(v.ravel()) - counter_index += 1 - fc_aux_basis[counter_index, :] = force_sym[i_sym, :, :].ravel() + # Apply the symmetry to the force + if timer is not None: + force_sym = timer.execute_timed_function(symmetries.ApplySymmetryToVector,current_sym, force, super_structure.unit_cell, current_irt) + else: + force_sym = symmetries.ApplySymmetryToVector(current_sym, force, super_structure.unit_cell, current_irt) + + fc_aux_basis[index, :] = force_sym.ravel() + + + # We can now compute the force constants in the basis of the displacements + # counter_index = -1 + # for i in range(super_structure.N_atoms): + # if counter_index +1 == nat3: + # break + # for j in range(3): + # if counter_index +1 == nat3: + # break + # disp = np.zeros((super_structure.N_atoms, 3), dtype=np.double) + # disp[i, j] += 1 + # if (i, j) in list_of_calculations: + # # Generate the basis + # force = fc[3*i + j, :].reshape((super_structure.N_atoms, 3)) + + # # Generate the symmetry equivalent displacements + # if timer is not None: + # disp_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, disp, super_structure.unit_cell, irts) + # force_sym = timer.execute_timed_function(symmetries.ApplySymmetriesToVector,symm, force, super_structure.unit_cell, irts) + # else: + # disp_sym = symmetries.ApplySymmetriesToVector(symm, disp, super_structure.unit_cell, irts) + # force_sym = symmetries.ApplySymmetriesToVector(symm, force, super_structure.unit_cell, irts) + + # # Check wether to add or not the newly generated displacements to the space + # for i_sym in range(n_syms): + # v = disp_sym[i_sym, :, :] + # if timer is not None: + # coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), disp_basis) + # else: + # coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), disp_basis) + + # if coeffs is None: + # disp_basis.append(v.ravel()) + # counter_index += 1 + # fc_aux_basis[counter_index, :] = force_sym[i_sym, :, :].ravel() #np.savetxt("OriginalFC.dat", fc, fmt="%10.6f") #np.savetxt("FC_aux_basis.dat", fc_aux_basis, fmt="%10.6f") # Transform back the force constant in the real space - metric_tensor = np.array(disp_basis) + metric_tensor = np.array(displacements) inv_metric_tensor = np.linalg.inv(metric_tensor) fc = inv_metric_tensor.dot(fc_aux_basis)#.dot(inv_metric_tensor.T) #np.savetxt("NewFC.dat", fc, fmt="%10.6f") diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 407a8624..0aac3c42 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -2958,4 +2958,119 @@ def function(s): irts = Settings.GoParallel(function, symmetries) - return irts \ No newline at end of file + return irts + + +def get_force_constants_generators(symmetries, irts, structure, timer=None): + """ + GET FORCE CONSTANTS GENERATORS + ============================== + + Compute a minimal basis for the force constants matrix. + It is very useful for the compression of the force constants matrix, + and to reduce the number of independent displacements that need to be calculated. + + If it is for a supercell dynamical matrix, symmetries and structure must match the supercell. + Note, the basis of the generators is not orthonormal by default. + + It returns both generators and the basis. + Each generator contain the atom index, the cartesian direction and the symmetry index. + The corresponding row of the basis is transformed displacement vector according to the symmetry. + This allow to transform the force constants from the original basis to a more compact one. + + This function is not parallelized and runs only on the master core. + + + Parameters + ---------- + symmetries : list of ndarray(size = (3, 4)) + The array of the symmetries + irts : list of ndarray(size = (structure.N_atoms, ), dtype = np.intc) + The list of the irt array for each symmetry + structure : CC.Structure.Structure() + The structure on which the symmetries are applied + + Results + ------- + generators : list of dict (size = 3*structure.N_atoms) + List of generators. + Each generator is a dictionary with the following keys: + 'sym_index' : int + The index of the symmtry associated to the generator + 'atom_index' : int + The index of the atom associated to the generator + 'direction' : int (0, 1, 2) + The cartesian direction associated to the generator + independent_displacements : list + List of the independent displacements that identify the generators. + basis : ndarray(size = (3*structure.N_atoms, 3*structure.N_atoms), dtype = np.double) + The basis matrix of the generators. + """ + displacements = [] + generators = [] + list_of_calculations = [] + n_syms = len(symmetries) + nat3 = structure.N_atoms * 3 + + if Settings.am_i_the_master(): + for i in range(structure.N_atoms): + for j in range(3): + # Generate the displacement + disp = np.zeros((structure.N_atoms, 3), dtype=np.double) + disp[i, j] += 1 + + #if debug: + # print("Simulating displacement", i, j) + + # Check if the displacement can be decomposed in those already computed + if timer is not None: + coefficients = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, disp.ravel(), displacements) + else: + coefficients = Methods.get_generic_covariant_coefficients(disp.ravel(), displacements) + + #if debug: + # print("The decomposition is:", coefficients) + if coefficients is None: + # The displacement needs to be computed + list_of_calculations.append((i,j)) + + + # Generate the symmetry equivalent displacements + if timer is not None: + disp_sym = timer.execute_timed_function(ApplySymmetriesToVector, symmetries, disp, structure.unit_cell, irts) + else: + disp_sym = ApplySymmetriesToVector(symmetries, disp, structure.unit_cell, irts) + + + # Check wether to add or not the newly generated displacements to the space + for i_sym in range(n_syms): + v = disp_sym[i_sym, :, :] + #if debug: + # print("The symmetry {} gives a vector v = {}".format(i_sym, v)) + if timer is not None: + coeffs = timer.execute_timed_function(Methods.get_generic_covariant_coefficients, v.ravel(), displacements) + else: + coeffs = Methods.get_generic_covariant_coefficients(v.ravel(), displacements) + #if debug: + # print("Is new?", coeffs is None) + if coeffs is None: + displacements.append(v.ravel()) + generators.append({"sym_index": i_sym, "atom_index": i, "direction": j}) + assert len(displacements) <= nat3, "The number of displacements is not correct. Something went wrong." + if len(displacements) == nat3: + break + + # Early exit + if len(displacements) == nat3: + break + + # Early exit + if len(displacements) == nat3: + break + + # Broadcast the displacements to all the processes + displacements = Settings.broadcast(displacements) + list_of_calculations = Settings.broadcast(list_of_calculations) + generators = Settings.broadcast(generators) + + return generators, list_of_calculations, displacements \ No newline at end of file From 87b6e5df85156910456b89d2f7591bad47e86b85 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 15 Feb 2023 11:51:28 +0100 Subject: [PATCH 095/204] Fixed a bug in a test, and also now the timer prints a much better report --- cellconstructor/Phonons.py | 2 +- cellconstructor/Timer.py | 53 ++++++++++++++----- cellconstructor/symmetries.py | 4 +- .../test_au_phonons.py | 2 +- 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index bd9594ae..71e45f73 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4658,7 +4658,7 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= # Doing this in parallel is not possible, because the displacements are not independent # Therefore, we need to compute all the displacements in a single process if timer is not None: - generators, list_of_calculations, displacements = timer.execute_timed_function(symmetries.get_force_constants_generators, symm, irts, super_structure, timer=timer) + generators, list_of_calculations, displacements = timer.execute_timed_function(symmetries.get_force_constants_generators, symm, irts, super_structure) else: generators, list_of_calculations, displacements = symmetries.get_force_constants_generators(symm, irts, super_structure) diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index 10324f2e..f350df34 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -6,7 +6,7 @@ class Timer: - def __init__(self, active = False, print_each = None): + def __init__(self, active=False, print_each=None, level=0): """ This class is used to time functions over several repeats @@ -17,13 +17,18 @@ def __init__(self, active = False, print_each = None): print_each: float Each time a subroutine overrun the following value in seconds print its status. By default None, do not print unless specific requested. + level: int + The level of subtimers. + If 0, This is the principal timer, + if 1, this is a subtimer of the principal timer, etc. """ self.active = active + self.level = level self.timed_subroutines = {} self.print_each = print_each - def add_timer(self, name, value): + def add_timer(self, name, value, timer=None): """ Add a timer to the specific value """ @@ -31,7 +36,7 @@ def add_timer(self, name, value): self.timed_subroutines[name]["time"] += value self.timed_subroutines[name]["counts"] += 1 else: - self.timed_subroutines[name] = {"counts": 1, "time" : value} + self.timed_subroutines[name] = {"counts": 1, "time" : value, "timer" : timer} if self.print_each is not None: #print (self.timed_subroutines[name]["time"]) @@ -43,6 +48,7 @@ def add_timer(self, name, value): self.timed_subroutines[name]["time"] = 0 self.timed_subroutines[name]["counts"] = 0 + def execute_timed_function(self, function, *args, **kwargs): """ Execute the function with the given arguments and keyword arguments and time it. @@ -50,10 +56,20 @@ def execute_timed_function(self, function, *args, **kwargs): """ if self.active: t1 = time.time() - ret = function(*args, **kwargs) + + # Check if the function accept the "timer" keyword argument + new_timer = None + if "timer" in function.__code__.co_varnames and not "timer" in kwargs: + if function.__name__ in self.timed_subroutines: + new_timer = self.timed_subroutines[function.__name__]["timer"] + else: + new_timer = Timer(active=True, print_each=self.print_each, level=self.level+1) + ret = function(*args, timer=new_timer,**kwargs) + else: + ret = function(*args, **kwargs) t2 = time.time() - self.add_timer(function.__name__, t2-t1) + self.add_timer(function.__name__, t2-t1, new_timer) return ret else: return function(*args, **kwargs) @@ -64,7 +80,11 @@ def print_report(self): """ Print the report on timing for each function. """ - print("\n\n" + "="*24 + "\n" + " "*8 + "TIMER REPORT" + " "*8 + "\n" + "="*24 + "\n") + + prefix = " "*4*self.level + + if self.level == 0: + print("\n\n" + "="*24 + "\n" + " "*8 + "TIMER REPORT" + " "*8 + "\n" + "="*24 + "\n") for name in self.timed_subroutines: tt = self.timed_subroutines[name]["time"] @@ -73,15 +93,20 @@ def print_report(self): minutes = int(tt) // 60 tt -= minutes * 60 - print("Function: {}".format(name)) - print("N = {} calls took: {} hours; {} minutes; {:.2f} seconds".format(self.timed_subroutines[name]["counts"], hours, minutes, tt)) - print("Average of {} s per call".format(self.timed_subroutines[name]["time"] / self.timed_subroutines[name]["counts"])) + print("{}Function: {}".format(prefix, name)) + print("{}N = {} calls took: {} hours; {} minutes; {:.2f} seconds".format(prefix, self.timed_subroutines[name]["counts"], hours, minutes, tt)) + print("{}Average of {} s per call".format(prefix, self.timed_subroutines[name]["time"] / self.timed_subroutines[name]["counts"])) + if self.timed_subroutines[name]["timer"] is not None: + print("{}Subroutine report:".format(prefix)) + self.timed_subroutines[name]["timer"].print_report() + print() - print() - print(" END OF TIMER REPORT ") - print("=====================") - print() + if self.level == 0: + print() + print(" END OF TIMER REPORT ") + print("=====================") + print() - \ No newline at end of file + \ No newline at end of file diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 0aac3c42..6919e35e 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -1785,7 +1785,7 @@ def GetIRT(structure, symmetry, timer = Timer.Timer(), debug = False): new_struct.apply_symmetry(symmetry, True) irt = np.array(new_struct.get_equivalent_atoms(n_struct_2), dtype =np.intc) else: - timer.execute_timed_function(new_struct.apply_symmetry, symmetry, True, timer = timer) + timer.execute_timed_function(new_struct.apply_symmetry, symmetry, True) irt = np.array( timer.execute_timed_function(new_struct.get_equivalent_atoms, n_struct_2), dtype =np.intc) return irt @@ -2944,7 +2944,7 @@ def get_symmetry_equivalent_atoms(symmetries, structure, parallel=True, timer=No irts = [] for i, s in enumerate(symmetries): if timer is not None: - irt = timer.execute_timed_function(GetIRT, structure, s, timer=timer) + irt = timer.execute_timed_function(GetIRT, structure, s) else: irt = GetIRT(structure, s, timer=timer) irts.append(irt) diff --git a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py index 9c67f0a1..44c49f71 100644 --- a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py +++ b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py @@ -38,7 +38,7 @@ def test_phonons_finite_displacements(supercell, debug=False): # Get the dynamical matrix using finite displacements dyn = CC.Phonons.compute_phonons_finite_displacements(struct, calc, - supercell=supercell) + supercell=supercell, use_symmetries=False) # Compute the dynamical matrix using the symmetrized dyn2 = CC.Phonons.compute_phonons_finite_displacements_sym(struct, calc, From b4d02ed30dded0ad7fb86808f47b337c13e847ae Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 15 Feb 2023 12:00:44 +0100 Subject: [PATCH 096/204] boh --- cellconstructor/Phonons.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 71e45f73..c654c70e 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4643,8 +4643,10 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= if debug: print("Getting symmetry equivalent atoms") - - irts = symmetries.get_symmetry_equivalent_atoms(symm, super_structure, timer=timer) + if timer is not None: + irts = timer.execute_timed_function(symmetries.get_symmetry_equivalent_atoms, symm, super_structure) + else: + irts = symmetries.get_symmetry_equivalent_atoms(symm, super_structure, timer=timer) #irts = [] #for i, s in enumerate(symm): # if timer is not None: From c74267f1ca998204d4ac345fe3231d6286a77545 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 15 Feb 2023 12:48:18 +0100 Subject: [PATCH 097/204] Speedup on the ApplySymmetryToVector function --- cellconstructor/Phonons.py | 1 + cellconstructor/Settings.py | 34 +- cellconstructor/Timer.py | 29 +- cellconstructor/symmetries.py | 18 +- tests/TestStrainConfiguration/strained_dyn | 1394 ++++++++++---------- 5 files changed, 758 insertions(+), 718 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index c654c70e..95555c47 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -4721,6 +4721,7 @@ def compute_force(indices): fc_aux_basis = np.zeros((nat3, nat3), dtype = np.double) # Compute the auxiliary force basis + # This could exploit parallelization to speedup the calculation for index, gen in enumerate(generators): # Get the symmetry operation current_sym = symm[gen["sym_index"]] diff --git a/cellconstructor/Settings.py b/cellconstructor/Settings.py index fbd5234a..929cb210 100644 --- a/cellconstructor/Settings.py +++ b/cellconstructor/Settings.py @@ -3,6 +3,8 @@ This file keeps in mind common settings that needs to be initialized once. """ import numpy as np +import time +import inspect # The parallelization setup __PARALLEL_TYPE__ = "serial" @@ -154,7 +156,7 @@ def GetNProc(): return __NPROC__ -def GoParallel(function, list_of_inputs, reduce_op = None): +def GoParallel(function, list_of_inputs, reduce_op = None, timer=None): """ GO PARALLEL =========== @@ -190,6 +192,7 @@ def GoParallel(function, list_of_inputs, reduce_op = None): raise NotImplementedError("Error, reduction '{}' not implemented.".format(reduce_op)) # Here we create the poll manually + t1 = time.time() n_proc = GetNProc() rank = get_rank() @@ -209,6 +212,10 @@ def GoParallel(function, list_of_inputs, reduce_op = None): end = start + n_per_proc computing_list = list_of_inputs[start:end] + t2 = time.time() + + if timer is not None: + timer.add_timer("broadcast", t2 - t1) # old version #computing_list = [] @@ -219,21 +226,33 @@ def GoParallel(function, list_of_inputs, reduce_op = None): #print("Rank {} is computing {} elements".format(rank, len(computing_list))) #all_print("Computing:", computing_list) + + kwargs = {} + # Check if function accepts a timer + cmp_timer = None + if "timer" in inspect.getargspec(function).args and timer is not None: + cmp_timer = timer.spawn_child() + kwargs["timer"] = cmp_timer # Perform the reduction if reduce_op == "+": result = 0 for x in computing_list: - result += function(x) + result += function(x, **kwargs) elif reduce_op == "*": result = 1 for x in computing_list: - result *= function(x) + result *= function(x, **kwargs) else: result = [] for x in computing_list: - result.append(function(x)) + result.append(function(x, **kwargs)) + + t3 = time.time() + + if timer is not None: + timer.add_timer("compute", t3 - t2, timer=cmp_timer) # If a reduction must be done, return if reduce_op is not None: @@ -255,6 +274,10 @@ def GoParallel(function, list_of_inputs, reduce_op = None): elif reduce_op == "*": for i in range(1,len(results)): result*= results[i] + + t4 = time.time() + if timer is not None: + timer.add_timer("reduce", t4 - t3) #np.savetxt("result_{}_total.dat".format(rank), result) @@ -265,6 +288,9 @@ def GoParallel(function, list_of_inputs, reduce_op = None): comm = mpi4py.MPI.COMM_WORLD results = comm.allgather(result) + t4 = time.time() + if timer is not None: + timer.add_timer("collect", t4 - t3) # Flatten the list result = [item for sublist in results for item in sublist] diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index f350df34..c58efdd3 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -48,6 +48,9 @@ def add_timer(self, name, value, timer=None): self.timed_subroutines[name]["time"] = 0 self.timed_subroutines[name]["counts"] = 0 + def spawn_child(self): + """Spawn a child timer.""" + return Timer(active=self.active, print_each=self.print_each, level=self.level+1) def execute_timed_function(self, function, *args, **kwargs): """ @@ -63,7 +66,7 @@ def execute_timed_function(self, function, *args, **kwargs): if function.__name__ in self.timed_subroutines: new_timer = self.timed_subroutines[function.__name__]["timer"] else: - new_timer = Timer(active=True, print_each=self.print_each, level=self.level+1) + new_timer = self.spawn_child() ret = function(*args, timer=new_timer,**kwargs) else: ret = function(*args, **kwargs) @@ -76,14 +79,26 @@ def execute_timed_function(self, function, *args, **kwargs): - def print_report(self): + def print_report(self, master_level=0, is_master=False): """ - Print the report on timing for each function. + Print the report on timing for each timer and subtimer contained. + + Parameters + ---------- + master_level: int + The level of the master timer. This is used to print the correct indentation. + is_master: bool + If True, ignore the master_level keyword and assume this timer is the master. + This is equivalent to setting master_level = self.level """ + if is_master: + master_level = self.level + + level = self.level - master_level - prefix = " "*4*self.level + prefix = " "*4*level - if self.level == 0: + if level == 0: print("\n\n" + "="*24 + "\n" + " "*8 + "TIMER REPORT" + " "*8 + "\n" + "="*24 + "\n") for name in self.timed_subroutines: @@ -98,11 +113,11 @@ def print_report(self): print("{}Average of {} s per call".format(prefix, self.timed_subroutines[name]["time"] / self.timed_subroutines[name]["counts"])) if self.timed_subroutines[name]["timer"] is not None: print("{}Subroutine report:".format(prefix)) - self.timed_subroutines[name]["timer"].print_report() + self.timed_subroutines[name]["timer"].print_report(master_level=master_level) print() - if self.level == 0: + if level == 0: print() print(" END OF TIMER REPORT ") print("=====================") diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 6919e35e..2744312c 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -1821,15 +1821,13 @@ def ApplySymmetryToVector(symmetry, vector, unit_cell, irt): nat, dumb = np.shape(vector) work = np.zeros( (nat, 3)) sym = symmetry[:, :3] - - for i in range(nat): - # Pass to crystalline coordinates - v1 = Methods.covariant_coordinates(unit_cell, vector[i, :]) - # Apply the symmetry - w1 = sym.dot(v1) - # Return in cartesian coordinates - work[irt[i], :] = np.einsum("ab,a", unit_cell, w1) - + + v1 = Methods.covariant_coordinates(unit_cell, vector) + w1 = sym.dot(v1.T).T + + # Return in cartesian coordinates + work[irt[:], :] = w1.dot(unit_cell)# unit_cell.T.dot(w1) #np.einsum("ab,a", unit_cell, w1) + return work def ApplySymmetriesToVector(symmetries, vector, unit_cell, irts): @@ -2949,7 +2947,7 @@ def get_symmetry_equivalent_atoms(symmetries, structure, parallel=True, timer=No irt = GetIRT(structure, s, timer=timer) irts.append(irt) else: - def function(s): + def function(s, timer=None): return GetIRT(structure, s, timer=timer) if timer is not None: diff --git a/tests/TestStrainConfiguration/strained_dyn b/tests/TestStrainConfiguration/strained_dyn index d0cfc3f0..7236f701 100644 --- a/tests/TestStrainConfiguration/strained_dyn +++ b/tests/TestStrainConfiguration/strained_dyn @@ -8,718 +8,718 @@ Basis vectors 1 'O ' 14582.1964298742277606 2 'H ' 918.8360549359653078 1 1 0.5839302648000000 0.3319937777999998 0.1132488480000000 - 2 2 0.5839302648000000 0.3320150535599999 0.3843247011600000 + 2 2 0.5839302648000000 0.3320150535600000 0.3843247011600000 3 2 0.5839302648000000 0.0732959209200000 0.0332384636400000 - 4 1 1.1678605296000000 0.6712271367599996 1.7829483982799998 - 5 2 1.3852049017199992 0.5385565359599997 1.8752979972000001 - 6 2 0.9505161586799996 0.5385565359599997 1.8752979972000001 - 7 1 1.1678605296000000 0.6823894577999996 1.0673640780000000 - 8 2 1.1678605296000000 0.6823681820399999 1.3384399323599998 - 9 2 1.1678605296000000 0.9410873158799996 0.9873536936399999 + 4 1 1.1678605296000000 0.6712271367599999 1.7829483982799998 + 5 2 1.3852049017199992 0.5385565359600000 1.8752979972000001 + 6 2 0.9505161586799996 0.5385565359600000 1.8752979972000001 + 7 1 1.1678605296000000 0.6823894577999998 1.0673640780000000 + 8 2 1.1678605296000000 0.6823681820400000 1.3384399323599998 + 9 2 1.1678605296000000 0.9410873158799999 0.9873536936399999 10 1 0.5839302648000000 0.3431560988400000 0.8288331670799999 - 11 2 0.3665858938799999 0.4758266996399999 0.9211827659999999 - 12 2 0.8012746369199997 0.4758266996399998 0.9211827659999999 + 11 2 0.3665858938799999 0.4758266996400000 0.9211827659999999 + 12 2 0.8012746369199997 0.4758266996400000 0.9211827659999999 Dynamical Matrix in cartesian axes q = ( 0.000000000000 0.000000000000 0.000000000000 ) 1 1 - 0.0723775009917373 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000005 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.3831399905936653 0.0000000000000000 0.0800072256509785 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0800072256509785 0.0000000000000000 0.4293434337307697 0.0000000000000000 + 0.0723775009917351 0.0000000000000000 -0.0000000000000008 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000008 0.0000000000000000 0.3831399905936649 0.0000000000000000 0.0800072256509703 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0800072256509703 0.0000000000000000 0.4293434337307701 0.0000000000000000 1 2 - -0.0251057439413780 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0569567699834672 0.0000000000000000 -0.0058150573712186 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 0.0222771411146680 0.0000000000000000 -0.2988598772525951 0.0000000000000000 + -0.0251057439413774 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0569567699834649 0.0000000000000000 -0.0058150573712052 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0222771411146661 0.0000000000000000 -0.2988598772526016 0.0000000000000000 1 3 - -0.0289738345959185 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.2820802915433048 0.0000000000000000 -0.0527306161696213 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0884826303559725 0.0000000000000000 -0.0739447334126281 0.0000000000000000 + -0.0289738345959177 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.2820802915433080 0.0000000000000000 -0.0527306161696256 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0884826303559630 0.0000000000000000 -0.0739447334126226 0.0000000000000000 1 4 - -0.0373686571560741 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0336428001201926 0.0000000000000000 -0.0041894809945765 0.0000000000000000 - -0.0000000000000063 0.0000000000000000 -0.0044397818519279 0.0000000000000000 0.0041303780996326 0.0000000000000000 + -0.0373686571560693 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000009 0.0000000000000000 + 0.0000000000000021 0.0000000000000000 -0.0336428001201841 0.0000000000000000 -0.0041894809945804 0.0000000000000000 + -0.0000000000000010 0.0000000000000000 -0.0044397818519427 0.0000000000000000 0.0041303780996414 0.0000000000000000 1 5 - 0.0079739154089275 0.0000000000000000 -0.0168418597307725 0.0000000000000000 0.0106690755761885 0.0000000000000000 - -0.0100652146645704 0.0000000000000000 -0.0099918936929139 0.0000000000000000 -0.0069122209428995 0.0000000000000000 - -0.0036706343437213 0.0000000000000000 -0.0005259246072887 0.0000000000000000 -0.0156150191112053 0.0000000000000000 + 0.0079739154089248 0.0000000000000000 -0.0168418597307702 0.0000000000000000 0.0106690755761874 0.0000000000000000 + -0.0100652146645693 0.0000000000000000 -0.0099918936929170 0.0000000000000000 -0.0069122209428968 0.0000000000000000 + -0.0036706343437315 0.0000000000000000 -0.0005259246072791 0.0000000000000000 -0.0156150191112110 0.0000000000000000 1 6 - 0.0079739154089276 0.0000000000000000 0.0168418597307724 0.0000000000000000 -0.0106690755761890 0.0000000000000000 - 0.0100652146645703 0.0000000000000000 -0.0099918936929136 0.0000000000000000 -0.0069122209428989 0.0000000000000000 - 0.0036706343437270 0.0000000000000000 -0.0005259246072848 0.0000000000000000 -0.0156150191112072 0.0000000000000000 + 0.0079739154089253 0.0000000000000000 0.0168418597307707 0.0000000000000000 -0.0106690755761879 0.0000000000000000 + 0.0100652146645669 0.0000000000000000 -0.0099918936929185 0.0000000000000000 -0.0069122209428961 0.0000000000000000 + 0.0036706343437324 0.0000000000000000 -0.0005259246072785 0.0000000000000000 -0.0156150191112113 0.0000000000000000 1 7 - 0.0015706027157741 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000005 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0058994142115015 0.0000000000000000 0.0129555088579829 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0129555088579013 0.0000000000000000 -0.0025061456783163 0.0000000000000000 + 0.0015706027157737 0.0000000000000000 -0.0000000000000006 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0058994142114997 0.0000000000000000 0.0129555088579669 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0129555088579112 0.0000000000000000 -0.0025061456783193 0.0000000000000000 1 8 - -0.0018152750012302 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 0.0012476417535537 0.0000000000000000 -0.0078942408876209 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.0002039213450301 0.0000000000000000 0.0145769254785470 0.0000000000000000 + -0.0018152750012303 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0012476417535538 0.0000000000000000 -0.0078942408876043 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0002039213450295 0.0000000000000000 0.0145769254785530 0.0000000000000000 1 9 - -0.0016399265604471 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0035091911501727 0.0000000000000000 -0.0021722504817068 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0074822204968365 0.0000000000000000 0.0003426041600751 0.0000000000000000 + -0.0016399265604471 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0035091911501694 0.0000000000000000 -0.0021722504817081 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0074822204968448 0.0000000000000000 0.0003426041600733 0.0000000000000000 1 10 - 0.0078082955673501 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000058 0.0000000000000000 0.0119074076296487 0.0000000000000000 -0.0034942738523646 0.0000000000000000 - -0.0000000000000043 0.0000000000000000 0.0044778895271552 0.0000000000000000 -0.0367974389513981 0.0000000000000000 + 0.0078082955673487 0.0000000000000000 -0.0000000000000007 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + -0.0000000000000009 0.0000000000000000 0.0119074076296486 0.0000000000000000 -0.0034942738523640 0.0000000000000000 + 0.0000000000000013 0.0000000000000000 0.0044778895271588 0.0000000000000000 -0.0367974389513956 0.0000000000000000 1 11 - -0.0014003952261873 0.0000000000000000 0.0002449744821629 0.0000000000000000 -0.0015206472447125 0.0000000000000000 - -0.0091891495399408 0.0000000000000000 -0.0030108060126852 0.0000000000000000 -0.0014211831836439 0.0000000000000000 - -0.0007217572183650 0.0000000000000000 -0.0035553985811701 0.0000000000000000 -0.0025275585661420 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 0.0002449744821631 0.0000000000000000 -0.0015206472447120 0.0000000000000000 + -0.0091891495399408 0.0000000000000000 -0.0030108060126835 0.0000000000000000 -0.0014211831836429 0.0000000000000000 + -0.0007217572183677 0.0000000000000000 -0.0035553985811712 0.0000000000000000 -0.0025275585661434 0.0000000000000000 1 12 - -0.0014003952261876 0.0000000000000000 -0.0002449744821633 0.0000000000000000 0.0015206472447124 0.0000000000000000 - 0.0091891495399460 0.0000000000000000 -0.0030108060126819 0.0000000000000000 -0.0014211831836424 0.0000000000000000 - 0.0007217572183687 0.0000000000000000 -0.0035553985811676 0.0000000000000000 -0.0025275585661413 0.0000000000000000 + -0.0014003952261865 0.0000000000000000 -0.0002449744821626 0.0000000000000000 0.0015206472447127 0.0000000000000000 + 0.0091891495399413 0.0000000000000000 -0.0030108060126830 0.0000000000000000 -0.0014211831836424 0.0000000000000000 + 0.0007217572183663 0.0000000000000000 -0.0035553985811718 0.0000000000000000 -0.0025275585661437 0.0000000000000000 2 1 - -0.0251057439413780 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000006 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0569567699834672 0.0000000000000000 0.0222771411146680 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0058150573712186 0.0000000000000000 -0.2988598772525951 0.0000000000000000 + -0.0251057439413774 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0569567699834649 0.0000000000000000 0.0222771411146661 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0058150573712052 0.0000000000000000 -0.2988598772526016 0.0000000000000000 2 2 - 0.0352255604087115 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0577498980966757 0.0000000000000000 0.0004642893512939 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0004642893512939 0.0000000000000000 0.2960907478396882 0.0000000000000000 + 0.0352255604087113 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0577498980966727 0.0000000000000000 0.0004642893512924 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0004642893512924 0.0000000000000000 0.2960907478396982 0.0000000000000000 2 3 - 0.0037861455182863 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0103751426308778 0.0000000000000000 -0.0282119025677900 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0049287602283322 0.0000000000000000 -0.0033792838522429 0.0000000000000000 + 0.0037861455182858 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0103751426308780 0.0000000000000000 -0.0282119025677865 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0049287602283434 0.0000000000000000 -0.0033792838522455 0.0000000000000000 2 4 - -0.0149643881777191 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000005 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0085647327830328 0.0000000000000000 0.0044261389355786 0.0000000000000000 - 0.0000000000000059 0.0000000000000000 0.0009466269409799 0.0000000000000000 0.0064890897648134 0.0000000000000000 + -0.0149643881777172 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0085647327830343 0.0000000000000000 0.0044261389355791 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0009466269409928 0.0000000000000000 0.0064890897648047 0.0000000000000000 2 5 - 0.0053960771921629 0.0000000000000000 -0.0027777266316761 0.0000000000000000 -0.0010754919735295 0.0000000000000000 - -0.0041883714492616 0.0000000000000000 0.0037383917967313 0.0000000000000000 -0.0001605357525136 0.0000000000000000 - 0.0052382113260673 0.0000000000000000 0.0007249474944469 0.0000000000000000 -0.0008206821613126 0.0000000000000000 + 0.0053960771921622 0.0000000000000000 -0.0027777266316755 0.0000000000000000 -0.0010754919735292 0.0000000000000000 + -0.0041883714492607 0.0000000000000000 0.0037383917967320 0.0000000000000000 -0.0001605357525143 0.0000000000000000 + 0.0052382113260794 0.0000000000000000 0.0007249474944389 0.0000000000000000 -0.0008206821613074 0.0000000000000000 2 6 - 0.0053960771921629 0.0000000000000000 0.0027777266316758 0.0000000000000000 0.0010754919735288 0.0000000000000000 - 0.0041883714492619 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0001605357525140 0.0000000000000000 - -0.0052382113260725 0.0000000000000000 0.0007249474944436 0.0000000000000000 -0.0008206821613105 0.0000000000000000 + 0.0053960771921623 0.0000000000000000 0.0027777266316758 0.0000000000000000 0.0010754919735293 0.0000000000000000 + 0.0041883714492612 0.0000000000000000 0.0037383917967322 0.0000000000000000 -0.0001605357525144 0.0000000000000000 + -0.0052382113260799 0.0000000000000000 0.0007249474944386 0.0000000000000000 -0.0008206821613072 0.0000000000000000 2 7 - -0.0018152750012303 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0012476417535543 0.0000000000000000 0.0002039213450258 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0078942408875419 0.0000000000000000 0.0145769254785731 0.0000000000000000 + -0.0018152750012296 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0012476417535554 0.0000000000000000 0.0002039213450267 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0078942408875524 0.0000000000000000 0.0145769254785697 0.0000000000000000 2 8 - 0.0036353210827945 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0001181663659067 0.0000000000000000 -0.0026161584162145 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0026161584162183 0.0000000000000000 -0.0221544638345920 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0001181663659071 0.0000000000000000 -0.0026161584162148 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0026161584162181 0.0000000000000000 -0.0221544638345916 0.0000000000000000 2 9 - -0.0006990068039684 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0007453998223720 0.0000000000000000 0.0020862975258871 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0005005588826329 0.0000000000000000 -0.0034474484778466 0.0000000000000000 + -0.0006990068039687 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0007453998223712 0.0000000000000000 0.0020862975258868 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0005005588826243 0.0000000000000000 -0.0034474484778444 0.0000000000000000 2 10 - -0.0158629633765108 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0142572303934415 0.0000000000000000 0.0025026894102782 0.0000000000000000 - 0.0000000000000022 0.0000000000000000 -0.0110402408679930 0.0000000000000000 0.0060798140623739 0.0000000000000000 + -0.0158629633765114 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0142572303934381 0.0000000000000000 0.0025026894102803 0.0000000000000000 + -0.0000000000000013 0.0000000000000000 -0.0110402408679937 0.0000000000000000 0.0060798140623741 0.0000000000000000 2 11 - 0.0025040980237171 0.0000000000000000 -0.0023164619816243 0.0000000000000000 0.0038518265447299 0.0000000000000000 - 0.0006119532508363 0.0000000000000000 0.0011510144726815 0.0000000000000000 -0.0004056725610964 0.0000000000000000 - -0.0017406728581400 0.0000000000000000 0.0039561444257064 0.0000000000000000 0.0031229275970346 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 -0.0023164619816242 0.0000000000000000 0.0038518265447293 0.0000000000000000 + 0.0006119532508347 0.0000000000000000 0.0011510144726797 0.0000000000000000 -0.0004056725610977 0.0000000000000000 + -0.0017406728581402 0.0000000000000000 0.0039561444257060 0.0000000000000000 0.0031229275970346 0.0000000000000000 2 12 - 0.0025040980237169 0.0000000000000000 0.0023164619816238 0.0000000000000000 -0.0038518265447294 0.0000000000000000 - -0.0006119532508367 0.0000000000000000 0.0011510144726812 0.0000000000000000 -0.0004056725610964 0.0000000000000000 - 0.0017406728581383 0.0000000000000000 0.0039561444257052 0.0000000000000000 0.0031229275970341 0.0000000000000000 + 0.0025040980237175 0.0000000000000000 0.0023164619816245 0.0000000000000000 -0.0038518265447295 0.0000000000000000 + -0.0006119532508346 0.0000000000000000 0.0011510144726795 0.0000000000000000 -0.0004056725610978 0.0000000000000000 + 0.0017406728581413 0.0000000000000000 0.0039561444257067 0.0000000000000000 0.0031229275970351 0.0000000000000000 3 1 - -0.0289738345959185 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.2820802915433048 0.0000000000000000 -0.0884826303559725 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0527306161696213 0.0000000000000000 -0.0739447334126281 0.0000000000000000 + -0.0289738345959177 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.2820802915433080 0.0000000000000000 -0.0884826303559630 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0527306161696257 0.0000000000000000 -0.0739447334126226 0.0000000000000000 3 2 - 0.0037861455182863 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0103751426308778 0.0000000000000000 -0.0049287602283322 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0282119025677900 0.0000000000000000 -0.0033792838522429 0.0000000000000000 + 0.0037861455182858 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0103751426308780 0.0000000000000000 -0.0049287602283434 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0282119025677865 0.0000000000000000 -0.0033792838522455 0.0000000000000000 3 3 - 0.0365782981378748 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.2729248902175019 0.0000000000000000 0.0713458205553449 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0713458205553449 0.0000000000000000 0.0798291225288869 0.0000000000000000 + 0.0365782981378746 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.2729248902175054 0.0000000000000000 0.0713458205553467 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0713458205553467 0.0000000000000000 0.0798291225288837 0.0000000000000000 3 4 - -0.0193793176120033 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0128264092257524 0.0000000000000000 0.0093892601393132 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0108019320579850 0.0000000000000000 -0.0127958810116063 0.0000000000000000 + -0.0193793176120021 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0128264092257471 0.0000000000000000 0.0093892601393151 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0108019320579850 0.0000000000000000 -0.0127958810116057 0.0000000000000000 3 5 - 0.0043670482201905 0.0000000000000000 0.0062527546419656 0.0000000000000000 0.0032245610064173 0.0000000000000000 - 0.0073649825438658 0.0000000000000000 -0.0050060184798395 0.0000000000000000 0.0046134194019416 0.0000000000000000 - 0.0069798143243291 0.0000000000000000 -0.0003322634792060 0.0000000000000000 0.0072531804468971 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 0.0062527546419653 0.0000000000000000 0.0032245610064166 0.0000000000000000 + 0.0073649825438626 0.0000000000000000 -0.0050060184798371 0.0000000000000000 0.0046134194019400 0.0000000000000000 + 0.0069798143243267 0.0000000000000000 -0.0003322634792063 0.0000000000000000 0.0072531804468965 0.0000000000000000 3 6 - 0.0043670482201906 0.0000000000000000 -0.0062527546419649 0.0000000000000000 -0.0032245610064164 0.0000000000000000 - -0.0073649825438657 0.0000000000000000 -0.0050060184798391 0.0000000000000000 0.0046134194019415 0.0000000000000000 - -0.0069798143243287 0.0000000000000000 -0.0003322634792062 0.0000000000000000 0.0072531804468966 0.0000000000000000 + 0.0043670482201902 0.0000000000000000 -0.0062527546419651 0.0000000000000000 -0.0032245610064167 0.0000000000000000 + -0.0073649825438616 0.0000000000000000 -0.0050060184798365 0.0000000000000000 0.0046134194019397 0.0000000000000000 + -0.0069798143243270 0.0000000000000000 -0.0003322634792066 0.0000000000000000 0.0072531804468965 0.0000000000000000 3 7 - -0.0016399265604473 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0035091911501668 0.0000000000000000 -0.0074822204969110 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0021722504817096 0.0000000000000000 0.0003426041600554 0.0000000000000000 + -0.0016399265604474 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0035091911501685 0.0000000000000000 -0.0074822204968961 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0021722504817079 0.0000000000000000 0.0003426041600588 0.0000000000000000 3 8 - -0.0006990068039684 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0007453998223720 0.0000000000000000 -0.0005005588825623 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0020862975258870 0.0000000000000000 -0.0034474484778282 0.0000000000000000 + -0.0006990068039681 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0007453998223718 0.0000000000000000 -0.0005005588825771 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778324 0.0000000000000000 3 9 - 0.0025844652016199 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0002706095090055 0.0000000000000000 0.0025129031626719 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0025129031626731 0.0000000000000000 -0.0015754786010481 0.0000000000000000 + 0.0025844652016201 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0002706095090054 0.0000000000000000 0.0025129031626719 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0025129031626725 0.0000000000000000 -0.0015754786010477 0.0000000000000000 3 10 - -0.0001599946965685 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000005 0.0000000000000000 - 0.0000000000000053 0.0000000000000000 0.0004054668963170 0.0000000000000000 0.0101430343307528 0.0000000000000000 - 0.0000000000000016 0.0000000000000000 0.0081775121522225 0.0000000000000000 0.0079899884223502 0.0000000000000000 + -0.0001599946965682 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000017 0.0000000000000000 0.0004054668963155 0.0000000000000000 0.0101430343307504 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0081775121522179 0.0000000000000000 0.0079899884223468 0.0000000000000000 3 11 - -0.0004154624427382 0.0000000000000000 0.0012439381262117 0.0000000000000000 0.0022873936225500 0.0000000000000000 - 0.0127928624961786 0.0000000000000000 -0.0007025897616810 0.0000000000000000 -0.0006118410528871 0.0000000000000000 - 0.0050585024151230 0.0000000000000000 -0.0031456369018478 0.0000000000000000 -0.0037626256179474 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225502 0.0000000000000000 + 0.0127928624961799 0.0000000000000000 -0.0007025897616815 0.0000000000000000 -0.0006118410528876 0.0000000000000000 + 0.0050585024151256 0.0000000000000000 -0.0031456369018455 0.0000000000000000 -0.0037626256179457 0.0000000000000000 3 12 - -0.0004154624427382 0.0000000000000000 -0.0012439381262110 0.0000000000000000 -0.0022873936225507 0.0000000000000000 - -0.0127928624961835 0.0000000000000000 -0.0007025897616839 0.0000000000000000 -0.0006118410528890 0.0000000000000000 - -0.0050585024151244 0.0000000000000000 -0.0031456369018485 0.0000000000000000 -0.0037626256179478 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0012439381262114 0.0000000000000000 -0.0022873936225504 0.0000000000000000 + -0.0127928624961811 0.0000000000000000 -0.0007025897616820 0.0000000000000000 -0.0006118410528880 0.0000000000000000 + -0.0050585024151258 0.0000000000000000 -0.0031456369018459 0.0000000000000000 -0.0037626256179460 0.0000000000000000 4 1 - -0.0373686571560741 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000063 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0336428001201926 0.0000000000000000 -0.0044397818519279 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0041894809945765 0.0000000000000000 0.0041303780996326 0.0000000000000000 + -0.0373686571560693 0.0000000000000000 0.0000000000000021 0.0000000000000000 -0.0000000000000010 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0336428001201841 0.0000000000000000 -0.0044397818519427 0.0000000000000000 + 0.0000000000000009 0.0000000000000000 -0.0041894809945804 0.0000000000000000 0.0041303780996414 0.0000000000000000 4 2 - -0.0149643881777191 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000059 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0085647327830328 0.0000000000000000 0.0009466269409799 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0044261389355786 0.0000000000000000 0.0064890897648134 0.0000000000000000 + -0.0149643881777172 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0085647327830343 0.0000000000000000 0.0009466269409928 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0044261389355791 0.0000000000000000 0.0064890897648047 0.0000000000000000 4 3 - -0.0193793176120033 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 0.0128264092257524 0.0000000000000000 0.0108019320579850 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0093892601393133 0.0000000000000000 -0.0127958810116063 0.0000000000000000 + -0.0193793176120021 0.0000000000000000 -0.0000000000000005 0.0000000000000000 0.0000000000000005 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0128264092257471 0.0000000000000000 0.0108019320579850 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0093892601393151 0.0000000000000000 -0.0127958810116057 0.0000000000000000 4 4 - 0.4834443802759824 0.0000000000000000 0.0000000000000025 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - 0.0000000000000025 0.0000000000000000 0.2588422264936672 0.0000000000000000 -0.1308110718530735 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.1308110718530735 0.0000000000000000 0.1639030178691405 0.0000000000000000 + 0.4834443802759195 0.0000000000000000 0.0000000000000036 0.0000000000000000 -0.0000000000000028 0.0000000000000000 + 0.0000000000000036 0.0000000000000000 0.2588422264936724 0.0000000000000000 -0.1308110718530787 0.0000000000000000 + -0.0000000000000028 0.0000000000000000 -0.1308110718530787 0.0000000000000000 0.1639030178691444 0.0000000000000000 4 5 - -0.2042620382021099 0.0000000000000000 0.1111612914471668 0.0000000000000000 -0.0678004081048736 0.0000000000000000 - 0.0961493426419429 0.0000000000000000 -0.1150790588758525 0.0000000000000000 0.0626077946132204 0.0000000000000000 - -0.0680988033808428 0.0000000000000000 0.0633030715249498 0.0000000000000000 -0.0673384314526837 0.0000000000000000 + -0.2042620382020801 0.0000000000000000 0.1111612914471485 0.0000000000000000 -0.0678004081048618 0.0000000000000000 + 0.0961493426419364 0.0000000000000000 -0.1150790588758553 0.0000000000000000 0.0626077946132234 0.0000000000000000 + -0.0680988033808387 0.0000000000000000 0.0633030715249527 0.0000000000000000 -0.0673384314526849 0.0000000000000000 4 6 - -0.2042620382021122 0.0000000000000000 -0.1111612914471684 0.0000000000000000 0.0678004081048743 0.0000000000000000 - -0.0961493426419451 0.0000000000000000 -0.1150790588758535 0.0000000000000000 0.0626077946132218 0.0000000000000000 - 0.0680988033808430 0.0000000000000000 0.0633030715249508 0.0000000000000000 -0.0673384314526835 0.0000000000000000 + -0.2042620382020851 0.0000000000000000 -0.1111612914471518 0.0000000000000000 0.0678004081048640 0.0000000000000000 + -0.0961493426419400 0.0000000000000000 -0.1150790588758578 0.0000000000000000 0.0626077946132245 0.0000000000000000 + 0.0680988033808413 0.0000000000000000 0.0633030715249539 0.0000000000000000 -0.0673384314526859 0.0000000000000000 4 7 - 0.0078082955673491 0.0000000000000000 0.0000000000000043 0.0000000000000000 -0.0000000000000099 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0119074076296680 0.0000000000000000 -0.0044778895271169 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0034942738523487 0.0000000000000000 -0.0367974389514246 0.0000000000000000 + 0.0078082955673486 0.0000000000000000 0.0000000000000119 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0119074076296613 0.0000000000000000 -0.0044778895271094 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0034942738523531 0.0000000000000000 -0.0367974389514289 0.0000000000000000 4 8 - -0.0158629633765105 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000077 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0142572303934424 0.0000000000000000 0.0110402408679523 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 -0.0025026894102775 0.0000000000000000 0.0060798140624046 0.0000000000000000 + -0.0158629633765100 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000041 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0142572303934455 0.0000000000000000 0.0110402408679503 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0025026894102756 0.0000000000000000 0.0060798140624053 0.0000000000000000 4 9 - -0.0001599946965686 0.0000000000000000 -0.0000000000000031 0.0000000000000000 0.0000000000000010 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0004054668962976 0.0000000000000000 -0.0081775121522166 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0101430343307356 0.0000000000000000 0.0079899884223450 0.0000000000000000 + -0.0001599946965691 0.0000000000000000 -0.0000000000000107 0.0000000000000000 0.0000000000000032 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0004054668963072 0.0000000000000000 -0.0081775121522237 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0101430343307420 0.0000000000000000 0.0079899884223495 0.0000000000000000 4 10 - 0.0039008143595918 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000010 0.0000000000000000 -0.0008485805837920 0.0000000000000000 -0.0030686652718427 0.0000000000000000 - 0.0000000000000009 0.0000000000000000 0.0030686652718384 0.0000000000000000 -0.0082838582595766 0.0000000000000000 + 0.0039008143595921 0.0000000000000000 0.0000000000000036 0.0000000000000000 0.0000000000000022 0.0000000000000000 + -0.0000000000000011 0.0000000000000000 -0.0008485805837898 0.0000000000000000 -0.0030686652718417 0.0000000000000000 + 0.0000000000000018 0.0000000000000000 0.0030686652718395 0.0000000000000000 -0.0082838582595758 0.0000000000000000 4 11 - 0.0005529569781391 0.0000000000000000 0.0006881224323696 0.0000000000000000 0.0009938270034989 0.0000000000000000 - -0.0004060563613288 0.0000000000000000 0.0017449768597158 0.0000000000000000 0.0014852637978359 0.0000000000000000 - -0.0028171359308498 0.0000000000000000 0.0003308975272952 0.0000000000000000 0.0019808748951325 0.0000000000000000 + 0.0005529569781427 0.0000000000000000 0.0006881224323673 0.0000000000000000 0.0009938270034980 0.0000000000000000 + -0.0004060563613284 0.0000000000000000 0.0017449768597155 0.0000000000000000 0.0014852637978348 0.0000000000000000 + -0.0028171359308493 0.0000000000000000 0.0003308975272946 0.0000000000000000 0.0019808748951319 0.0000000000000000 4 12 - 0.0005529569781400 0.0000000000000000 -0.0006881224323686 0.0000000000000000 -0.0009938270034983 0.0000000000000000 - 0.0004060563613293 0.0000000000000000 0.0017449768597167 0.0000000000000000 0.0014852637978358 0.0000000000000000 - 0.0028171359308487 0.0000000000000000 0.0003308975272945 0.0000000000000000 0.0019808748951313 0.0000000000000000 + 0.0005529569781372 0.0000000000000000 -0.0006881224323706 0.0000000000000000 -0.0009938270034998 0.0000000000000000 + 0.0004060563613291 0.0000000000000000 0.0017449768597162 0.0000000000000000 0.0014852637978353 0.0000000000000000 + 0.0028171359308479 0.0000000000000000 0.0003308975272938 0.0000000000000000 0.0019808748951319 0.0000000000000000 5 1 - 0.0079739154089275 0.0000000000000000 -0.0100652146645704 0.0000000000000000 -0.0036706343437213 0.0000000000000000 - -0.0168418597307725 0.0000000000000000 -0.0099918936929139 0.0000000000000000 -0.0005259246072887 0.0000000000000000 - 0.0106690755761885 0.0000000000000000 -0.0069122209428995 0.0000000000000000 -0.0156150191112053 0.0000000000000000 + 0.0079739154089248 0.0000000000000000 -0.0100652146645693 0.0000000000000000 -0.0036706343437315 0.0000000000000000 + -0.0168418597307702 0.0000000000000000 -0.0099918936929170 0.0000000000000000 -0.0005259246072791 0.0000000000000000 + 0.0106690755761874 0.0000000000000000 -0.0069122209428968 0.0000000000000000 -0.0156150191112110 0.0000000000000000 5 2 - 0.0053960771921629 0.0000000000000000 -0.0041883714492616 0.0000000000000000 0.0052382113260673 0.0000000000000000 - -0.0027777266316761 0.0000000000000000 0.0037383917967313 0.0000000000000000 0.0007249474944469 0.0000000000000000 - -0.0010754919735295 0.0000000000000000 -0.0001605357525136 0.0000000000000000 -0.0008206821613126 0.0000000000000000 + 0.0053960771921622 0.0000000000000000 -0.0041883714492607 0.0000000000000000 0.0052382113260794 0.0000000000000000 + -0.0027777266316755 0.0000000000000000 0.0037383917967320 0.0000000000000000 0.0007249474944389 0.0000000000000000 + -0.0010754919735292 0.0000000000000000 -0.0001605357525143 0.0000000000000000 -0.0008206821613074 0.0000000000000000 5 3 - 0.0043670482201905 0.0000000000000000 0.0073649825438658 0.0000000000000000 0.0069798143243291 0.0000000000000000 - 0.0062527546419656 0.0000000000000000 -0.0050060184798395 0.0000000000000000 -0.0003322634792060 0.0000000000000000 - 0.0032245610064173 0.0000000000000000 0.0046134194019416 0.0000000000000000 0.0072531804468971 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 0.0073649825438626 0.0000000000000000 0.0069798143243267 0.0000000000000000 + 0.0062527546419653 0.0000000000000000 -0.0050060184798371 0.0000000000000000 -0.0003322634792063 0.0000000000000000 + 0.0032245610064166 0.0000000000000000 0.0046134194019400 0.0000000000000000 0.0072531804468965 0.0000000000000000 5 4 - -0.2042620382021099 0.0000000000000000 0.0961493426419429 0.0000000000000000 -0.0680988033808428 0.0000000000000000 - 0.1111612914471668 0.0000000000000000 -0.1150790588758525 0.0000000000000000 0.0633030715249498 0.0000000000000000 - -0.0678004081048736 0.0000000000000000 0.0626077946132204 0.0000000000000000 -0.0673384314526837 0.0000000000000000 + -0.2042620382020801 0.0000000000000000 0.0961493426419364 0.0000000000000000 -0.0680988033808387 0.0000000000000000 + 0.1111612914471485 0.0000000000000000 -0.1150790588758553 0.0000000000000000 0.0633030715249527 0.0000000000000000 + -0.0678004081048618 0.0000000000000000 0.0626077946132234 0.0000000000000000 -0.0673384314526849 0.0000000000000000 5 5 - 0.2174594979186275 0.0000000000000000 -0.0954682304260194 0.0000000000000000 0.0600636707989548 0.0000000000000000 - -0.0954682304260194 0.0000000000000000 0.1104252604741422 0.0000000000000000 -0.0503426131734402 0.0000000000000000 - 0.0600636707989547 0.0000000000000000 -0.0503426131734401 0.0000000000000000 0.0677190190410537 0.0000000000000000 + 0.2174594979186155 0.0000000000000000 -0.0954682304260074 0.0000000000000000 0.0600636707989466 0.0000000000000000 + -0.0954682304260074 0.0000000000000000 0.1104252604741381 0.0000000000000000 -0.0503426131734388 0.0000000000000000 + 0.0600636707989466 0.0000000000000000 -0.0503426131734388 0.0000000000000000 0.0677190190410523 0.0000000000000000 5 6 - -0.0299583471230443 0.0000000000000000 0.0025306649736035 0.0000000000000000 0.0001964280885695 0.0000000000000000 - -0.0025306649736033 0.0000000000000000 0.0189330240079849 0.0000000000000000 -0.0130002466230954 0.0000000000000000 - -0.0001964280885694 0.0000000000000000 -0.0130002466230956 0.0000000000000000 0.0113735279572496 0.0000000000000000 + -0.0299583471230600 0.0000000000000000 0.0025306649735985 0.0000000000000000 0.0001964280885721 0.0000000000000000 + -0.0025306649735983 0.0000000000000000 0.0189330240079919 0.0000000000000000 -0.0130002466231003 0.0000000000000000 + -0.0001964280885724 0.0000000000000000 -0.0130002466231002 0.0000000000000000 0.0113735279572527 0.0000000000000000 5 7 - -0.0014003952261863 0.0000000000000000 -0.0091891495399323 0.0000000000000000 0.0007217572183987 0.0000000000000000 - 0.0002449744821628 0.0000000000000000 -0.0030108060126917 0.0000000000000000 0.0035553985811469 0.0000000000000000 - 0.0015206472447127 0.0000000000000000 0.0014211831836480 0.0000000000000000 -0.0025275585661281 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 -0.0091891495399441 0.0000000000000000 0.0007217572183957 0.0000000000000000 + 0.0002449744821626 0.0000000000000000 -0.0030108060126875 0.0000000000000000 0.0035553985811456 0.0000000000000000 + 0.0015206472447122 0.0000000000000000 0.0014211831836458 0.0000000000000000 -0.0025275585661272 0.0000000000000000 5 8 - 0.0025040980237169 0.0000000000000000 0.0006119532508360 0.0000000000000000 0.0017406728581048 0.0000000000000000 - -0.0023164619816242 0.0000000000000000 0.0011510144726821 0.0000000000000000 -0.0039561444256822 0.0000000000000000 - -0.0038518265447300 0.0000000000000000 0.0004056725610963 0.0000000000000000 0.0031229275970200 0.0000000000000000 + 0.0025040980237166 0.0000000000000000 0.0006119532508385 0.0000000000000000 0.0017406728581087 0.0000000000000000 + -0.0023164619816236 0.0000000000000000 0.0011510144726836 0.0000000000000000 -0.0039561444256845 0.0000000000000000 + -0.0038518265447296 0.0000000000000000 0.0004056725610949 0.0000000000000000 0.0031229275970211 0.0000000000000000 5 9 - -0.0004154624427382 0.0000000000000000 0.0127928624961687 0.0000000000000000 -0.0050585024151197 0.0000000000000000 - 0.0012439381262113 0.0000000000000000 -0.0007025897616739 0.0000000000000000 0.0031456369018453 0.0000000000000000 - -0.0022873936225499 0.0000000000000000 0.0006118410528823 0.0000000000000000 -0.0037626256179460 0.0000000000000000 + -0.0004154624427379 0.0000000000000000 0.0127928624961793 0.0000000000000000 -0.0050585024151207 0.0000000000000000 + 0.0012439381262113 0.0000000000000000 -0.0007025897616796 0.0000000000000000 0.0031456369018495 0.0000000000000000 + -0.0022873936225501 0.0000000000000000 0.0006118410528863 0.0000000000000000 -0.0037626256179486 0.0000000000000000 5 10 - 0.0005529569781392 0.0000000000000000 -0.0004060563613284 0.0000000000000000 0.0028171359308478 0.0000000000000000 - 0.0006881224323695 0.0000000000000000 0.0017449768597154 0.0000000000000000 -0.0003308975272938 0.0000000000000000 - -0.0009938270034988 0.0000000000000000 -0.0014852637978357 0.0000000000000000 0.0019808748951321 0.0000000000000000 + 0.0005529569781391 0.0000000000000000 -0.0004060563613305 0.0000000000000000 0.0028171359308453 0.0000000000000000 + 0.0006881224323696 0.0000000000000000 0.0017449768597158 0.0000000000000000 -0.0003308975272935 0.0000000000000000 + -0.0009938270034991 0.0000000000000000 -0.0014852637978356 0.0000000000000000 0.0019808748951309 0.0000000000000000 5 11 - -0.0001947154534063 0.0000000000000000 0.0001055444019334 0.0000000000000000 -0.0008285855530534 0.0000000000000000 - 0.0001055444019335 0.0000000000000000 -0.0022624521874642 0.0000000000000000 -0.0020902638812480 0.0000000000000000 - 0.0008285855530534 0.0000000000000000 0.0020902638812482 0.0000000000000000 0.0008479800149230 0.0000000000000000 + -0.0001947154534084 0.0000000000000000 0.0001055444019346 0.0000000000000000 -0.0008285855530526 0.0000000000000000 + 0.0001055444019350 0.0000000000000000 -0.0022624521874647 0.0000000000000000 -0.0020902638812477 0.0000000000000000 + 0.0008285855530526 0.0000000000000000 0.0020902638812482 0.0000000000000000 0.0008479800149238 0.0000000000000000 5 12 - -0.0020226399972399 0.0000000000000000 -0.0002383182140785 0.0000000000000000 -0.0001011648438935 0.0000000000000000 - 0.0002383182140784 0.0000000000000000 0.0000601515309633 0.0000000000000000 -0.0001507007232538 0.0000000000000000 - -0.0001011648438937 0.0000000000000000 0.0001507007232539 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972382 0.0000000000000000 -0.0002383182140775 0.0000000000000000 -0.0001011648438928 0.0000000000000000 + 0.0002383182140771 0.0000000000000000 0.0000601515309627 0.0000000000000000 -0.0001507007232539 0.0000000000000000 + -0.0001011648438929 0.0000000000000000 0.0001507007232542 0.0000000000000000 -0.0022331838997248 0.0000000000000000 6 1 - 0.0079739154089276 0.0000000000000000 0.0100652146645703 0.0000000000000000 0.0036706343437270 0.0000000000000000 - 0.0168418597307724 0.0000000000000000 -0.0099918936929136 0.0000000000000000 -0.0005259246072848 0.0000000000000000 - -0.0106690755761890 0.0000000000000000 -0.0069122209428989 0.0000000000000000 -0.0156150191112072 0.0000000000000000 + 0.0079739154089253 0.0000000000000000 0.0100652146645669 0.0000000000000000 0.0036706343437324 0.0000000000000000 + 0.0168418597307707 0.0000000000000000 -0.0099918936929185 0.0000000000000000 -0.0005259246072785 0.0000000000000000 + -0.0106690755761879 0.0000000000000000 -0.0069122209428961 0.0000000000000000 -0.0156150191112113 0.0000000000000000 6 2 - 0.0053960771921629 0.0000000000000000 0.0041883714492619 0.0000000000000000 -0.0052382113260725 0.0000000000000000 - 0.0027777266316758 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0007249474944436 0.0000000000000000 - 0.0010754919735288 0.0000000000000000 -0.0001605357525140 0.0000000000000000 -0.0008206821613105 0.0000000000000000 + 0.0053960771921623 0.0000000000000000 0.0041883714492612 0.0000000000000000 -0.0052382113260799 0.0000000000000000 + 0.0027777266316758 0.0000000000000000 0.0037383917967322 0.0000000000000000 0.0007249474944386 0.0000000000000000 + 0.0010754919735293 0.0000000000000000 -0.0001605357525144 0.0000000000000000 -0.0008206821613072 0.0000000000000000 6 3 - 0.0043670482201906 0.0000000000000000 -0.0073649825438657 0.0000000000000000 -0.0069798143243287 0.0000000000000000 - -0.0062527546419649 0.0000000000000000 -0.0050060184798391 0.0000000000000000 -0.0003322634792062 0.0000000000000000 - -0.0032245610064164 0.0000000000000000 0.0046134194019415 0.0000000000000000 0.0072531804468966 0.0000000000000000 + 0.0043670482201902 0.0000000000000000 -0.0073649825438616 0.0000000000000000 -0.0069798143243270 0.0000000000000000 + -0.0062527546419651 0.0000000000000000 -0.0050060184798365 0.0000000000000000 -0.0003322634792066 0.0000000000000000 + -0.0032245610064167 0.0000000000000000 0.0046134194019397 0.0000000000000000 0.0072531804468965 0.0000000000000000 6 4 - -0.2042620382021122 0.0000000000000000 -0.0961493426419451 0.0000000000000000 0.0680988033808430 0.0000000000000000 - -0.1111612914471684 0.0000000000000000 -0.1150790588758535 0.0000000000000000 0.0633030715249508 0.0000000000000000 - 0.0678004081048743 0.0000000000000000 0.0626077946132218 0.0000000000000000 -0.0673384314526835 0.0000000000000000 + -0.2042620382020851 0.0000000000000000 -0.0961493426419400 0.0000000000000000 0.0680988033808413 0.0000000000000000 + -0.1111612914471518 0.0000000000000000 -0.1150790588758578 0.0000000000000000 0.0633030715249539 0.0000000000000000 + 0.0678004081048640 0.0000000000000000 0.0626077946132245 0.0000000000000000 -0.0673384314526859 0.0000000000000000 6 5 - -0.0299583471230443 0.0000000000000000 -0.0025306649736033 0.0000000000000000 -0.0001964280885694 0.0000000000000000 - 0.0025306649736035 0.0000000000000000 0.0189330240079849 0.0000000000000000 -0.0130002466230956 0.0000000000000000 - 0.0001964280885695 0.0000000000000000 -0.0130002466230954 0.0000000000000000 0.0113735279572496 0.0000000000000000 + -0.0299583471230600 0.0000000000000000 -0.0025306649735983 0.0000000000000000 -0.0001964280885724 0.0000000000000000 + 0.0025306649735985 0.0000000000000000 0.0189330240079919 0.0000000000000000 -0.0130002466231001 0.0000000000000000 + 0.0001964280885721 0.0000000000000000 -0.0130002466231003 0.0000000000000000 0.0113735279572527 0.0000000000000000 6 6 - 0.2174594979186291 0.0000000000000000 0.0954682304260206 0.0000000000000000 -0.0600636707989554 0.0000000000000000 - 0.0954682304260207 0.0000000000000000 0.1104252604741425 0.0000000000000000 -0.0503426131734413 0.0000000000000000 - -0.0600636707989554 0.0000000000000000 -0.0503426131734413 0.0000000000000000 0.0677190190410534 0.0000000000000000 + 0.2174594979186204 0.0000000000000000 0.0954682304260104 0.0000000000000000 -0.0600636707989488 0.0000000000000000 + 0.0954682304260104 0.0000000000000000 0.1104252604741404 0.0000000000000000 -0.0503426131734398 0.0000000000000000 + -0.0600636707989488 0.0000000000000000 -0.0503426131734398 0.0000000000000000 0.0677190190410532 0.0000000000000000 6 7 - -0.0014003952261869 0.0000000000000000 0.0091891495399289 0.0000000000000000 -0.0007217572183899 0.0000000000000000 - -0.0002449744821626 0.0000000000000000 -0.0030108060126935 0.0000000000000000 0.0035553985811520 0.0000000000000000 - -0.0015206472447122 0.0000000000000000 0.0014211831836500 0.0000000000000000 -0.0025275585661319 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 0.0091891495399334 0.0000000000000000 -0.0007217572183955 0.0000000000000000 + -0.0002449744821627 0.0000000000000000 -0.0030108060126942 0.0000000000000000 0.0035553985811455 0.0000000000000000 + -0.0015206472447126 0.0000000000000000 0.0014211831836497 0.0000000000000000 -0.0025275585661270 0.0000000000000000 6 8 - 0.0025040980237169 0.0000000000000000 -0.0006119532508360 0.0000000000000000 -0.0017406728581117 0.0000000000000000 - 0.0023164619816236 0.0000000000000000 0.0011510144726815 0.0000000000000000 -0.0039561444256864 0.0000000000000000 - 0.0038518265447292 0.0000000000000000 0.0004056725610959 0.0000000000000000 0.0031229275970225 0.0000000000000000 + 0.0025040980237166 0.0000000000000000 -0.0006119532508381 0.0000000000000000 -0.0017406728581050 0.0000000000000000 + 0.0023164619816238 0.0000000000000000 0.0011510144726837 0.0000000000000000 -0.0039561444256823 0.0000000000000000 + 0.0038518265447298 0.0000000000000000 0.0004056725610949 0.0000000000000000 0.0031229275970198 0.0000000000000000 6 9 - -0.0004154624427382 0.0000000000000000 -0.0127928624961664 0.0000000000000000 0.0050585024151189 0.0000000000000000 - -0.0012439381262112 0.0000000000000000 -0.0007025897616722 0.0000000000000000 0.0031456369018453 0.0000000000000000 - 0.0022873936225501 0.0000000000000000 0.0006118410528815 0.0000000000000000 -0.0037626256179454 0.0000000000000000 + -0.0004154624427379 0.0000000000000000 -0.0127928624961698 0.0000000000000000 0.0050585024151178 0.0000000000000000 + -0.0012439381262112 0.0000000000000000 -0.0007025897616736 0.0000000000000000 0.0031456369018480 0.0000000000000000 + 0.0022873936225502 0.0000000000000000 0.0006118410528826 0.0000000000000000 -0.0037626256179476 0.0000000000000000 6 10 - 0.0005529569781417 0.0000000000000000 0.0004060563613285 0.0000000000000000 -0.0028171359308475 0.0000000000000000 - -0.0006881224323676 0.0000000000000000 0.0017449768597156 0.0000000000000000 -0.0003308975272941 0.0000000000000000 - 0.0009938270034978 0.0000000000000000 -0.0014852637978352 0.0000000000000000 0.0019808748951311 0.0000000000000000 + 0.0005529569781416 0.0000000000000000 0.0004060563613270 0.0000000000000000 -0.0028171359308475 0.0000000000000000 + -0.0006881224323674 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0003308975272948 0.0000000000000000 + 0.0009938270034978 0.0000000000000000 -0.0014852637978346 0.0000000000000000 0.0019808748951320 0.0000000000000000 6 11 - -0.0020226399972403 0.0000000000000000 0.0002383182140788 0.0000000000000000 0.0001011648438937 0.0000000000000000 - -0.0002383182140788 0.0000000000000000 0.0000601515309635 0.0000000000000000 -0.0001507007232539 0.0000000000000000 - 0.0001011648438940 0.0000000000000000 0.0001507007232536 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972419 0.0000000000000000 0.0002383182140798 0.0000000000000000 0.0001011648438941 0.0000000000000000 + -0.0002383182140796 0.0000000000000000 0.0000601515309644 0.0000000000000000 -0.0001507007232528 0.0000000000000000 + 0.0001011648438943 0.0000000000000000 0.0001507007232535 0.0000000000000000 -0.0022331838997253 0.0000000000000000 6 12 - -0.0001947154534082 0.0000000000000000 -0.0001055444019347 0.0000000000000000 0.0008285855530525 0.0000000000000000 - -0.0001055444019346 0.0000000000000000 -0.0022624521874654 0.0000000000000000 -0.0020902638812481 0.0000000000000000 - -0.0008285855530527 0.0000000000000000 0.0020902638812481 0.0000000000000000 0.0008479800149244 0.0000000000000000 + -0.0001947154534065 0.0000000000000000 -0.0001055444019336 0.0000000000000000 0.0008285855530534 0.0000000000000000 + -0.0001055444019342 0.0000000000000000 -0.0022624521874644 0.0000000000000000 -0.0020902638812476 0.0000000000000000 + -0.0008285855530532 0.0000000000000000 0.0020902638812481 0.0000000000000000 0.0008479800149232 0.0000000000000000 7 1 - 0.0015706027157741 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0058994142115015 0.0000000000000000 -0.0129555088579013 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0129555088579829 0.0000000000000000 -0.0025061456783163 0.0000000000000000 + 0.0015706027157737 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0058994142114997 0.0000000000000000 -0.0129555088579112 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0129555088579669 0.0000000000000000 -0.0025061456783193 0.0000000000000000 7 2 - -0.0018152750012303 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0012476417535543 0.0000000000000000 0.0078942408875419 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0002039213450258 0.0000000000000000 0.0145769254785730 0.0000000000000000 + -0.0018152750012296 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0012476417535554 0.0000000000000000 0.0078942408875524 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0002039213450267 0.0000000000000000 0.0145769254785696 0.0000000000000000 7 3 - -0.0016399265604473 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0035091911501668 0.0000000000000000 0.0021722504817096 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0074822204969110 0.0000000000000000 0.0003426041600554 0.0000000000000000 + -0.0016399265604474 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0035091911501685 0.0000000000000000 0.0021722504817079 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0074822204968961 0.0000000000000000 0.0003426041600588 0.0000000000000000 7 4 - 0.0078082955673491 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000043 0.0000000000000000 0.0119074076296680 0.0000000000000000 0.0034942738523488 0.0000000000000000 - -0.0000000000000099 0.0000000000000000 -0.0044778895271169 0.0000000000000000 -0.0367974389514246 0.0000000000000000 + 0.0078082955673485 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000006 0.0000000000000000 + 0.0000000000000119 0.0000000000000000 0.0119074076296613 0.0000000000000000 0.0034942738523531 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0044778895271094 0.0000000000000000 -0.0367974389514289 0.0000000000000000 7 5 - -0.0014003952261863 0.0000000000000000 0.0002449744821628 0.0000000000000000 0.0015206472447127 0.0000000000000000 - -0.0091891495399323 0.0000000000000000 -0.0030108060126917 0.0000000000000000 0.0014211831836480 0.0000000000000000 - 0.0007217572183987 0.0000000000000000 0.0035553985811469 0.0000000000000000 -0.0025275585661281 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 0.0002449744821626 0.0000000000000000 0.0015206472447122 0.0000000000000000 + -0.0091891495399442 0.0000000000000000 -0.0030108060126875 0.0000000000000000 0.0014211831836458 0.0000000000000000 + 0.0007217572183957 0.0000000000000000 0.0035553985811456 0.0000000000000000 -0.0025275585661272 0.0000000000000000 7 6 - -0.0014003952261869 0.0000000000000000 -0.0002449744821626 0.0000000000000000 -0.0015206472447122 0.0000000000000000 - 0.0091891495399289 0.0000000000000000 -0.0030108060126935 0.0000000000000000 0.0014211831836500 0.0000000000000000 - -0.0007217572183899 0.0000000000000000 0.0035553985811520 0.0000000000000000 -0.0025275585661319 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 -0.0002449744821627 0.0000000000000000 -0.0015206472447126 0.0000000000000000 + 0.0091891495399334 0.0000000000000000 -0.0030108060126942 0.0000000000000000 0.0014211831836497 0.0000000000000000 + -0.0007217572183955 0.0000000000000000 0.0035553985811455 0.0000000000000000 -0.0025275585661270 0.0000000000000000 7 7 - 0.0723775009917343 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.3831399905936640 0.0000000000000000 -0.0800072256509050 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0800072256509050 0.0000000000000000 0.4293434337307372 0.0000000000000000 + 0.0723775009917376 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.3831399905936620 0.0000000000000000 -0.0800072256509100 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0800072256509100 0.0000000000000000 0.4293434337307315 0.0000000000000000 7 8 - -0.0251057439413776 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0569567699834670 0.0000000000000000 0.0058150573711444 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0222771411146711 0.0000000000000000 -0.2988598772525884 0.0000000000000000 + -0.0251057439413773 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0569567699834691 0.0000000000000000 0.0058150573711528 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0222771411146718 0.0000000000000000 -0.2988598772525805 0.0000000000000000 7 9 - -0.0289738345959176 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.2820802915433103 0.0000000000000000 0.0527306161696246 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0884826303559051 0.0000000000000000 -0.0739447334126106 0.0000000000000000 + -0.0289738345959182 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.2820802915433079 0.0000000000000000 0.0527306161696215 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0884826303559113 0.0000000000000000 -0.0739447334126136 0.0000000000000000 7 10 - -0.0373686571560746 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000006 0.0000000000000000 - 0.0000000000000018 0.0000000000000000 -0.0336428001201986 0.0000000000000000 0.0041894809945660 0.0000000000000000 - -0.0000000000000036 0.0000000000000000 0.0044397818519684 0.0000000000000000 0.0041303780996630 0.0000000000000000 + -0.0373686571560808 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 -0.0336428001202010 0.0000000000000000 0.0041894809945677 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0044397818519533 0.0000000000000000 0.0041303780996524 0.0000000000000000 7 11 - 0.0079739154089283 0.0000000000000000 -0.0168418597307721 0.0000000000000000 -0.0106690755761892 0.0000000000000000 - -0.0100652146645782 0.0000000000000000 -0.0099918936929071 0.0000000000000000 0.0069122209429032 0.0000000000000000 - 0.0036706343437568 0.0000000000000000 0.0005259246072647 0.0000000000000000 -0.0156150191112196 0.0000000000000000 + 0.0079739154089300 0.0000000000000000 -0.0168418597307738 0.0000000000000000 -0.0106690755761894 0.0000000000000000 + -0.0100652146645724 0.0000000000000000 -0.0099918936929086 0.0000000000000000 0.0069122209429022 0.0000000000000000 + 0.0036706343437468 0.0000000000000000 0.0005259246072739 0.0000000000000000 -0.0156150191112137 0.0000000000000000 7 12 - 0.0079739154089275 0.0000000000000000 0.0168418597307719 0.0000000000000000 0.0106690755761886 0.0000000000000000 - 0.0100652146645769 0.0000000000000000 -0.0099918936929076 0.0000000000000000 0.0069122209429026 0.0000000000000000 - -0.0036706343437536 0.0000000000000000 0.0005259246072664 0.0000000000000000 -0.0156150191112183 0.0000000000000000 + 0.0079739154089307 0.0000000000000000 0.0168418597307742 0.0000000000000000 0.0106690755761898 0.0000000000000000 + 0.0100652146645733 0.0000000000000000 -0.0099918936929082 0.0000000000000000 0.0069122209429026 0.0000000000000000 + -0.0036706343437474 0.0000000000000000 0.0005259246072736 0.0000000000000000 -0.0156150191112139 0.0000000000000000 8 1 - -0.0018152750012302 0.0000000000000000 0.0000000000000006 0.0000000000000000 0.0000000000000005 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0012476417535537 0.0000000000000000 -0.0002039213450301 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0078942408876209 0.0000000000000000 0.0145769254785470 0.0000000000000000 + -0.0018152750012303 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0012476417535539 0.0000000000000000 -0.0002039213450295 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0078942408876043 0.0000000000000000 0.0145769254785530 0.0000000000000000 8 2 - 0.0036353210827945 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0001181663659067 0.0000000000000000 0.0026161584162183 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0026161584162145 0.0000000000000000 -0.0221544638345920 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0001181663659071 0.0000000000000000 0.0026161584162181 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0026161584162148 0.0000000000000000 -0.0221544638345915 0.0000000000000000 8 3 - -0.0006990068039684 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0007453998223720 0.0000000000000000 -0.0020862975258870 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0005005588825623 0.0000000000000000 -0.0034474484778282 0.0000000000000000 + -0.0006990068039681 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0007453998223718 0.0000000000000000 -0.0020862975258866 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0005005588825771 0.0000000000000000 -0.0034474484778324 0.0000000000000000 8 4 - -0.0158629633765105 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000007 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0142572303934424 0.0000000000000000 -0.0025026894102775 0.0000000000000000 - 0.0000000000000077 0.0000000000000000 0.0110402408679523 0.0000000000000000 0.0060798140624046 0.0000000000000000 + -0.0158629633765100 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0142572303934455 0.0000000000000000 -0.0025026894102756 0.0000000000000000 + -0.0000000000000041 0.0000000000000000 0.0110402408679503 0.0000000000000000 0.0060798140624053 0.0000000000000000 8 5 - 0.0025040980237169 0.0000000000000000 -0.0023164619816242 0.0000000000000000 -0.0038518265447300 0.0000000000000000 - 0.0006119532508360 0.0000000000000000 0.0011510144726821 0.0000000000000000 0.0004056725610963 0.0000000000000000 - 0.0017406728581048 0.0000000000000000 -0.0039561444256822 0.0000000000000000 0.0031229275970200 0.0000000000000000 + 0.0025040980237166 0.0000000000000000 -0.0023164619816236 0.0000000000000000 -0.0038518265447296 0.0000000000000000 + 0.0006119532508385 0.0000000000000000 0.0011510144726836 0.0000000000000000 0.0004056725610949 0.0000000000000000 + 0.0017406728581087 0.0000000000000000 -0.0039561444256845 0.0000000000000000 0.0031229275970211 0.0000000000000000 8 6 - 0.0025040980237169 0.0000000000000000 0.0023164619816236 0.0000000000000000 0.0038518265447292 0.0000000000000000 - -0.0006119532508360 0.0000000000000000 0.0011510144726815 0.0000000000000000 0.0004056725610959 0.0000000000000000 - -0.0017406728581117 0.0000000000000000 -0.0039561444256864 0.0000000000000000 0.0031229275970225 0.0000000000000000 + 0.0025040980237166 0.0000000000000000 0.0023164619816238 0.0000000000000000 0.0038518265447298 0.0000000000000000 + -0.0006119532508381 0.0000000000000000 0.0011510144726837 0.0000000000000000 0.0004056725610948 0.0000000000000000 + -0.0017406728581050 0.0000000000000000 -0.0039561444256823 0.0000000000000000 0.0031229275970198 0.0000000000000000 8 7 - -0.0251057439413776 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0569567699834670 0.0000000000000000 -0.0222771411146711 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0058150573711444 0.0000000000000000 -0.2988598772525884 0.0000000000000000 + -0.0251057439413773 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0569567699834691 0.0000000000000000 -0.0222771411146719 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0058150573711528 0.0000000000000000 -0.2988598772525805 0.0000000000000000 8 8 - 0.0352255604087114 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0577498980966752 0.0000000000000000 -0.0004642893512902 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0004642893512902 0.0000000000000000 0.2960907478397038 0.0000000000000000 + 0.0352255604087114 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0577498980966774 0.0000000000000000 -0.0004642893512909 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0004642893512909 0.0000000000000000 0.2960907478396945 0.0000000000000000 8 9 - 0.0037861455182859 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0103751426308782 0.0000000000000000 0.0282119025677896 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0049287602283988 0.0000000000000000 -0.0033792838522603 0.0000000000000000 + 0.0037861455182860 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0103751426308790 0.0000000000000000 0.0282119025677916 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0049287602283916 0.0000000000000000 -0.0033792838522586 0.0000000000000000 8 10 - -0.0149643881777196 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000005 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0085647327830319 0.0000000000000000 -0.0044261389355780 0.0000000000000000 - 0.0000000000000029 0.0000000000000000 -0.0009466269410164 0.0000000000000000 0.0064890897647860 0.0000000000000000 + -0.0149643881777212 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0085647327830304 0.0000000000000000 -0.0044261389355772 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0009466269410047 0.0000000000000000 0.0064890897647942 0.0000000000000000 8 11 - 0.0053960771921632 0.0000000000000000 -0.0027777266316766 0.0000000000000000 0.0010754919735294 0.0000000000000000 - -0.0041883714492626 0.0000000000000000 0.0037383917967306 0.0000000000000000 0.0001605357525135 0.0000000000000000 - -0.0052382113260983 0.0000000000000000 -0.0007249474944253 0.0000000000000000 -0.0008206821612994 0.0000000000000000 + 0.0053960771921639 0.0000000000000000 -0.0027777266316766 0.0000000000000000 0.0010754919735285 0.0000000000000000 + -0.0041883714492635 0.0000000000000000 0.0037383917967296 0.0000000000000000 0.0001605357525130 0.0000000000000000 + -0.0052382113260885 0.0000000000000000 -0.0007249474944318 0.0000000000000000 -0.0008206821613036 0.0000000000000000 8 12 - 0.0053960771921631 0.0000000000000000 0.0027777266316760 0.0000000000000000 -0.0010754919735287 0.0000000000000000 - 0.0041883714492625 0.0000000000000000 0.0037383917967305 0.0000000000000000 0.0001605357525135 0.0000000000000000 - 0.0052382113260957 0.0000000000000000 -0.0007249474944268 0.0000000000000000 -0.0008206821613003 0.0000000000000000 + 0.0053960771921641 0.0000000000000000 0.0027777266316768 0.0000000000000000 -0.0010754919735287 0.0000000000000000 + 0.0041883714492635 0.0000000000000000 0.0037383917967295 0.0000000000000000 0.0001605357525129 0.0000000000000000 + 0.0052382113260880 0.0000000000000000 -0.0007249474944322 0.0000000000000000 -0.0008206821613038 0.0000000000000000 9 1 - -0.0016399265604471 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0035091911501727 0.0000000000000000 0.0074822204968365 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0021722504817068 0.0000000000000000 0.0003426041600751 0.0000000000000000 + -0.0016399265604471 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 -0.0035091911501694 0.0000000000000000 0.0074822204968448 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0021722504817080 0.0000000000000000 0.0003426041600733 0.0000000000000000 9 2 - -0.0006990068039684 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0007453998223720 0.0000000000000000 0.0005005588826329 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0020862975258871 0.0000000000000000 -0.0034474484778466 0.0000000000000000 + -0.0006990068039687 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0007453998223712 0.0000000000000000 0.0005005588826243 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0020862975258868 0.0000000000000000 -0.0034474484778444 0.0000000000000000 9 3 - 0.0025844652016199 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0002706095090055 0.0000000000000000 -0.0025129031626731 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0025129031626719 0.0000000000000000 -0.0015754786010481 0.0000000000000000 + 0.0025844652016201 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0002706095090054 0.0000000000000000 -0.0025129031626725 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0025129031626719 0.0000000000000000 -0.0015754786010477 0.0000000000000000 9 4 - -0.0001599946965686 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000031 0.0000000000000000 0.0004054668962976 0.0000000000000000 -0.0101430343307356 0.0000000000000000 - 0.0000000000000010 0.0000000000000000 -0.0081775121522166 0.0000000000000000 0.0079899884223450 0.0000000000000000 + -0.0001599946965691 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000107 0.0000000000000000 0.0004054668963072 0.0000000000000000 -0.0101430343307420 0.0000000000000000 + 0.0000000000000032 0.0000000000000000 -0.0081775121522238 0.0000000000000000 0.0079899884223495 0.0000000000000000 9 5 - -0.0004154624427382 0.0000000000000000 0.0012439381262113 0.0000000000000000 -0.0022873936225499 0.0000000000000000 - 0.0127928624961687 0.0000000000000000 -0.0007025897616739 0.0000000000000000 0.0006118410528823 0.0000000000000000 - -0.0050585024151198 0.0000000000000000 0.0031456369018453 0.0000000000000000 -0.0037626256179460 0.0000000000000000 + -0.0004154624427379 0.0000000000000000 0.0012439381262113 0.0000000000000000 -0.0022873936225501 0.0000000000000000 + 0.0127928624961793 0.0000000000000000 -0.0007025897616796 0.0000000000000000 0.0006118410528863 0.0000000000000000 + -0.0050585024151207 0.0000000000000000 0.0031456369018495 0.0000000000000000 -0.0037626256179486 0.0000000000000000 9 6 - -0.0004154624427382 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225501 0.0000000000000000 - -0.0127928624961664 0.0000000000000000 -0.0007025897616722 0.0000000000000000 0.0006118410528815 0.0000000000000000 - 0.0050585024151189 0.0000000000000000 0.0031456369018453 0.0000000000000000 -0.0037626256179454 0.0000000000000000 + -0.0004154624427379 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225502 0.0000000000000000 + -0.0127928624961698 0.0000000000000000 -0.0007025897616736 0.0000000000000000 0.0006118410528826 0.0000000000000000 + 0.0050585024151178 0.0000000000000000 0.0031456369018480 0.0000000000000000 -0.0037626256179476 0.0000000000000000 9 7 - -0.0289738345959175 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.2820802915433103 0.0000000000000000 0.0884826303559051 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0527306161696246 0.0000000000000000 -0.0739447334126106 0.0000000000000000 + -0.0289738345959182 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.2820802915433079 0.0000000000000000 0.0884826303559113 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0527306161696215 0.0000000000000000 -0.0739447334126136 0.0000000000000000 9 8 - 0.0037861455182859 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0103751426308782 0.0000000000000000 0.0049287602283988 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0282119025677896 0.0000000000000000 -0.0033792838522603 0.0000000000000000 + 0.0037861455182860 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0103751426308790 0.0000000000000000 0.0049287602283916 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0282119025677916 0.0000000000000000 -0.0033792838522586 0.0000000000000000 9 9 - 0.0365782981378742 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.2729248902175101 0.0000000000000000 -0.0713458205553484 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0713458205553484 0.0000000000000000 0.0798291225288879 0.0000000000000000 + 0.0365782981378753 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.2729248902175091 0.0000000000000000 -0.0713458205553474 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0713458205553474 0.0000000000000000 0.0798291225288899 0.0000000000000000 9 10 - -0.0193793176120032 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000012 0.0000000000000000 0.0128264092257570 0.0000000000000000 -0.0093892601393046 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0108019320579851 0.0000000000000000 -0.0127958810116074 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + 0.0000000000000012 0.0000000000000000 0.0128264092257565 0.0000000000000000 -0.0093892601393074 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0108019320579830 0.0000000000000000 -0.0127958810116057 0.0000000000000000 9 11 - 0.0043670482201905 0.0000000000000000 0.0062527546419647 0.0000000000000000 -0.0032245610064169 0.0000000000000000 - 0.0073649825438708 0.0000000000000000 -0.0050060184798432 0.0000000000000000 -0.0046134194019439 0.0000000000000000 - -0.0069798143243308 0.0000000000000000 0.0003322634792064 0.0000000000000000 0.0072531804468968 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 0.0062527546419649 0.0000000000000000 -0.0032245610064173 0.0000000000000000 + 0.0073649825438672 0.0000000000000000 -0.0050060184798409 0.0000000000000000 -0.0046134194019425 0.0000000000000000 + -0.0069798143243305 0.0000000000000000 0.0003322634792045 0.0000000000000000 0.0072531804468958 0.0000000000000000 9 12 - 0.0043670482201904 0.0000000000000000 -0.0062527546419645 0.0000000000000000 0.0032245610064168 0.0000000000000000 - -0.0073649825438702 0.0000000000000000 -0.0050060184798427 0.0000000000000000 -0.0046134194019436 0.0000000000000000 - 0.0069798143243306 0.0000000000000000 0.0003322634792063 0.0000000000000000 0.0072531804468967 0.0000000000000000 + 0.0043670482201911 0.0000000000000000 -0.0062527546419648 0.0000000000000000 0.0032245610064173 0.0000000000000000 + -0.0073649825438686 0.0000000000000000 -0.0050060184798417 0.0000000000000000 -0.0046134194019431 0.0000000000000000 + 0.0069798143243309 0.0000000000000000 0.0003322634792048 0.0000000000000000 0.0072531804468959 0.0000000000000000 10 1 - 0.0078082955673501 0.0000000000000000 -0.0000000000000058 0.0000000000000000 -0.0000000000000043 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0119074076296487 0.0000000000000000 0.0044778895271552 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0034942738523646 0.0000000000000000 -0.0367974389513981 0.0000000000000000 + 0.0078082955673487 0.0000000000000000 -0.0000000000000009 0.0000000000000000 0.0000000000000013 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 0.0119074076296486 0.0000000000000000 0.0044778895271588 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 -0.0034942738523640 0.0000000000000000 -0.0367974389513956 0.0000000000000000 10 2 - -0.0158629633765108 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000022 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.0142572303934415 0.0000000000000000 -0.0110402408679930 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0025026894102782 0.0000000000000000 0.0060798140623739 0.0000000000000000 + -0.0158629633765114 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000013 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0142572303934381 0.0000000000000000 -0.0110402408679937 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0025026894102803 0.0000000000000000 0.0060798140623741 0.0000000000000000 10 3 - -0.0001599946965685 0.0000000000000000 0.0000000000000053 0.0000000000000000 0.0000000000000016 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0004054668963170 0.0000000000000000 0.0081775121522225 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0101430343307528 0.0000000000000000 0.0079899884223502 0.0000000000000000 + -0.0001599946965682 0.0000000000000000 0.0000000000000017 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0004054668963155 0.0000000000000000 0.0081775121522179 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0101430343307504 0.0000000000000000 0.0079899884223468 0.0000000000000000 10 4 - 0.0039008143595918 0.0000000000000000 -0.0000000000000010 0.0000000000000000 0.0000000000000009 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0008485805837920 0.0000000000000000 0.0030686652718384 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0030686652718427 0.0000000000000000 -0.0082838582595766 0.0000000000000000 + 0.0039008143595921 0.0000000000000000 -0.0000000000000011 0.0000000000000000 0.0000000000000018 0.0000000000000000 + 0.0000000000000036 0.0000000000000000 -0.0008485805837898 0.0000000000000000 0.0030686652718395 0.0000000000000000 + 0.0000000000000022 0.0000000000000000 -0.0030686652718417 0.0000000000000000 -0.0082838582595758 0.0000000000000000 10 5 - 0.0005529569781392 0.0000000000000000 0.0006881224323695 0.0000000000000000 -0.0009938270034988 0.0000000000000000 - -0.0004060563613284 0.0000000000000000 0.0017449768597154 0.0000000000000000 -0.0014852637978357 0.0000000000000000 - 0.0028171359308478 0.0000000000000000 -0.0003308975272938 0.0000000000000000 0.0019808748951321 0.0000000000000000 + 0.0005529569781392 0.0000000000000000 0.0006881224323696 0.0000000000000000 -0.0009938270034991 0.0000000000000000 + -0.0004060563613305 0.0000000000000000 0.0017449768597158 0.0000000000000000 -0.0014852637978356 0.0000000000000000 + 0.0028171359308453 0.0000000000000000 -0.0003308975272935 0.0000000000000000 0.0019808748951309 0.0000000000000000 10 6 - 0.0005529569781417 0.0000000000000000 -0.0006881224323676 0.0000000000000000 0.0009938270034978 0.0000000000000000 - 0.0004060563613285 0.0000000000000000 0.0017449768597156 0.0000000000000000 -0.0014852637978352 0.0000000000000000 - -0.0028171359308475 0.0000000000000000 -0.0003308975272941 0.0000000000000000 0.0019808748951311 0.0000000000000000 + 0.0005529569781416 0.0000000000000000 -0.0006881224323673 0.0000000000000000 0.0009938270034978 0.0000000000000000 + 0.0004060563613270 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0014852637978346 0.0000000000000000 + -0.0028171359308475 0.0000000000000000 -0.0003308975272948 0.0000000000000000 0.0019808748951320 0.0000000000000000 10 7 - -0.0373686571560745 0.0000000000000000 0.0000000000000018 0.0000000000000000 -0.0000000000000036 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0336428001201986 0.0000000000000000 0.0044397818519684 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 0.0041894809945660 0.0000000000000000 0.0041303780996630 0.0000000000000000 + -0.0373686571560808 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000007 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0336428001202010 0.0000000000000000 0.0044397818519533 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0041894809945677 0.0000000000000000 0.0041303780996524 0.0000000000000000 10 8 - -0.0149643881777196 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000029 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0085647327830319 0.0000000000000000 -0.0009466269410164 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 -0.0044261389355780 0.0000000000000000 0.0064890897647860 0.0000000000000000 + -0.0149643881777212 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000006 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0085647327830304 0.0000000000000000 -0.0009466269410047 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0044261389355772 0.0000000000000000 0.0064890897647942 0.0000000000000000 10 9 - -0.0193793176120032 0.0000000000000000 -0.0000000000000012 0.0000000000000000 0.0000000000000004 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0128264092257570 0.0000000000000000 -0.0108019320579851 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0093892601393046 0.0000000000000000 -0.0127958810116074 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 0.0000000000000012 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0128264092257565 0.0000000000000000 -0.0108019320579830 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0093892601393074 0.0000000000000000 -0.0127958810116057 0.0000000000000000 10 10 - 0.4834443802760142 0.0000000000000000 -0.0000000000000015 0.0000000000000000 -0.0000000000000009 0.0000000000000000 - -0.0000000000000015 0.0000000000000000 0.2588422264936573 0.0000000000000000 0.1308110718530658 0.0000000000000000 - -0.0000000000000009 0.0000000000000000 0.1308110718530658 0.0000000000000000 0.1639030178691330 0.0000000000000000 + 0.4834443802760763 0.0000000000000000 0.0000000000000016 0.0000000000000000 0.0000000000000013 0.0000000000000000 + 0.0000000000000016 0.0000000000000000 0.2588422264936532 0.0000000000000000 0.1308110718530623 0.0000000000000000 + 0.0000000000000013 0.0000000000000000 0.1308110718530623 0.0000000000000000 0.1639030178691310 0.0000000000000000 10 11 - -0.2042620382021262 0.0000000000000000 0.1111612914471771 0.0000000000000000 0.0678004081048795 0.0000000000000000 - 0.0961493426419405 0.0000000000000000 -0.1150790588758511 0.0000000000000000 -0.0626077946132198 0.0000000000000000 - 0.0680988033808381 0.0000000000000000 -0.0633030715249469 0.0000000000000000 -0.0673384314526815 0.0000000000000000 + -0.2042620382021526 0.0000000000000000 0.1111612914471928 0.0000000000000000 0.0678004081048895 0.0000000000000000 + 0.0961493426419440 0.0000000000000000 -0.1150790588758461 0.0000000000000000 -0.0626077946132162 0.0000000000000000 + 0.0680988033808408 0.0000000000000000 -0.0633030715249443 0.0000000000000000 -0.0673384314526791 0.0000000000000000 10 12 - -0.2042620382021240 0.0000000000000000 -0.1111612914471754 0.0000000000000000 -0.0678004081048786 0.0000000000000000 - -0.0961493426419388 0.0000000000000000 -0.1150790588758495 0.0000000000000000 -0.0626077946132193 0.0000000000000000 - -0.0680988033808372 0.0000000000000000 -0.0633030715249469 0.0000000000000000 -0.0673384314526809 0.0000000000000000 + -0.2042620382021536 0.0000000000000000 -0.1111612914471934 0.0000000000000000 -0.0678004081048903 0.0000000000000000 + -0.0961493426419457 0.0000000000000000 -0.1150790588758470 0.0000000000000000 -0.0626077946132170 0.0000000000000000 + -0.0680988033808421 0.0000000000000000 -0.0633030715249447 0.0000000000000000 -0.0673384314526796 0.0000000000000000 11 1 - -0.0014003952261873 0.0000000000000000 -0.0091891495399408 0.0000000000000000 -0.0007217572183650 0.0000000000000000 - 0.0002449744821629 0.0000000000000000 -0.0030108060126852 0.0000000000000000 -0.0035553985811701 0.0000000000000000 - -0.0015206472447125 0.0000000000000000 -0.0014211831836439 0.0000000000000000 -0.0025275585661420 0.0000000000000000 + -0.0014003952261876 0.0000000000000000 -0.0091891495399408 0.0000000000000000 -0.0007217572183677 0.0000000000000000 + 0.0002449744821631 0.0000000000000000 -0.0030108060126835 0.0000000000000000 -0.0035553985811712 0.0000000000000000 + -0.0015206472447120 0.0000000000000000 -0.0014211831836429 0.0000000000000000 -0.0025275585661434 0.0000000000000000 11 2 - 0.0025040980237171 0.0000000000000000 0.0006119532508363 0.0000000000000000 -0.0017406728581400 0.0000000000000000 - -0.0023164619816243 0.0000000000000000 0.0011510144726815 0.0000000000000000 0.0039561444257064 0.0000000000000000 - 0.0038518265447299 0.0000000000000000 -0.0004056725610964 0.0000000000000000 0.0031229275970346 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 0.0006119532508347 0.0000000000000000 -0.0017406728581402 0.0000000000000000 + -0.0023164619816242 0.0000000000000000 0.0011510144726797 0.0000000000000000 0.0039561444257060 0.0000000000000000 + 0.0038518265447293 0.0000000000000000 -0.0004056725610977 0.0000000000000000 0.0031229275970346 0.0000000000000000 11 3 - -0.0004154624427382 0.0000000000000000 0.0127928624961786 0.0000000000000000 0.0050585024151230 0.0000000000000000 - 0.0012439381262117 0.0000000000000000 -0.0007025897616810 0.0000000000000000 -0.0031456369018478 0.0000000000000000 - 0.0022873936225500 0.0000000000000000 -0.0006118410528871 0.0000000000000000 -0.0037626256179474 0.0000000000000000 + -0.0004154624427384 0.0000000000000000 0.0127928624961799 0.0000000000000000 0.0050585024151256 0.0000000000000000 + 0.0012439381262115 0.0000000000000000 -0.0007025897616815 0.0000000000000000 -0.0031456369018455 0.0000000000000000 + 0.0022873936225502 0.0000000000000000 -0.0006118410528876 0.0000000000000000 -0.0037626256179457 0.0000000000000000 11 4 - 0.0005529569781391 0.0000000000000000 -0.0004060563613288 0.0000000000000000 -0.0028171359308498 0.0000000000000000 - 0.0006881224323696 0.0000000000000000 0.0017449768597158 0.0000000000000000 0.0003308975272952 0.0000000000000000 - 0.0009938270034990 0.0000000000000000 0.0014852637978359 0.0000000000000000 0.0019808748951325 0.0000000000000000 + 0.0005529569781427 0.0000000000000000 -0.0004060563613283 0.0000000000000000 -0.0028171359308493 0.0000000000000000 + 0.0006881224323673 0.0000000000000000 0.0017449768597155 0.0000000000000000 0.0003308975272946 0.0000000000000000 + 0.0009938270034980 0.0000000000000000 0.0014852637978348 0.0000000000000000 0.0019808748951319 0.0000000000000000 11 5 - -0.0001947154534063 0.0000000000000000 0.0001055444019335 0.0000000000000000 0.0008285855530534 0.0000000000000000 - 0.0001055444019334 0.0000000000000000 -0.0022624521874642 0.0000000000000000 0.0020902638812482 0.0000000000000000 - -0.0008285855530534 0.0000000000000000 -0.0020902638812480 0.0000000000000000 0.0008479800149230 0.0000000000000000 + -0.0001947154534084 0.0000000000000000 0.0001055444019349 0.0000000000000000 0.0008285855530526 0.0000000000000000 + 0.0001055444019346 0.0000000000000000 -0.0022624521874647 0.0000000000000000 0.0020902638812482 0.0000000000000000 + -0.0008285855530526 0.0000000000000000 -0.0020902638812477 0.0000000000000000 0.0008479800149238 0.0000000000000000 11 6 - -0.0020226399972403 0.0000000000000000 -0.0002383182140788 0.0000000000000000 0.0001011648438940 0.0000000000000000 - 0.0002383182140788 0.0000000000000000 0.0000601515309635 0.0000000000000000 0.0001507007232536 0.0000000000000000 - 0.0001011648438937 0.0000000000000000 -0.0001507007232539 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972419 0.0000000000000000 -0.0002383182140796 0.0000000000000000 0.0001011648438943 0.0000000000000000 + 0.0002383182140798 0.0000000000000000 0.0000601515309644 0.0000000000000000 0.0001507007232535 0.0000000000000000 + 0.0001011648438941 0.0000000000000000 -0.0001507007232528 0.0000000000000000 -0.0022331838997253 0.0000000000000000 11 7 - 0.0079739154089283 0.0000000000000000 -0.0100652146645782 0.0000000000000000 0.0036706343437568 0.0000000000000000 - -0.0168418597307721 0.0000000000000000 -0.0099918936929071 0.0000000000000000 0.0005259246072647 0.0000000000000000 - -0.0106690755761892 0.0000000000000000 0.0069122209429032 0.0000000000000000 -0.0156150191112196 0.0000000000000000 + 0.0079739154089300 0.0000000000000000 -0.0100652146645724 0.0000000000000000 0.0036706343437468 0.0000000000000000 + -0.0168418597307738 0.0000000000000000 -0.0099918936929086 0.0000000000000000 0.0005259246072739 0.0000000000000000 + -0.0106690755761894 0.0000000000000000 0.0069122209429022 0.0000000000000000 -0.0156150191112137 0.0000000000000000 11 8 - 0.0053960771921632 0.0000000000000000 -0.0041883714492626 0.0000000000000000 -0.0052382113260983 0.0000000000000000 - -0.0027777266316766 0.0000000000000000 0.0037383917967306 0.0000000000000000 -0.0007249474944253 0.0000000000000000 - 0.0010754919735294 0.0000000000000000 0.0001605357525135 0.0000000000000000 -0.0008206821612994 0.0000000000000000 + 0.0053960771921639 0.0000000000000000 -0.0041883714492635 0.0000000000000000 -0.0052382113260885 0.0000000000000000 + -0.0027777266316766 0.0000000000000000 0.0037383917967296 0.0000000000000000 -0.0007249474944318 0.0000000000000000 + 0.0010754919735285 0.0000000000000000 0.0001605357525130 0.0000000000000000 -0.0008206821613036 0.0000000000000000 11 9 - 0.0043670482201905 0.0000000000000000 0.0073649825438708 0.0000000000000000 -0.0069798143243308 0.0000000000000000 - 0.0062527546419647 0.0000000000000000 -0.0050060184798432 0.0000000000000000 0.0003322634792064 0.0000000000000000 - -0.0032245610064169 0.0000000000000000 -0.0046134194019439 0.0000000000000000 0.0072531804468968 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 0.0073649825438672 0.0000000000000000 -0.0069798143243305 0.0000000000000000 + 0.0062527546419649 0.0000000000000000 -0.0050060184798409 0.0000000000000000 0.0003322634792045 0.0000000000000000 + -0.0032245610064173 0.0000000000000000 -0.0046134194019425 0.0000000000000000 0.0072531804468958 0.0000000000000000 11 10 - -0.2042620382021262 0.0000000000000000 0.0961493426419405 0.0000000000000000 0.0680988033808381 0.0000000000000000 - 0.1111612914471771 0.0000000000000000 -0.1150790588758511 0.0000000000000000 -0.0633030715249469 0.0000000000000000 - 0.0678004081048795 0.0000000000000000 -0.0626077946132198 0.0000000000000000 -0.0673384314526815 0.0000000000000000 + -0.2042620382021526 0.0000000000000000 0.0961493426419440 0.0000000000000000 0.0680988033808408 0.0000000000000000 + 0.1111612914471928 0.0000000000000000 -0.1150790588758461 0.0000000000000000 -0.0633030715249443 0.0000000000000000 + 0.0678004081048895 0.0000000000000000 -0.0626077946132162 0.0000000000000000 -0.0673384314526791 0.0000000000000000 11 11 - 0.2174594979186324 0.0000000000000000 -0.0954682304260219 0.0000000000000000 -0.0600636707989565 0.0000000000000000 - -0.0954682304260219 0.0000000000000000 0.1104252604741438 0.0000000000000000 0.0503426131734414 0.0000000000000000 - -0.0600636707989565 0.0000000000000000 0.0503426131734414 0.0000000000000000 0.0677190190410544 0.0000000000000000 + 0.2174594979186411 0.0000000000000000 -0.0954682304260313 0.0000000000000000 -0.0600636707989624 0.0000000000000000 + -0.0954682304260313 0.0000000000000000 0.1104252604741455 0.0000000000000000 0.0503426131734423 0.0000000000000000 + -0.0600636707989624 0.0000000000000000 0.0503426131734423 0.0000000000000000 0.0677190190410544 0.0000000000000000 11 12 - -0.0299583471230355 0.0000000000000000 0.0025306649736093 0.0000000000000000 -0.0001964280885660 0.0000000000000000 - -0.0025306649736094 0.0000000000000000 0.0189330240079814 0.0000000000000000 0.0130002466230933 0.0000000000000000 - 0.0001964280885659 0.0000000000000000 0.0130002466230935 0.0000000000000000 0.0113735279572482 0.0000000000000000 + -0.0299583471230203 0.0000000000000000 0.0025306649736144 0.0000000000000000 -0.0001964280885629 0.0000000000000000 + -0.0025306649736143 0.0000000000000000 0.0189330240079743 0.0000000000000000 0.0130002466230889 0.0000000000000000 + 0.0001964280885632 0.0000000000000000 0.0130002466230887 0.0000000000000000 0.0113735279572449 0.0000000000000000 12 1 - -0.0014003952261876 0.0000000000000000 0.0091891495399460 0.0000000000000000 0.0007217572183687 0.0000000000000000 - -0.0002449744821633 0.0000000000000000 -0.0030108060126819 0.0000000000000000 -0.0035553985811676 0.0000000000000000 - 0.0015206472447124 0.0000000000000000 -0.0014211831836424 0.0000000000000000 -0.0025275585661413 0.0000000000000000 + -0.0014003952261865 0.0000000000000000 0.0091891495399413 0.0000000000000000 0.0007217572183663 0.0000000000000000 + -0.0002449744821626 0.0000000000000000 -0.0030108060126830 0.0000000000000000 -0.0035553985811718 0.0000000000000000 + 0.0015206472447127 0.0000000000000000 -0.0014211831836424 0.0000000000000000 -0.0025275585661437 0.0000000000000000 12 2 - 0.0025040980237169 0.0000000000000000 -0.0006119532508367 0.0000000000000000 0.0017406728581383 0.0000000000000000 - 0.0023164619816238 0.0000000000000000 0.0011510144726812 0.0000000000000000 0.0039561444257052 0.0000000000000000 - -0.0038518265447294 0.0000000000000000 -0.0004056725610964 0.0000000000000000 0.0031229275970341 0.0000000000000000 + 0.0025040980237175 0.0000000000000000 -0.0006119532508346 0.0000000000000000 0.0017406728581413 0.0000000000000000 + 0.0023164619816245 0.0000000000000000 0.0011510144726795 0.0000000000000000 0.0039561444257067 0.0000000000000000 + -0.0038518265447295 0.0000000000000000 -0.0004056725610978 0.0000000000000000 0.0031229275970351 0.0000000000000000 12 3 - -0.0004154624427382 0.0000000000000000 -0.0127928624961835 0.0000000000000000 -0.0050585024151244 0.0000000000000000 - -0.0012439381262110 0.0000000000000000 -0.0007025897616839 0.0000000000000000 -0.0031456369018485 0.0000000000000000 - -0.0022873936225507 0.0000000000000000 -0.0006118410528890 0.0000000000000000 -0.0037626256179478 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 -0.0127928624961811 0.0000000000000000 -0.0050585024151258 0.0000000000000000 + -0.0012439381262114 0.0000000000000000 -0.0007025897616820 0.0000000000000000 -0.0031456369018459 0.0000000000000000 + -0.0022873936225504 0.0000000000000000 -0.0006118410528880 0.0000000000000000 -0.0037626256179460 0.0000000000000000 12 4 - 0.0005529569781400 0.0000000000000000 0.0004060563613293 0.0000000000000000 0.0028171359308487 0.0000000000000000 - -0.0006881224323686 0.0000000000000000 0.0017449768597167 0.0000000000000000 0.0003308975272945 0.0000000000000000 - -0.0009938270034983 0.0000000000000000 0.0014852637978358 0.0000000000000000 0.0019808748951313 0.0000000000000000 + 0.0005529569781372 0.0000000000000000 0.0004060563613291 0.0000000000000000 0.0028171359308479 0.0000000000000000 + -0.0006881224323707 0.0000000000000000 0.0017449768597162 0.0000000000000000 0.0003308975272938 0.0000000000000000 + -0.0009938270034998 0.0000000000000000 0.0014852637978353 0.0000000000000000 0.0019808748951319 0.0000000000000000 12 5 - -0.0020226399972399 0.0000000000000000 0.0002383182140784 0.0000000000000000 -0.0001011648438937 0.0000000000000000 - -0.0002383182140785 0.0000000000000000 0.0000601515309633 0.0000000000000000 0.0001507007232539 0.0000000000000000 - -0.0001011648438935 0.0000000000000000 -0.0001507007232538 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972382 0.0000000000000000 0.0002383182140771 0.0000000000000000 -0.0001011648438929 0.0000000000000000 + -0.0002383182140775 0.0000000000000000 0.0000601515309627 0.0000000000000000 0.0001507007232542 0.0000000000000000 + -0.0001011648438928 0.0000000000000000 -0.0001507007232539 0.0000000000000000 -0.0022331838997248 0.0000000000000000 12 6 - -0.0001947154534082 0.0000000000000000 -0.0001055444019346 0.0000000000000000 -0.0008285855530527 0.0000000000000000 - -0.0001055444019347 0.0000000000000000 -0.0022624521874654 0.0000000000000000 0.0020902638812481 0.0000000000000000 - 0.0008285855530525 0.0000000000000000 -0.0020902638812481 0.0000000000000000 0.0008479800149244 0.0000000000000000 + -0.0001947154534065 0.0000000000000000 -0.0001055444019342 0.0000000000000000 -0.0008285855530532 0.0000000000000000 + -0.0001055444019336 0.0000000000000000 -0.0022624521874644 0.0000000000000000 0.0020902638812481 0.0000000000000000 + 0.0008285855530534 0.0000000000000000 -0.0020902638812476 0.0000000000000000 0.0008479800149232 0.0000000000000000 12 7 - 0.0079739154089275 0.0000000000000000 0.0100652146645769 0.0000000000000000 -0.0036706343437536 0.0000000000000000 - 0.0168418597307719 0.0000000000000000 -0.0099918936929076 0.0000000000000000 0.0005259246072664 0.0000000000000000 - 0.0106690755761886 0.0000000000000000 0.0069122209429026 0.0000000000000000 -0.0156150191112183 0.0000000000000000 + 0.0079739154089307 0.0000000000000000 0.0100652146645733 0.0000000000000000 -0.0036706343437474 0.0000000000000000 + 0.0168418597307742 0.0000000000000000 -0.0099918936929082 0.0000000000000000 0.0005259246072736 0.0000000000000000 + 0.0106690755761898 0.0000000000000000 0.0069122209429026 0.0000000000000000 -0.0156150191112139 0.0000000000000000 12 8 - 0.0053960771921631 0.0000000000000000 0.0041883714492625 0.0000000000000000 0.0052382113260957 0.0000000000000000 - 0.0027777266316760 0.0000000000000000 0.0037383917967305 0.0000000000000000 -0.0007249474944268 0.0000000000000000 - -0.0010754919735287 0.0000000000000000 0.0001605357525135 0.0000000000000000 -0.0008206821613003 0.0000000000000000 + 0.0053960771921641 0.0000000000000000 0.0041883714492635 0.0000000000000000 0.0052382113260880 0.0000000000000000 + 0.0027777266316768 0.0000000000000000 0.0037383917967295 0.0000000000000000 -0.0007249474944322 0.0000000000000000 + -0.0010754919735287 0.0000000000000000 0.0001605357525129 0.0000000000000000 -0.0008206821613038 0.0000000000000000 12 9 - 0.0043670482201904 0.0000000000000000 -0.0073649825438702 0.0000000000000000 0.0069798143243306 0.0000000000000000 - -0.0062527546419645 0.0000000000000000 -0.0050060184798427 0.0000000000000000 0.0003322634792063 0.0000000000000000 - 0.0032245610064168 0.0000000000000000 -0.0046134194019436 0.0000000000000000 0.0072531804468967 0.0000000000000000 + 0.0043670482201911 0.0000000000000000 -0.0073649825438686 0.0000000000000000 0.0069798143243309 0.0000000000000000 + -0.0062527546419648 0.0000000000000000 -0.0050060184798417 0.0000000000000000 0.0003322634792048 0.0000000000000000 + 0.0032245610064173 0.0000000000000000 -0.0046134194019431 0.0000000000000000 0.0072531804468959 0.0000000000000000 12 10 - -0.2042620382021240 0.0000000000000000 -0.0961493426419389 0.0000000000000000 -0.0680988033808372 0.0000000000000000 - -0.1111612914471754 0.0000000000000000 -0.1150790588758495 0.0000000000000000 -0.0633030715249469 0.0000000000000000 - -0.0678004081048786 0.0000000000000000 -0.0626077946132193 0.0000000000000000 -0.0673384314526809 0.0000000000000000 + -0.2042620382021535 0.0000000000000000 -0.0961493426419457 0.0000000000000000 -0.0680988033808421 0.0000000000000000 + -0.1111612914471934 0.0000000000000000 -0.1150790588758470 0.0000000000000000 -0.0633030715249447 0.0000000000000000 + -0.0678004081048903 0.0000000000000000 -0.0626077946132170 0.0000000000000000 -0.0673384314526796 0.0000000000000000 12 11 - -0.0299583471230356 0.0000000000000000 -0.0025306649736094 0.0000000000000000 0.0001964280885659 0.0000000000000000 - 0.0025306649736093 0.0000000000000000 0.0189330240079814 0.0000000000000000 0.0130002466230935 0.0000000000000000 - -0.0001964280885660 0.0000000000000000 0.0130002466230933 0.0000000000000000 0.0113735279572482 0.0000000000000000 + -0.0299583471230203 0.0000000000000000 -0.0025306649736143 0.0000000000000000 0.0001964280885632 0.0000000000000000 + 0.0025306649736144 0.0000000000000000 0.0189330240079743 0.0000000000000000 0.0130002466230887 0.0000000000000000 + -0.0001964280885629 0.0000000000000000 0.0130002466230889 0.0000000000000000 0.0113735279572449 0.0000000000000000 12 12 - 0.2174594979186301 0.0000000000000000 0.0954682304260204 0.0000000000000000 0.0600636707989554 0.0000000000000000 - 0.0954682304260205 0.0000000000000000 0.1104252604741423 0.0000000000000000 0.0503426131734412 0.0000000000000000 - 0.0600636707989554 0.0000000000000000 0.0503426131734412 0.0000000000000000 0.0677190190410534 0.0000000000000000 + 0.2174594979186426 0.0000000000000000 0.0954682304260319 0.0000000000000000 0.0600636707989632 0.0000000000000000 + 0.0954682304260319 0.0000000000000000 0.1104252604741460 0.0000000000000000 0.0503426131734426 0.0000000000000000 + 0.0600636707989632 0.0000000000000000 0.0503426131734426 0.0000000000000000 0.0677190190410547 0.0000000000000000 Diagonalizing the dynamical matrix q = ( 0.000000000000 0.000000000000 0.000000000000 ) *************************************************************************** - freq ( 1) = -0.00000098 [THz] = -0.00003281 [cm-1] -( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049984 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) -( -0.000014 0.000000 -0.049985 0.000000 -0.284315 0.000000 ) - freq ( 2) = -0.00000041 [THz] = -0.00001358 [cm-1] -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) -( 0.288675 0.000000 -0.000004 0.000000 -0.000014 0.000000 ) - freq ( 3) = -0.00000031 [THz] = -0.00001024 [cm-1] -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) -( 0.000001 0.000000 0.284315 0.000000 -0.049985 0.000000 ) + freq ( 1) = -0.00000048 [THz] = -0.00001607 [cm-1] +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) +( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) + freq ( 2) = -0.00000025 [THz] = -0.00000850 [cm-1] +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) +( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) + freq ( 3) = 0.00000041 [THz] = 0.00001360 [cm-1] +( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) +( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) freq ( 4) = 1.74178330 [THz] = 58.09962873 [cm-1] -( 0.000000 0.000000 -0.300463 0.000000 0.002787 0.000000 ) -( 0.000000 0.000000 -0.166848 0.000000 -0.011440 0.000000 ) -( 0.000000 0.000000 -0.312940 0.000000 0.065663 0.000000 ) -( 0.000000 0.000000 -0.298008 0.000000 -0.002144 0.000000 ) -( -0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) -( 0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) -( -0.000000 0.000000 0.300463 0.000000 0.002787 0.000000 ) -( -0.000000 0.000000 0.166848 0.000000 -0.011440 0.000000 ) -( -0.000000 0.000000 0.312940 0.000000 0.065663 0.000000 ) -( -0.000000 0.000000 0.298008 0.000000 -0.002144 0.000000 ) -( 0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) -( -0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) +( 0.000000 0.000000 0.300463 0.000000 -0.002787 0.000000 ) +( 0.000000 0.000000 0.166848 0.000000 0.011440 0.000000 ) +( 0.000000 0.000000 0.312940 0.000000 -0.065663 0.000000 ) +( 0.000000 0.000000 0.298008 0.000000 0.002144 0.000000 ) +( 0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) +( -0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) +( -0.000000 0.000000 -0.300463 0.000000 -0.002787 0.000000 ) +( -0.000000 0.000000 -0.166848 0.000000 0.011440 0.000000 ) +( -0.000000 0.000000 -0.312940 0.000000 -0.065663 0.000000 ) +( -0.000000 0.000000 -0.298008 0.000000 0.002144 0.000000 ) +( -0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) +( 0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) freq ( 5) = 1.75809446 [THz] = 58.64371051 [cm-1] -( -0.305440 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.126386 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.338635 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.290653 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.305440 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.126386 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.338635 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.301191 0.000000 0.017342 0.000000 0.069092 0.000000 ) ( -0.301191 0.000000 -0.017342 0.000000 -0.069092 0.000000 ) -( 0.305440 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.126386 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.338635 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.305440 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.126386 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.338635 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.290653 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) ( 0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) freq ( 6) = 4.65916041 [THz] = 155.41284058 [cm-1] ( -0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) -( 0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) -( 0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) -( -0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) +( -0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) +( -0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) +( 0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) ( -0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) ( -0.000000 0.000000 -0.043691 0.000000 -0.347361 0.000000 ) ( -0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) -( 0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) +( -0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) ( -0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) ( 0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) freq ( 7) = 6.03591072 [THz] = 201.33628095 [cm-1] -( 0.305036 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.315550 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.136548 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.302481 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.136548 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.302481 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.296555 0.000000 0.062886 0.000000 -0.081985 0.000000 ) ( -0.296555 0.000000 -0.062886 0.000000 0.081985 0.000000 ) -( -0.305036 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.315550 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.136548 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.302481 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.305036 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.315550 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.136548 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.302481 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) ( 0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) freq ( 8) = 6.15949351 [THz] = 205.45855860 [cm-1] ( 0.000000 0.000000 0.203150 0.000000 0.219537 0.000000 ) -( 0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) -( 0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) +( -0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) +( -0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) ( -0.000000 0.000000 -0.209804 0.000000 -0.243059 0.000000 ) ( 0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) ( -0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) -( -0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) -( -0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) -( -0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) -( 0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) +( 0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) +( 0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) +( 0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) +( -0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) ( -0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) ( 0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) freq ( 9) = 6.29096533 [THz] = 209.84398575 [cm-1] ( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.336051 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.336051 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) ( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) -( -0.358540 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.113174 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.133490 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.358540 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.113174 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.133490 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.301790 0.000000 -0.122269 0.000000 -0.088986 0.000000 ) ( 0.301790 0.000000 0.122269 0.000000 0.088986 0.000000 ) @@ -738,30 +738,30 @@ Basis vectors ( 0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) freq ( 11) = 8.28300944 [THz] = 276.29141531 [cm-1] ( -0.000000 0.000000 0.338439 0.000000 -0.044008 0.000000 ) -( 0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) -( -0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) +( -0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) +( 0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) ( 0.000000 0.000000 -0.345335 0.000000 0.006237 0.000000 ) ( 0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) ( -0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) -( 0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) +( -0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) ( -0.000000 0.000000 0.194825 0.000000 0.047214 0.000000 ) ( -0.000000 0.000000 0.343457 0.000000 0.016680 0.000000 ) -( -0.000000 0.000000 -0.345335 0.000000 -0.006237 0.000000 ) +( 0.000000 0.000000 -0.345335 0.000000 -0.006237 0.000000 ) ( 0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) ( -0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) freq ( 12) = 8.43189918 [THz] = 281.25784182 [cm-1] -( -0.000000 0.000000 -0.229760 0.000000 0.213402 0.000000 ) -( 0.000000 0.000000 -0.281970 0.000000 0.221619 0.000000 ) -( 0.000000 0.000000 -0.166741 0.000000 0.115050 0.000000 ) -( -0.000000 0.000000 0.236152 0.000000 -0.212913 0.000000 ) -( -0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) -( 0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) -( 0.000000 0.000000 0.229760 0.000000 0.213402 0.000000 ) -( 0.000000 0.000000 0.281970 0.000000 0.221619 0.000000 ) -( 0.000000 0.000000 0.166741 0.000000 0.115050 0.000000 ) -( 0.000000 0.000000 -0.236152 0.000000 -0.212913 0.000000 ) -( 0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) -( -0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) +( -0.000000 0.000000 0.229760 0.000000 -0.213402 0.000000 ) +( -0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) +( 0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) +( 0.000000 0.000000 -0.236152 0.000000 0.212913 0.000000 ) +( 0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) +( -0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) +( -0.000000 0.000000 -0.229760 0.000000 -0.213402 0.000000 ) +( -0.000000 0.000000 -0.281970 0.000000 -0.221619 0.000000 ) +( -0.000000 0.000000 -0.166741 0.000000 -0.115050 0.000000 ) +( 0.000000 0.000000 0.236152 0.000000 0.212913 0.000000 ) +( -0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) +( 0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) freq ( 13) = 15.52715504 [THz] = 517.93006796 [cm-1] ( 0.003319 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.136710 0.000000 -0.000000 0.000000 0.000000 0.000000 ) @@ -785,7 +785,7 @@ Basis vectors ( -0.000000 0.000000 0.006657 0.000000 -0.008034 0.000000 ) ( -0.000000 0.000000 -0.432968 0.000000 -0.015983 0.000000 ) ( 0.000000 0.000000 0.143749 0.000000 0.426045 0.000000 ) -( -0.000000 0.000000 -0.004900 0.000000 0.011633 0.000000 ) +( 0.000000 0.000000 -0.004900 0.000000 0.011633 0.000000 ) ( 0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) ( -0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) freq ( 15) = 15.80580280 [THz] = 527.22475550 [cm-1] @@ -802,7 +802,7 @@ Basis vectors ( 0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) ( 0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) freq ( 16) = 16.34770861 [THz] = 545.30078498 [cm-1] -( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.007401 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.375543 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.009605 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.005927 0.000000 0.000000 0.000000 0.000000 0.000000 ) @@ -811,98 +811,98 @@ Basis vectors ( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.375543 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.009605 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.005927 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.005927 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) freq ( 17) = 17.38212592 [THz] = 579.80522742 [cm-1] -( 0.000000 0.000000 0.006663 0.000000 0.018085 0.000000 ) -( -0.000000 0.000000 -0.408134 0.000000 0.010473 0.000000 ) -( -0.000000 0.000000 0.163504 0.000000 -0.439667 0.000000 ) -( 0.000000 0.000000 -0.029278 0.000000 -0.015379 0.000000 ) -( 0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) -( -0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) -( -0.000000 0.000000 -0.006663 0.000000 0.018085 0.000000 ) -( -0.000000 0.000000 0.408134 0.000000 0.010473 0.000000 ) -( 0.000000 0.000000 -0.163504 0.000000 -0.439667 0.000000 ) -( -0.000000 0.000000 0.029278 0.000000 -0.015379 0.000000 ) -( -0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) -( 0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) +( 0.000000 0.000000 -0.006663 0.000000 -0.018085 0.000000 ) +( 0.000000 0.000000 0.408134 0.000000 -0.010473 0.000000 ) +( -0.000000 0.000000 -0.163504 0.000000 0.439667 0.000000 ) +( 0.000000 0.000000 0.029278 0.000000 0.015379 0.000000 ) +( -0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) +( 0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) +( 0.000000 0.000000 0.006663 0.000000 -0.018085 0.000000 ) +( 0.000000 0.000000 -0.408134 0.000000 -0.010473 0.000000 ) +( -0.000000 0.000000 0.163504 0.000000 0.439667 0.000000 ) +( 0.000000 0.000000 -0.029278 0.000000 0.015379 0.000000 ) +( 0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) +( -0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) freq ( 18) = 18.97560951 [THz] = 632.95811128 [cm-1] ( -0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.643317 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.123298 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) ( -0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) -( 0.026207 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.643317 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.026207 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.643317 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.015257 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) ( 0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) freq ( 19) = 21.12523228 [THz] = 704.66179829 [cm-1] -( 0.013094 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.085920 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.044091 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.028235 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.013094 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.085920 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.044091 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.028235 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.234005 0.000000 -0.179515 0.000000 0.397327 0.000000 ) ( -0.234005 0.000000 0.179515 0.000000 -0.397327 0.000000 ) -( -0.013094 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.085920 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.044091 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.028235 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.013094 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.085920 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.044091 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.028235 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.234005 0.000000 0.179515 0.000000 0.397327 0.000000 ) ( 0.234005 0.000000 -0.179515 0.000000 -0.397327 0.000000 ) freq ( 20) = 21.48012875 [THz] = 716.49986854 [cm-1] -( 0.000000 0.000000 0.023138 0.000000 0.023077 0.000000 ) -( 0.000000 0.000000 -0.258260 0.000000 0.021831 0.000000 ) -( -0.000000 0.000000 0.110150 0.000000 -0.197757 0.000000 ) -( 0.000000 0.000000 0.012521 0.000000 0.033285 0.000000 ) -( -0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) -( 0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) -( -0.000000 0.000000 -0.023138 0.000000 0.023077 0.000000 ) -( -0.000000 0.000000 0.258260 0.000000 0.021831 0.000000 ) -( 0.000000 0.000000 -0.110150 0.000000 -0.197757 0.000000 ) -( -0.000000 0.000000 -0.012521 0.000000 0.033285 0.000000 ) -( 0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) -( -0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) +( 0.000000 0.000000 -0.023138 0.000000 -0.023077 0.000000 ) +( 0.000000 0.000000 0.258260 0.000000 -0.021831 0.000000 ) +( -0.000000 0.000000 -0.110150 0.000000 0.197757 0.000000 ) +( 0.000000 0.000000 -0.012521 0.000000 -0.033285 0.000000 ) +( 0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) +( -0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) +( -0.000000 0.000000 0.023138 0.000000 -0.023077 0.000000 ) +( -0.000000 0.000000 -0.258260 0.000000 -0.021831 0.000000 ) +( 0.000000 0.000000 0.110150 0.000000 0.197757 0.000000 ) +( -0.000000 0.000000 0.012521 0.000000 -0.033285 0.000000 ) +( -0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) +( 0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) freq ( 21) = 23.22408051 [THz] = 774.67182954 [cm-1] -( -0.005428 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.451089 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.300552 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.000234 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.005428 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.451089 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.300552 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.000234 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.034054 0.000000 -0.186115 0.000000 -0.259385 0.000000 ) ( -0.034054 0.000000 0.186115 0.000000 0.259385 0.000000 ) -( -0.005428 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.451089 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.300552 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.000234 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.005428 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.451089 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.300552 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.000234 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.034054 0.000000 -0.186115 0.000000 0.259385 0.000000 ) ( -0.034054 0.000000 0.186115 0.000000 -0.259385 0.000000 ) freq ( 22) = 23.36210667 [THz] = 779.27588592 [cm-1] -( -0.000000 0.000000 0.018519 0.000000 0.017965 0.000000 ) -( 0.000000 0.000000 -0.267387 0.000000 0.025126 0.000000 ) -( -0.000000 0.000000 0.103166 0.000000 -0.181808 0.000000 ) -( -0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) -( -0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) -( 0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) -( -0.000000 0.000000 0.018519 0.000000 -0.017965 0.000000 ) -( 0.000000 0.000000 -0.267387 0.000000 -0.025126 0.000000 ) -( -0.000000 0.000000 0.103166 0.000000 0.181808 0.000000 ) -( 0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) -( -0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) -( 0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) +( -0.000000 0.000000 -0.018519 0.000000 -0.017965 0.000000 ) +( 0.000000 0.000000 0.267387 0.000000 -0.025126 0.000000 ) +( -0.000000 0.000000 -0.103166 0.000000 0.181808 0.000000 ) +( 0.000000 0.000000 -0.024217 0.000000 -0.033709 0.000000 ) +( 0.013518 0.000000 0.257005 0.000000 0.353071 0.000000 ) +( -0.013518 0.000000 0.257005 0.000000 0.353071 0.000000 ) +( 0.000000 0.000000 -0.018519 0.000000 0.017965 0.000000 ) +( 0.000000 0.000000 0.267387 0.000000 0.025126 0.000000 ) +( -0.000000 0.000000 -0.103166 0.000000 -0.181808 0.000000 ) +( 0.000000 0.000000 -0.024217 0.000000 0.033709 0.000000 ) +( 0.013518 0.000000 0.257005 0.000000 -0.353071 0.000000 ) +( -0.013518 0.000000 0.257005 0.000000 -0.353071 0.000000 ) freq ( 23) = 23.82111353 [THz] = 794.58670445 [cm-1] -( 0.033391 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.247417 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.503562 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.010494 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.033391 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.247417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.503562 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.010494 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.066182 0.000000 -0.245304 0.000000 -0.165645 0.000000 ) ( -0.066182 0.000000 0.245304 0.000000 0.165645 0.000000 ) -( -0.033391 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.247417 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.503562 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.010494 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.033391 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.247417 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.503562 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.010494 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.066182 0.000000 0.245304 0.000000 -0.165645 0.000000 ) ( 0.066182 0.000000 -0.245304 0.000000 0.165645 0.000000 ) freq ( 24) = 24.61305360 [THz] = 821.00297787 [cm-1] @@ -919,29 +919,29 @@ Basis vectors ( 0.107892 0.000000 0.176896 0.000000 0.114270 0.000000 ) ( 0.107892 0.000000 -0.176896 0.000000 -0.114270 0.000000 ) freq ( 25) = 32.09428546 [THz] = 1070.54997601 [cm-1] -( -0.000000 0.000000 -0.035654 0.000000 0.024948 0.000000 ) -( 0.000000 0.000000 0.496236 0.000000 0.024837 0.000000 ) -( -0.000000 0.000000 0.120098 0.000000 -0.436907 0.000000 ) -( 0.000000 0.000000 -0.003481 0.000000 0.011802 0.000000 ) -( 0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) -( -0.103578 0.000000 0.069539 0.000000 -0.085583 0.000000 ) -( -0.000000 0.000000 0.035654 0.000000 0.024948 0.000000 ) -( 0.000000 0.000000 -0.496236 0.000000 0.024837 0.000000 ) -( 0.000000 0.000000 -0.120098 0.000000 -0.436907 0.000000 ) -( -0.000000 0.000000 0.003481 0.000000 0.011802 0.000000 ) -( -0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) -( 0.103578 0.000000 -0.069539 0.000000 -0.085583 0.000000 ) +( -0.000000 0.000000 0.035654 0.000000 -0.024948 0.000000 ) +( -0.000000 0.000000 -0.496236 0.000000 -0.024837 0.000000 ) +( 0.000000 0.000000 -0.120098 0.000000 0.436907 0.000000 ) +( -0.000000 0.000000 0.003481 0.000000 -0.011802 0.000000 ) +( -0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) +( 0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) +( -0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) +( -0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) +( 0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) +( -0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) +( 0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) +( -0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) freq ( 26) = 32.55854203 [THz] = 1086.03590588 [cm-1] ( -0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) -( 0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) +( -0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) ( 0.000000 0.000000 -0.103721 0.000000 0.347526 0.000000 ) -( 0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) +( -0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) -( 0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) -( 0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) +( -0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) +( -0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) ( 0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) -( 0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) +( -0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) freq ( 27) = 34.33677276 [THz] = 1145.35128984 [cm-1] @@ -952,72 +952,72 @@ Basis vectors ( -0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( -0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) -( -0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) -( -0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) -( 0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) +( 0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) +( 0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) +( -0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) freq ( 28) = 34.43427982 [THz] = 1148.60377497 [cm-1] ( -0.000000 0.000000 -0.002777 0.000000 0.003396 0.000000 ) -( 0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) -( 0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) +( -0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) +( -0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) ( -0.000000 0.000000 0.031764 0.000000 -0.019397 0.000000 ) ( -0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) ( 0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) ( -0.000000 0.000000 0.002777 0.000000 0.003396 0.000000 ) -( 0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) -( 0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) -( -0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) +( -0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) +( -0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) +( 0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) ( 0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) ( -0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) freq ( 29) = 58.49309377 [THz] = 1951.11931058 [cm-1] -( 0.000000 0.000000 -0.000385 0.000000 -0.044914 0.000000 ) -( 0.000000 0.000000 -0.004574 0.000000 0.685508 0.000000 ) -( 0.000000 0.000000 -0.037283 0.000000 -0.020274 0.000000 ) -( -0.000000 0.000000 -0.006725 0.000000 0.007763 0.000000 ) -( -0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) -( 0.088782 0.000000 0.061276 0.000000 -0.037816 0.000000 ) -( 0.000000 0.000000 0.000385 0.000000 -0.044914 0.000000 ) -( 0.000000 0.000000 0.004574 0.000000 0.685508 0.000000 ) -( -0.000000 0.000000 0.037283 0.000000 -0.020274 0.000000 ) -( -0.000000 0.000000 0.006725 0.000000 0.007763 0.000000 ) -( 0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) -( -0.088782 0.000000 -0.061276 0.000000 -0.037816 0.000000 ) +( 0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) +( 0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) +( 0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) +( -0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) +( 0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) +( -0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) +( 0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) +( 0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) +( -0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) +( -0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) +( -0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) +( 0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) freq ( 30) = 58.64595875 [THz] = 1956.21833687 [cm-1] ( 0.000000 0.000000 0.038621 0.000000 0.009281 0.000000 ) -( -0.000000 0.000000 -0.029768 0.000000 0.049879 0.000000 ) +( 0.000000 0.000000 -0.029768 0.000000 0.049879 0.000000 ) ( 0.000000 0.000000 -0.559468 0.000000 -0.148460 0.000000 ) ( -0.000000 0.000000 0.018040 0.000000 -0.013870 0.000000 ) ( 0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) ( -0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) -( -0.000000 0.000000 0.038621 0.000000 -0.009281 0.000000 ) -( -0.000000 0.000000 -0.029768 0.000000 -0.049879 0.000000 ) +( 0.000000 0.000000 0.038621 0.000000 -0.009281 0.000000 ) +( 0.000000 0.000000 -0.029768 0.000000 -0.049879 0.000000 ) ( -0.000000 0.000000 -0.559468 0.000000 0.148460 0.000000 ) -( 0.000000 0.000000 0.018040 0.000000 0.013870 0.000000 ) +( -0.000000 0.000000 0.018040 0.000000 0.013870 0.000000 ) ( 0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) ( -0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) freq ( 31) = 59.18441210 [THz] = 1974.17920491 [cm-1] -( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.057236 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.003846 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.003416 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.057236 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) -( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.003846 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.003416 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.057236 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) freq ( 32) = 59.64579843 [THz] = 1989.56939401 [cm-1] -( 0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.004387 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.015191 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.055912 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) ( 0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) -( -0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.004387 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.015191 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.055912 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) @@ -1025,53 +1025,53 @@ Basis vectors freq ( 33) = 61.28050278 [THz] = 2044.09725399 [cm-1] ( -0.000000 0.000000 -0.043022 0.000000 -0.019555 0.000000 ) ( -0.000000 0.000000 0.011017 0.000000 0.020659 0.000000 ) -( 0.000000 0.000000 0.669201 0.000000 0.219427 0.000000 ) +( -0.000000 0.000000 0.669201 0.000000 0.219427 0.000000 ) ( 0.000000 0.000000 0.002372 0.000000 0.002514 0.000000 ) ( -0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) ( 0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) -( -0.000000 0.000000 0.043022 0.000000 -0.019555 0.000000 ) +( 0.000000 0.000000 0.043022 0.000000 -0.019555 0.000000 ) ( -0.000000 0.000000 -0.011017 0.000000 0.020659 0.000000 ) -( -0.000000 0.000000 -0.669201 0.000000 0.219427 0.000000 ) -( 0.000000 0.000000 -0.002372 0.000000 0.002514 0.000000 ) +( 0.000000 0.000000 -0.669201 0.000000 0.219427 0.000000 ) +( -0.000000 0.000000 -0.002372 0.000000 0.002514 0.000000 ) ( 0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) ( -0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) freq ( 34) = 63.16500883 [THz] = 2106.95760040 [cm-1] -( -0.000000 0.000000 0.001416 0.000000 0.045005 0.000000 ) -( -0.000000 0.000000 -0.005022 0.000000 -0.703766 0.000000 ) -( -0.000000 0.000000 -0.015560 0.000000 -0.013643 0.000000 ) -( 0.000000 0.000000 0.003291 0.000000 -0.001095 0.000000 ) -( 0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) -( -0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) -( 0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) -( -0.000000 0.000000 -0.005022 0.000000 0.703766 0.000000 ) -( -0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) -( 0.000000 0.000000 0.003291 0.000000 0.001095 0.000000 ) -( 0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) -( -0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) +( -0.000000 0.000000 -0.001416 0.000000 -0.045005 0.000000 ) +( -0.000000 0.000000 0.005022 0.000000 0.703766 0.000000 ) +( -0.000000 0.000000 0.015560 0.000000 0.013643 0.000000 ) +( 0.000000 0.000000 -0.003291 0.000000 0.001095 0.000000 ) +( -0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) +( 0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) +( 0.000000 0.000000 -0.001416 0.000000 0.045005 0.000000 ) +( -0.000000 0.000000 0.005022 0.000000 -0.703766 0.000000 ) +( 0.000000 0.000000 0.015560 0.000000 -0.013643 0.000000 ) +( -0.000000 0.000000 -0.003291 0.000000 -0.001095 0.000000 ) +( -0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) +( 0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) freq ( 35) = 63.58360137 [THz] = 2120.92034271 [cm-1] -( 0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) -( 0.000000 0.000000 0.020599 0.000000 -0.158729 0.000000 ) -( 0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) -( -0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) -( -0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) -( 0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) -( 0.000000 0.000000 -0.000415 0.000000 0.010914 0.000000 ) -( 0.000000 0.000000 -0.020599 0.000000 -0.158729 0.000000 ) -( -0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) -( -0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) -( 0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) -( -0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) +( 0.000000 0.000000 -0.000415 0.000000 -0.010914 0.000000 ) +( 0.000000 0.000000 -0.020599 0.000000 0.158729 0.000000 ) +( -0.000000 0.000000 -0.004820 0.000000 0.005043 0.000000 ) +( -0.000000 0.000000 0.030334 0.000000 -0.019763 0.000000 ) +( 0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) +( -0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) +( 0.000000 0.000000 0.000415 0.000000 -0.010914 0.000000 ) +( 0.000000 0.000000 0.020599 0.000000 0.158729 0.000000 ) +( 0.000000 0.000000 0.004820 0.000000 0.005043 0.000000 ) +( -0.000000 0.000000 -0.030334 0.000000 -0.019763 0.000000 ) +( -0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) +( 0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) freq ( 36) = 65.67178765 [THz] = 2190.57472950 [cm-1] -( -0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) -( -0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) -( 0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) -( 0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) -( -0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) -( 0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) -( -0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) -( -0.000000 0.000000 0.012953 0.000000 0.011116 0.000000 ) -( 0.000000 0.000000 -0.369990 0.000000 0.144128 0.000000 ) -( 0.000000 0.000000 -0.024431 0.000000 -0.017416 0.000000 ) -( -0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) -( 0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) +( -0.000000 0.000000 -0.022668 0.000000 -0.009602 0.000000 ) +( -0.000000 0.000000 -0.012953 0.000000 0.011116 0.000000 ) +( -0.000000 0.000000 0.369990 0.000000 0.144128 0.000000 ) +( 0.000000 0.000000 0.024431 0.000000 -0.017416 0.000000 ) +( 0.338616 0.000000 -0.192504 0.000000 0.136199 0.000000 ) +( -0.338616 0.000000 -0.192504 0.000000 0.136199 0.000000 ) +( -0.000000 0.000000 -0.022668 0.000000 0.009602 0.000000 ) +( -0.000000 0.000000 -0.012953 0.000000 -0.011116 0.000000 ) +( -0.000000 0.000000 0.369990 0.000000 -0.144128 0.000000 ) +( 0.000000 0.000000 0.024431 0.000000 0.017416 0.000000 ) +( 0.338616 0.000000 -0.192504 0.000000 -0.136199 0.000000 ) +( -0.338616 0.000000 -0.192504 0.000000 -0.136199 0.000000 ) *************************************************************************** From 4e14185cfe699125f5e2e122fe32505b1b5bd3a1 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 16 Feb 2023 11:26:49 +0100 Subject: [PATCH 098/204] Now the timer can save the report --- cellconstructor/Timer.py | 86 ++++++++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index c58efdd3..0f0315d5 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -2,10 +2,44 @@ import numpy as np import cellconstructor as CC, cellconstructor.Settings from cellconstructor.Settings import ParallelPrint as print +import inspect +import json + + +# Recursively transform a class into a dictionary +def to_dict(obj): + if isinstance(obj, dict): + return {k: to_dict(v) for k, v in obj.items()} + elif hasattr(obj, '__dict__'): + return to_dict(obj.__dict__) + elif isinstance(obj, list): + return [to_dict(elem) for elem in obj] + else: + return obj + +# Recursively transform a dictionary into the timer object +def to_timer(dict): + if "timed_subroutines" in dict: + for name in dict["timed_subroutines"]: + if dict["timed_subroutines"][name]["timer"] is not None: + dict["timed_subroutines"][name]["timer"] = to_timer(dict["timed_subroutines"][name]["timer"]) + + timer = Timer() + timer.__dict__.update(dict) + return timer + return dict -class Timer: +def load_json(filename): + """ + Load a timer object from a json file + """ + with open(filename, "r") as f: + my_dyct = json.load(f) + return to_timer(my_dyct) + +class Timer: def __init__(self, active=False, print_each=None, level=0): """ This class is used to time functions over several repeats @@ -52,7 +86,7 @@ def spawn_child(self): """Spawn a child timer.""" return Timer(active=self.active, print_each=self.print_each, level=self.level+1) - def execute_timed_function(self, function, *args, **kwargs): + def execute_timed_function(self, function, *args, override_name="", **kwargs): """ Execute the function with the given arguments and keyword arguments and time it. This method returns whatever is returned by the function @@ -62,24 +96,42 @@ def execute_timed_function(self, function, *args, **kwargs): # Check if the function accept the "timer" keyword argument new_timer = None - if "timer" in function.__code__.co_varnames and not "timer" in kwargs: - if function.__name__ in self.timed_subroutines: - new_timer = self.timed_subroutines[function.__name__]["timer"] + func_name = override_name + isfunction = inspect.isfunction(function) or inspect.ismethod(function) + if isfunction: + if not func_name: + func_name = function.__name__ + if "timer" in inspect.getargspec(function).args and not "timer" in kwargs: + if func_name in self.timed_subroutines: + new_timer = self.timed_subroutines[func_name]["timer"] + else: + new_timer = self.spawn_child() + ret = function(*args, timer=new_timer,**kwargs) else: - new_timer = self.spawn_child() - ret = function(*args, timer=new_timer,**kwargs) + ret = function(*args, **kwargs) else: + assert callable(function), "The function argument must be a function or a callable object, got: {}".format(type(function)) ret = function(*args, **kwargs) + if not func_name: + func_name = function.__class__.__name__ t2 = time.time() - self.add_timer(function.__name__, t2-t1, new_timer) + + self.add_timer(func_name, t2-t1, new_timer) return ret else: return function(*args, **kwargs) + def save_json(self, filename): + """ + Save the timing data to a file in json format + """ + # save all the dictionary of this function as a json file + with open(filename, "w") as f: + my_dyct = to_dict(self) + json.dump(my_dyct, f, indent=4) - - def print_report(self, master_level=0, is_master=False): + def print_report(self, master_level=0, is_master=False, verbosity_limit=0.05): """ Print the report on timing for each timer and subtimer contained. @@ -90,6 +142,10 @@ def print_report(self, master_level=0, is_master=False): is_master: bool If True, ignore the master_level keyword and assume this timer is the master. This is equivalent to setting master_level = self.level + verbosity_limit: float + The minimum percentage of time occupied by each function above which the function is printed. + This is used to avoid printing too many functions that are not relevant. + Put 0 to print all functions. """ if is_master: master_level = self.level @@ -99,10 +155,16 @@ def print_report(self, master_level=0, is_master=False): prefix = " "*4*level if level == 0: - print("\n\n" + "="*24 + "\n" + " "*8 + "TIMER REPORT" + " "*8 + "\n" + "="*24 + "\n") + print("\n\n" + "="*24 + "\n" + " "*6 + "TIMER REPORT" + " "*6 + "\n" + "="*24 + "\n") + print("Threshold for printing: {:d} %".format(int(verbosity_limit*100))) + print() + + total_time = sum([self.timed_subroutines[name]["time"] for name in self.timed_subroutines]) for name in self.timed_subroutines: tt = self.timed_subroutines[name]["time"] + if tt / total_time < verbosity_limit: + continue hours = int(tt) // 3600 tt -= hours * 3600 minutes = int(tt) // 60 @@ -113,7 +175,7 @@ def print_report(self, master_level=0, is_master=False): print("{}Average of {} s per call".format(prefix, self.timed_subroutines[name]["time"] / self.timed_subroutines[name]["counts"])) if self.timed_subroutines[name]["timer"] is not None: print("{}Subroutine report:".format(prefix)) - self.timed_subroutines[name]["timer"].print_report(master_level=master_level) + self.timed_subroutines[name]["timer"].print_report(master_level=master_level, verbosity_limit=verbosity_limit) print() From f064d868e7304bb0eb93b0a820a0202abc625a1c Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 16 Feb 2023 12:38:25 +0100 Subject: [PATCH 099/204] Fixed an error of the timer with mixed function --- cellconstructor/Timer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Timer.py b/cellconstructor/Timer.py index 0f0315d5..c0fbccc4 100644 --- a/cellconstructor/Timer.py +++ b/cellconstructor/Timer.py @@ -101,7 +101,10 @@ def execute_timed_function(self, function, *args, override_name="", **kwargs): if isfunction: if not func_name: func_name = function.__name__ - if "timer" in inspect.getargspec(function).args and not "timer" in kwargs: + + sig = inspect.signature(function) + tparam = sig.parameters.get("timer") + if tparam is not None and not "timer" in kwargs: if func_name in self.timed_subroutines: new_timer = self.timed_subroutines[func_name]["timer"] else: From ef8bc0ab224312bf8eecff289d6c17e9112ee23e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Feb 2023 11:51:35 +0100 Subject: [PATCH 100/204] Adding separator. Not sure this get_dielectric_function will work correctly. --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 79fb0018..8c441427 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3144,6 +3144,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") +#------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn , d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) From df3f78934e7718e159b5aa9d317a50bd137bd61d Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 12:42:31 +0100 Subject: [PATCH 101/204] Dielectric function, bubble calculation --- cellconstructor/Spectral.py | 95 ++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 8c441427..4ea42641 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,7 +3145,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q, dyn , d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) @@ -3157,6 +3157,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() b = atom b -> Z(b) atomic number of atom b nu = damping constant + q : ndarray(size = 3) = The q point at which compute the bubble. --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses @@ -3186,7 +3187,97 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, dyn Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) epsilon_inf = Fonon.dielectric_tensor() Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) - + #---------------------------------------------------------------- + + def compute_k(k): + # phi3 in q, k, -q - k + t1 = time.time() + phi3=tensor3.Interpolate(k,-q-k, asr = False) + t2 = time.time() + # phi2 in k + phi2_k = tensor2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) + + t3 = time.time() + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + + t4 = time.time() + + # Fortran duty ==== + tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) + + t5 = time.time() + + if verbose: + print("Time to interpolate the third order: {} s".format(t2 - t1)) + print("Time to interpolate the second order: {} s".format(t3 - t2)) + print("Time to transform the tensors: {} s".format(t4 - t3)) + print("Time to compute the bubble: {} s".format(t5 - t4)) + + return tmp_bubble + + + CC.Settings.SetupParallel() + d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # Get the phi2 in q + phi2_q = tensor2.Interpolate(q, asr = False) + d2_q = phi2_q * mm_inv_mat + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + # divide by the N_k factor + d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) + # the self-energy bubble in cartesian coord, divided by the sqare root of masses + d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) + #---------------------------------------------------------------- response1 = -(N/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value for a in range(dyn.structure.N_atoms): From f38e8b903b8d0b3f53c99c8f3aaec2afdfb484f3 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:10:41 +0100 Subject: [PATCH 102/204] Quick fix --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 4ea42641..07ea1884 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3189,7 +3189,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q, dyn Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) #---------------------------------------------------------------- - def compute_k(k): + def compute_k(k): # phi3 in q, k, -q - k t1 = time.time() phi3=tensor3.Interpolate(k,-q-k, asr = False) From a1c2c44ce871733fc3545b9164c443f6ed6d44ef Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:11:53 +0100 Subject: [PATCH 103/204] New fix --- cellconstructor/Spectral.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 07ea1884..3808cc18 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3188,7 +3188,6 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q, dyn epsilon_inf = Fonon.dielectric_tensor() Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) #---------------------------------------------------------------- - def compute_k(k): # phi3 in q, k, -q - k t1 = time.time() @@ -3260,23 +3259,23 @@ def compute_k(k): return tmp_bubble - CC.Settings.SetupParallel() - d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") - # Get the integration points - k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() - mm_mat = np.sqrt(np.outer(m, m)) - mm_inv_mat = 1 / mm_mat - # Get the phi2 in q - phi2_q = tensor2.Interpolate(q, asr = False) - d2_q = phi2_q * mm_inv_mat - # Diagonalize the dynamical matrix in q - w2_q, pols_q = np.linalg.eigh(d2_q) - # divide by the N_k factor - d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) - # the self-energy bubble in cartesian coord, divided by the sqare root of masses - d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) + CC.Settings.SetupParallel() + d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # Get the phi2 in q + phi2_q = tensor2.Interpolate(q, asr = False) + d2_q = phi2_q * mm_inv_mat + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + # divide by the N_k factor + d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) + # the self-energy bubble in cartesian coord, divided by the sqare root of masses + d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- response1 = -(N/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value From 91e096b772a5a5182c232f385693b79f91f8281a Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:18:30 +0100 Subject: [PATCH 104/204] Fix by adding tensor3 --- cellconstructor/Spectral.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3808cc18..3ccfa72b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,8 +3145,8 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q, dyn - , d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... +def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q + , tensor3, dyn, d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ @@ -3158,6 +3158,7 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q, dyn b = atom b -> Z(b) atomic number of atom b nu = damping constant q : ndarray(size = 3) = The q point at which compute the bubble. + tensor3 : Tensor3() = The third order force constant matrix --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses From 613cb893ad1f2a6e6df9b61d784369359f8dbd29 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:29:09 +0100 Subject: [PATCH 105/204] Fix --- cellconstructor/Spectral.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3ccfa72b..de73dbd6 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3231,7 +3231,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + w_q=np.sqrt(w2_q) # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) @@ -3244,7 +3244,7 @@ def compute_k(k): t4 = time.time() # Fortran duty ==== - tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, + tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(ener,smear,static_limit,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) @@ -3261,7 +3261,7 @@ def compute_k(k): CC.Settings.SetupParallel() - d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) # dynamical matrix in q @@ -3273,6 +3273,7 @@ def compute_k(k): d2_q = phi2_q * mm_inv_mat # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) + d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") # divide by the N_k factor d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) # the self-energy bubble in cartesian coord, divided by the sqare root of masses From a7ffee507267e3a14b80c297317be90fc1917202 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:42:41 +0100 Subject: [PATCH 106/204] Another fix --- cellconstructor/Spectral.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index de73dbd6..0e694822 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3146,7 +3146,9 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, #------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q - , tensor3, dyn, d_bubble_cart, ie, ismear, ener): #skeleton function for TESTING... + , tensor3, k_grid, nsm + , dyn, d_bubble_cart, ie, ismear, smear + , ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ @@ -3159,6 +3161,8 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q nu = damping constant q : ndarray(size = 3) = The q point at which compute the bubble. tensor3 : Tensor3() = The third order force constant matrix + k_grid : list(len = 3) = The integration grid on the Brillouin zone + nsm : integer = Number of smearings to consider (default = 1) --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses @@ -3251,11 +3255,11 @@ def compute_k(k): t5 = time.time() - if verbose: - print("Time to interpolate the third order: {} s".format(t2 - t1)) - print("Time to interpolate the second order: {} s".format(t3 - t2)) - print("Time to transform the tensors: {} s".format(t4 - t3)) - print("Time to compute the bubble: {} s".format(t5 - t4)) + # if verbose: + # print("Time to interpolate the third order: {} s".format(t2 - t1)) + # print("Time to interpolate the second order: {} s".format(t3 - t2)) + # print("Time to transform the tensors: {} s".format(t4 - t3)) + # print("Time to compute the bubble: {} s".format(t5 - t4)) return tmp_bubble From c12e7e85c391a22742a5c5041b134358bfa1ce62 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:50:16 +0100 Subject: [PATCH 107/204] Fix --- cellconstructor/Spectral.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 0e694822..1c653c6f 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3146,8 +3146,8 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, #------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q - , tensor3, k_grid, nsm - , dyn, d_bubble_cart, ie, ismear, smear + , tensor3, k_grid, nsm=1, static_limit=False, T, ne + , dyn, d_bubble_cart, ie, ismear, smear, diag_approx=False , ener): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) @@ -3248,6 +3248,8 @@ def compute_k(k): t4 = time.time() # Fortran duty ==== + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(ener,smear,static_limit,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), From af075d7c0f204c51935e9a2bac553f48e1db8385 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:54:34 +0100 Subject: [PATCH 108/204] Changed order of inputs in function --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1c653c6f..e7532aa2 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3146,9 +3146,9 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, #------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q - , tensor3, k_grid, nsm=1, static_limit=False, T, ne - , dyn, d_bubble_cart, ie, ismear, smear, diag_approx=False - , ener): #skeleton function for TESTING... + , tensor3, k_grid, T, ne, ener + , dyn, d_bubble_cart, ie, ismear, smear + , diag_approx=False,, nsm=1, static_limit=False): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ From eb915f4aed211b6aa1d4df4491916cbbe52f056e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 9 Mar 2023 16:55:02 +0100 Subject: [PATCH 109/204] Fix comma --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index e7532aa2..5e9e51bf 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3148,7 +3148,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q , tensor3, k_grid, T, ne, ener , dyn, d_bubble_cart, ie, ismear, smear - , diag_approx=False,, nsm=1, static_limit=False): #skeleton function for TESTING... + , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ From e05ef671e73eee0f2c0b6ad4d916173b1ddc44d0 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 07:50:02 +0100 Subject: [PATCH 110/204] Energy and smearing --- cellconstructor/Spectral.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5e9e51bf..b468582b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3147,7 +3147,7 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, #------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q , tensor3, k_grid, T, ne, ener - , dyn, d_bubble_cart, ie, ismear, smear + , dyn, d_bubble_cart, ie, ismear , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) @@ -3192,6 +3192,21 @@ def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) epsilon_inf = Fonon.dielectric_tensor() Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) + # ======================= Energy & Smearing ========================================== + # energy in input is in cm-1 + # smearing in input is in cm-1 + # converto to Ry + + # list of energies + energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM + ne=energies.shape[0] + # list of smearing + if nsm == 1 : + sm1=sm0 + sm1_id=sm0_id + smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM + smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM + # ========================================================================================== #---------------------------------------------------------------- def compute_k(k): # phi3 in q, k, -q - k @@ -3250,7 +3265,7 @@ def compute_k(k): # Fortran duty ==== # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(ener,smear,static_limit,T, + tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) @@ -3294,7 +3309,7 @@ def compute_k(k): response2 += temp response_function = response1*response2 - epsilon=epsilon_inf+4*np.pi*response_function + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? refractive_index = np.sqrt(epsilon) return 0 From b5cc7a8a94ceacaad38433bee60b99c6d0075f1b Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 07:58:49 +0100 Subject: [PATCH 111/204] Fix --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index b468582b..ba4400bb 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3146,8 +3146,8 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, #------------------------------------------------------------------------------- def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q - , tensor3, k_grid, T, ne, ener - , dyn, d_bubble_cart, ie, ismear + , tensor3, k_grid, T, ne, ener, e0 ,e1, de + , dyn, d_bubble_cart, ie, ismear, sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... # (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) From 4871983a4dbe102860051fdb3c106658c96258d2 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 08:01:08 +0100 Subject: [PATCH 112/204] Take out useless input --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ba4400bb..1b7412db 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,11 +3145,11 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(omega, epsilon_inf, N, atom_a, atom_b, nu, q +def get_dielectric_function(omega, N, atom_a, atom_b, nu, q , tensor3, k_grid, T, ne, ener, e0 ,e1, de , dyn, d_bubble_cart, ie, ismear, sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# (epsilon_inf,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: From 00abf36e23206377ee689178b334c8f82402aeeb Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 08:13:33 +0100 Subject: [PATCH 113/204] Cleaning input --- cellconstructor/Spectral.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1b7412db..7175088c 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,11 +3145,11 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(omega, N, atom_a, atom_b, nu, q +def get_dielectric_function(omega, N, nu, q , tensor3, k_grid, T, ne, ener, e0 ,e1, de , dyn, d_bubble_cart, ie, ismear, sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (epsilon_inf,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# (epsilon_inf,atom_a, atom_b,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: @@ -3163,6 +3163,8 @@ def get_dielectric_function(omega, N, atom_a, atom_b, nu, q tensor3 : Tensor3() = The third order force constant matrix k_grid : list(len = 3) = The integration grid on the Brillouin zone nsm : integer = Number of smearings to consider (default = 1) + e1, de ,e0: float = The list of energies considered (cm-1), from e0 to e1, with interval de + sm0_id, sm1_id : float = Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses From 403006a29c3a97dbc9b119d54ae3f6571b0e1f15 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 08:29:17 +0100 Subject: [PATCH 114/204] Set calculation on Gamma --- cellconstructor/Spectral.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7175088c..2c96ffd8 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,11 +3145,10 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(omega, N, nu, q - , tensor3, k_grid, T, ne, ener, e0 ,e1, de +def get_dielectric_function(tensor3, k_grid, T, ener, e0 ,e1, de , dyn, d_bubble_cart, ie, ismear, sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (epsilon_inf,atom_a, atom_b,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# (omega,N,nu,q, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: @@ -3159,7 +3158,7 @@ def get_dielectric_function(omega, N, nu, q a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() b = atom b -> Z(b) atomic number of atom b nu = damping constant - q : ndarray(size = 3) = The q point at which compute the bubble. + q : ndarray(size = 3) = The q point at which compute the bubble. <-- this id Gamma so (0,0,0) or np.zeros(3) tensor3 : Tensor3() = The third order force constant matrix k_grid : list(len = 3) = The integration grid on the Brillouin zone nsm : integer = Number of smearings to consider (default = 1) @@ -3177,6 +3176,7 @@ def get_dielectric_function(omega, N, nu, q #electric_charge = 4.803e-10 #Fr (CGS) electric_charge = 1.602176462e-19 #C (SI) epsilon = np.zeros((3,3)) + q = np.zeros(3) twopi = 2*np.pi # Prepare the tensor2 and obtain masses tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) @@ -3302,7 +3302,7 @@ def compute_k(k): # the self-energy bubble in cartesian coord, divided by the sqare root of masses d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- - response1 = -(N/Big_omega) * electric_charge**2 + response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value for a in range(dyn.structure.N_atoms): for b in range(dyn.structure.N_atoms): From e415893721597943add78d916c19575a1aa3e89e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 10 Mar 2023 15:44:58 +0100 Subject: [PATCH 115/204] Cleaning input of the dielectric function --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 2c96ffd8..ee70ddca 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,10 +3145,10 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(tensor3, k_grid, T, ener, e0 ,e1, de - , dyn, d_bubble_cart, ie, ismear, sm0, sm0_id +def get_dielectric_function(dyn, tensor3, k_grid, T, ener, e0 ,e1, de + , ie, ismear, sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (omega,N,nu,q, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# (omega,N,nu,q, d_bubble_cart, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: From 2ae4086c7645caac8197f3334027d33ba9c0e600 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 13 Mar 2023 11:47:50 +0100 Subject: [PATCH 116/204] Cleaning and using energies instead of ener --- cellconstructor/Spectral.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ee70ddca..532e7e08 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,22 +3145,21 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(dyn, tensor3, k_grid, T, ener, e0 ,e1, de - , ie, ismear, sm0, sm0_id +def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear + , sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (omega,N,nu,q, d_bubble_cart, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# (omega,N,nu,q, d_bubble_cart, ener, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: - omega = Frequency epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) - N = nº atoms a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() b = atom b -> Z(b) atomic number of atom b - nu = damping constant q : ndarray(size = 3) = The q point at which compute the bubble. <-- this id Gamma so (0,0,0) or np.zeros(3) tensor3 : Tensor3() = The third order force constant matrix k_grid : list(len = 3) = The integration grid on the Brillouin zone + T : Temperature + ener : energies nsm : integer = Number of smearings to consider (default = 1) e1, de ,e0: float = The list of energies considered (cm-1), from e0 to e1, with interval de sm0_id, sm1_id : float = Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity @@ -3274,12 +3273,6 @@ def compute_k(k): t5 = time.time() - # if verbose: - # print("Time to interpolate the third order: {} s".format(t2 - t1)) - # print("Time to interpolate the second order: {} s".format(t3 - t2)) - # print("Time to transform the tensors: {} s".format(t4 - t3)) - # print("Time to compute the bubble: {} s".format(t5 - t4)) - return tmp_bubble @@ -3304,10 +3297,12 @@ def compute_k(k): #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value + #for ie in range(len(ne)): for a in range(dyn.structure.N_atoms): for b in range(dyn.structure.N_atoms): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + # temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma response2 += temp response_function = response1*response2 From 6cf14275baf7ad4995878c23eb29ea31f7557b46 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 16 Mar 2023 16:26:00 +0100 Subject: [PATCH 117/204] Update spectral function --- cellconstructor/Spectral.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 532e7e08..f9fb4ade 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3297,13 +3297,13 @@ def compute_k(k): #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value - #for ie in range(len(ne)): - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp + for ie in range(ne): + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp response_function = response1*response2 epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? From acd587c8f4b4d1efcafafd92df28840826eae001 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 17 Mar 2023 08:17:52 +0100 Subject: [PATCH 118/204] Nothing new of interest, just the effective charges explicit product --- cellconstructor/Spectral.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index f9fb4ade..34cf4d20 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3300,8 +3300,10 @@ def compute_k(k): for ie in range(ne): for a in range(dyn.structure.N_atoms): for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma response2 += temp response_function = response1*response2 From 258f112c90847a7e9ac43dd24e238fb0863f0345 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 17 Mar 2023 11:40:33 +0100 Subject: [PATCH 119/204] Need to change from energies to frequencies? --- cellconstructor/Spectral.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 34cf4d20..dc0ac294 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3297,15 +3297,15 @@ def compute_k(k): #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value - for ie in range(ne): - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp + #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp response_function = response1*response2 epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? From f8caeb8e3537f3737ade5388bcd6e0ce4fe6b40c Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:05:20 +0100 Subject: [PATCH 120/204] dielectric read for epsilon_inf and effective charge --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index dc0ac294..6e42270c 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3191,7 +3191,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear M =structure.get_masses_array() #prepare the dielctric tensor of vacuum and effective charges Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) - epsilon_inf = Fonon.dielectric_tensor() + epsilon_inf = Fonon.dielectric_tensor() #(3,3) Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # ======================= Energy & Smearing ========================================== # energy in input is in cm-1 @@ -3304,11 +3304,11 @@ def compute_k(k): # for j in range(3): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma response2 += temp response_function = response1*response2 - epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? + epsilon=epsilon_inf(dielectric_read,:)+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? refractive_index = np.sqrt(epsilon) return 0 From 98b48c85209466333b0c5c161633a23f5accd05d Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:08:41 +0100 Subject: [PATCH 121/204] Fix epsilon_inf --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 6e42270c..bcb303ae 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3191,7 +3191,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear M =structure.get_masses_array() #prepare the dielctric tensor of vacuum and effective charges Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) - epsilon_inf = Fonon.dielectric_tensor() #(3,3) + epsilon_inf = Fonon.dielectric_tensor #(3,3) Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # ======================= Energy & Smearing ========================================== # energy in input is in cm-1 @@ -3308,7 +3308,7 @@ def compute_k(k): response2 += temp response_function = response1*response2 - epsilon=epsilon_inf(dielectric_read,:)+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? + epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? refractive_index = np.sqrt(epsilon) return 0 From 1370c27149f50f5d5ae36f4a0c1ff9d22bb40c71 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:10:25 +0100 Subject: [PATCH 122/204] Same dimension so no need for index? --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index bcb303ae..43fab25b 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3308,7 +3308,8 @@ def compute_k(k): response2 += temp response_function = response1*response2 - epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? +# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? refractive_index = np.sqrt(epsilon) return 0 From 583607a53ab78f1aa7bafdee5489939a1649b6b4 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:15:26 +0100 Subject: [PATCH 123/204] setting indexes for the response function and epsilon. Is this OK? --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 43fab25b..bfda0b64 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3304,12 +3304,12 @@ def compute_k(k): # for j in range(3): #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma response2 += temp response_function = response1*response2 -# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? - epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3nat,3nat) ?? + epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[ie,ismear,dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? +# epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,dielectric_read,(x,y,z)) ?? refractive_index = np.sqrt(epsilon) return 0 From 1f0ca937cddcd64f24a5bcd5994ea028e8d1bce3 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:24:27 +0100 Subject: [PATCH 124/204] Set dielectric_read loop --- cellconstructor/Spectral.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index bfda0b64..cde5efd2 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3192,7 +3192,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear #prepare the dielctric tensor of vacuum and effective charges Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) epsilon_inf = Fonon.dielectric_tensor #(3,3) - Z = Fonon.effective_charges() #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) + Z = Fonon.effective_charges #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) # ======================= Energy & Smearing ========================================== # energy in input is in cm-1 # smearing in input is in cm-1 @@ -3298,17 +3298,18 @@ def compute_k(k): response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp - response_function = response1*response2 - - epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[ie,ismear,dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? + for dielectric_read in range(3): + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp + response_function = response1*response2 + + epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[ie,ismear,dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? # epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,dielectric_read,(x,y,z)) ?? refractive_index = np.sqrt(epsilon) From 6e764bf171f9c1fff1ce92568de2e1f7c6dec1f7 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:26:28 +0100 Subject: [PATCH 125/204] Fix --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index cde5efd2..67177218 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3297,6 +3297,7 @@ def compute_k(k): #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value + temp = 0 #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. for dielectric_read in range(3): for a in range(dyn.structure.N_atoms): From 7c9e43bde02969a80154377e141ac1591d2fab50 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:36:09 +0100 Subject: [PATCH 126/204] Set energies loop --- cellconstructor/Spectral.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 67177218..6f464c1f 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3297,21 +3297,22 @@ def compute_k(k): #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = 0 #init the response2 value - temp = 0 + temp = np.zeros((3,3), dtype = np.double) #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. for dielectric_read in range(3): - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp + for ie in np.arange(ne) + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp response_function = response1*response2 - epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[ie,ismear,dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? -# epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,dielectric_read,(x,y,z)) ?? +# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,dielectric_read,(x,y,z)) ?? refractive_index = np.sqrt(epsilon) return 0 From b1807b8a95b00f6526b66078986ffe8f41e8772c Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:46:54 +0100 Subject: [PATCH 127/204] Better in function of the energy? --- cellconstructor/Spectral.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 6f464c1f..3af5679c 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3296,19 +3296,19 @@ def compute_k(k): d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 - response2 = 0 #init the response2 value - temp = np.zeros((3,3), dtype = np.double) + response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value + response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value + temp = np.zeros((ne,3,3), dtype = np.double) #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. for dielectric_read in range(3): - for ie in np.arange(ne) - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp[dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp response_function = response1*response2 # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? From adf371c2f209abd961bd10e7b9c9f195d8174d3d Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 20 Mar 2023 16:58:02 +0100 Subject: [PATCH 128/204] Need to fix the dimensions of epsilon vs. epsilon_inf. To make dimension(epsilon_inf)==dimension(epsilon) --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3af5679c..7c108898 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3174,7 +3174,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear """ #electric_charge = 4.803e-10 #Fr (CGS) electric_charge = 1.602176462e-19 #C (SI) - epsilon = np.zeros((3,3)) + epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) q = np.zeros(3) twopi = 2*np.pi # Prepare the tensor2 and obtain masses @@ -3311,8 +3311,8 @@ def compute_k(k): response2 += temp response_function = response1*response2 -# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3nat,3nat) ?? - epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,dielectric_read,(x,y,z)) ?? +# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? refractive_index = np.sqrt(epsilon) return 0 From e076cb531d1e80fb9bd1a13792a17c5b75f6070e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 22 Mar 2023 08:58:26 +0100 Subject: [PATCH 129/204] Are ie and ismear needed? --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7c108898..7bb9d571 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3163,6 +3163,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear nsm : integer = Number of smearings to consider (default = 1) e1, de ,e0: float = The list of energies considered (cm-1), from e0 to e1, with interval de sm0_id, sm1_id : float = Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity + ie, ismear = index of energies and smear, not needed? for ie in range(np.arange(e0,e1,de).shape[0]); for ismear in range(np.arange(sm0_id,sm1_id).shape[0]) --------- Z() = Born effective charge ---> Phonon.Phonon.effective_charges() M() = Atomic masses From 4b4d85d4bd543c2fef66d687bb418cf5bbf73428 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 22 Mar 2023 09:03:02 +0100 Subject: [PATCH 130/204] Fix?? --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7bb9d571..1bad5724 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3296,6 +3296,7 @@ def compute_k(k): # the self-energy bubble in cartesian coord, divided by the sqare root of masses d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- + ne = energies.shape[0] response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value From 8c87fbc31687e6422dbab8034e24df2abf7231e5 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 22 Mar 2023 09:05:38 +0100 Subject: [PATCH 131/204] Fix ne lint error? --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 1bad5724..eec667c3 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3296,9 +3296,9 @@ def compute_k(k): # the self-energy bubble in cartesian coord, divided by the sqare root of masses d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- - ne = energies.shape[0] + ne = energies.shape[0] response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 - response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value + response2 = np.zeros((int(ne),3,3), dtype = np.double) #init the response2 value response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value temp = np.zeros((ne,3,3), dtype = np.double) #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. From 94756f2da5bceb7b366b6c8f94804779421c07a6 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 22 Mar 2023 09:07:44 +0100 Subject: [PATCH 132/204] Fix epsilon lint error --- cellconstructor/Spectral.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index eec667c3..7f9e2cbd 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3175,7 +3175,6 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear """ #electric_charge = 4.803e-10 #Fr (CGS) electric_charge = 1.602176462e-19 #C (SI) - epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) q = np.zeros(3) twopi = 2*np.pi # Prepare the tensor2 and obtain masses @@ -3296,9 +3295,9 @@ def compute_k(k): # the self-energy bubble in cartesian coord, divided by the sqare root of masses d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- - ne = energies.shape[0] + epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 - response2 = np.zeros((int(ne),3,3), dtype = np.double) #init the response2 value + response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value temp = np.zeros((ne,3,3), dtype = np.double) #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. From b0279eeefd0ad89a4aea6aaa183ca26ed993440b Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 24 Mar 2023 11:54:50 +0100 Subject: [PATCH 133/204] Rewrote the energy loop for the dielectric function --- cellconstructor/Spectral.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 7f9e2cbd..5ca51457 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3295,25 +3295,25 @@ def compute_k(k): # the self-energy bubble in cartesian coord, divided by the sqare root of masses d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) #---------------------------------------------------------------- - epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) + epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value temp = np.zeros((ne,3,3), dtype = np.double) - #for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. - for dielectric_read in range(3): - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp - response_function = response1*response2 - -# epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? - epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? + for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. + for dielectric_read in range(3): + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp + response_function = response1*response2 + + # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? refractive_index = np.sqrt(epsilon) return 0 From 2022fb4b74e8e697196ba386ab44093a6b2a38db Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 29 Mar 2023 11:56:52 +0200 Subject: [PATCH 134/204] Set output of the dielectric function as an array --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 5ca51457..a138d5ec 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3316,4 +3316,4 @@ def compute_k(k): epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? refractive_index = np.sqrt(epsilon) - return 0 + return epsilon #, refractive_index From dabb418fc6fc039d7fb2f2a048d08fdd58037e6f Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 11 Apr 2023 16:28:59 +0200 Subject: [PATCH 135/204] Cauchy dispersion formula --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index a138d5ec..3222cf77 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3315,5 +3315,5 @@ def compute_k(k): # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? - refractive_index = np.sqrt(epsilon) + refractive_index = np.sqrt(epsilon) #Cauchy Dispersion formula return epsilon #, refractive_index From 40d8e30c20156fc5727e98940d1d0ebad344ed9f Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 11 Apr 2023 16:32:12 +0200 Subject: [PATCH 136/204] Update --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 3222cf77..d0a9d047 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3315,5 +3315,5 @@ def compute_k(k): # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? - refractive_index = np.sqrt(epsilon) #Cauchy Dispersion formula + refractive_index = np.sqrt(epsilon) #Cauchy Dispersion formula '**If mu=1** then n=sqrt(epsilon)' return epsilon #, refractive_index From c14ca94e65019a0ef291d5f195d1391c499248b0 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 17 Apr 2023 11:25:21 +0200 Subject: [PATCH 137/204] Calculate tensor3 --- cellconstructor/Spectral.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index d0a9d047..268f2972 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3181,6 +3181,9 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) tensor2.SetupFromPhonons(dyn) tensor2.Center() + + self.tensor3 = CC.ForceTensor.Tensor3(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + structure = tensor2.unitcell_structure alat=tensor2.unitcell_structure.unit_cell # a,b,c volume calculation From 56bc029164dff890e3dbdc40a7266408362e0074 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 17 Apr 2023 11:26:04 +0200 Subject: [PATCH 138/204] Fix --- cellconstructor/Spectral.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 268f2972..77f4ac19 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3145,10 +3145,10 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") #------------------------------------------------------------------------------- -def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear +def get_dielectric_function(dyn, k_grid, T, e0 ,e1, de, ie, ismear , sm0, sm0_id , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# (omega,N,nu,q, d_bubble_cart, ener, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) +# ( tensor3,omega,N,nu,q, d_bubble_cart, ener, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) """ Input data: @@ -3182,7 +3182,7 @@ def get_dielectric_function(dyn, tensor3, k_grid, T, e0 ,e1, de, ie, ismear tensor2.SetupFromPhonons(dyn) tensor2.Center() - self.tensor3 = CC.ForceTensor.Tensor3(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor3 = CC.ForceTensor.Tensor3(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) structure = tensor2.unitcell_structure alat=tensor2.unitcell_structure.unit_cell From a3d2dd4195f60b420fd98ef0a8b02c873976c81a Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 9 May 2023 10:09:10 +0200 Subject: [PATCH 139/204] Added Gruneisen calculation --- FModules/get_lf.f90 | 26 +-- FModules/third_order_cond_centering.f90 | 72 ++++--- cellconstructor/ThermalConductivity.py | 257 ++++++++++++++++++++---- 3 files changed, 278 insertions(+), 77 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index d09d576e..fa297b17 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -261,17 +261,17 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even w_q,self_energy,is_q_gamma,lineshape,masses,nat,ne) lineshape = lineshape*2.0_DP - !lineshapes(iqpt, :, :, :) = lineshape - do iband = 1, 3*nat - do jband = 1, 3*nat - do iband1 = 1, 3*nat - do jband1 = 1, 3*nat - lineshapes(iqpt, jband, iband, :) = lineshapes(iqpt, jband, iband, :) + & - lineshape(jband1,iband1,:)*pols_q(jband,jband1)*conjg(pols_q(iband,iband1)) - enddo - enddo - enddo - enddo + lineshapes(iqpt, :, :, :) = lineshape + !do iband = 1, 3*nat + ! do jband = 1, 3*nat + ! do iband1 = 1, 3*nat + ! do jband1 = 1, 3*nat + ! lineshapes(iqpt, jband, iband, :) = lineshapes(iqpt, jband, iband, :) + & + ! lineshape(jband1,iband1,:)*pols_q(jband,jband1)*conjg(pols_q(iband,iband1)) + ! enddo + ! enddo + ! enddo + !enddo else lineshapes(iqpt,:,:,:) = complex(0.0_DP, 0.0_DP) endif @@ -364,7 +364,7 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events print*, 'Negative eigenvalue of dynamical matrix!' w_neg_freqs = .True. endif -! print*, 'Interpolate frequency' + print*, 'Interpolate frequency' if(.not. w_neg_freqs) then w_q = sqrt(w2_q) self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) @@ -380,7 +380,7 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo - !print*, 'Got grids' + print*, 'Got grids' call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) diff --git a/FModules/third_order_cond_centering.f90 b/FModules/third_order_cond_centering.f90 index cfdc33a3..f777b711 100644 --- a/FModules/third_order_cond_centering.f90 +++ b/FModules/third_order_cond_centering.f90 @@ -165,12 +165,12 @@ subroutine apply_permutation_symmetry(tensor, r_vector2, r_vector3, new_tensor, ipair = pairs(i, 1) jpair = pairs(i, 2) do j = 1, 3*natom - if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & - tol*tol*tscale) then - new_tensor(ipair, j,:,:) = & - (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP - new_tensor(jpair, j,:,:) = transpose(new_tensor(ipair, j,:,:)) - endif + !if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & + ! tol*tol*tscale) then + new_tensor(ipair, j,:,:) = & + (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP + new_tensor(jpair, j,:,:) = transpose(new_tensor(ipair, j,:,:)) + ! endif enddo enddo endif @@ -247,12 +247,12 @@ subroutine apply_permutation_symmetry_local(tensor, r_vector2, r_vector3, n_R, n ipair = pairs(i, 1) jpair = pairs(i, 2) do j = 1, 3*natom - if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & - tol*tol*tscale) then - tensor(ipair, j,:,:) = & - (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP - tensor(jpair, j,:,:) = transpose(tensor(ipair, j,:,:)) - endif + !if(norma2(tensor(ipair, j,:,:) - transpose(tensor(jpair, j,:,:))) > & + ! tol*tol*tscale) then + tensor(ipair, j,:,:) = & + (tensor(ipair, j,:,:) + transpose(tensor(jpair, j,:,:)))/2.0_DP + tensor(jpair, j,:,:) = transpose(tensor(ipair, j,:,:)) + ! endif enddo enddo endif @@ -555,7 +555,7 @@ subroutine apply_asr(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) integer :: i_r, j_r, iat, jat, kat, list(n_R, n_R), tot_r, step real(kind=DP) :: aux_tensor(3, 3, 3) real(kind=DP), dimension(n_R,3) :: unique_rvec3 - real(kind=DP) :: tol, norma, tot_norma + real(kind=DP) :: tol, norma, tot_norma, norm_sum tol = 1.0_DP/10.0_DP**6 tot_norma = 1000.0_DP @@ -565,22 +565,30 @@ subroutine apply_asr(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) do while(tot_norma > tol) step = step + 1 do i_r = 1, tot_r - aux_tensor = 0.0_DP do iat = 1, natom do jat = 1, natom - do j_r = 1, list(tot_r, 1) + aux_tensor = 0.0_DP + norm_sum = 0.0_DP + do j_r = 1, list(i_r, 1) do kat = 1, natom - aux_tensor = aux_tensor + & - new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat, 3*(kat-1) + 1:3*kat) + aux_tensor = aux_tensor + & + new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat, 3*(kat-1) + 1:3*kat) + norm_sum = norm_sum + & + norma3(new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat, 3*(kat-1) + 1:3*kat)) + enddo + enddo + !aux_tensor = aux_tensor/dble(list(i_r, 1))/dble(natom) + do j_r = 1, list(i_r, 1) + do kat = 1, natom + if(norma3(aux_tensor) .gt. 0.0_DP) then + new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) = & + new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) & + - aux_tensor*& + norma3(new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) +1:3*kat))& + /norm_sum + endif enddo enddo - aux_tensor = aux_tensor/dble(list(tot_r, 1)) - do j_r = 1, list(tot_r, 1) - do kat = 1, natom - new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) = & - new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) - aux_tensor - enddo - enddo enddo enddo enddo @@ -590,10 +598,11 @@ subroutine apply_asr(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) do iat = 1, natom do jat = 1, natom norma = 0.0_DP - do j_r = 1, list(tot_r, 1) + aux_tensor = 0.0_DP + do j_r = 1, list(i_r, 1) do kat = 1, natom aux_tensor = aux_tensor + & - new_tensor(list(tot_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) + new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat,3*(kat-1) + 1:3*kat) enddo enddo norma = norma3(aux_tensor) @@ -631,10 +640,10 @@ subroutine find_unique_rvec(r_vec3, u_rvec3, list, n_R, tot_r) do i_r = 1, n_R found = .False. do j_r = 1, tot_r - if(norm(r_vec3(i_r,:) - aux_vec3(j_r, 3)) < tol) then + if(norm(r_vec3(i_r,:) - aux_vec3(j_r, :)) < tol) then found = .True. - list(tot_r, 1) = list(tot_r, 1) + 1 - list(tot_r, list(tot_r, 1)) = i_r + list(j_r, 1) = list(j_r, 1) + 1 + list(j_r, list(j_r, 1) + 1) = i_r EXIT endif enddo @@ -646,6 +655,11 @@ subroutine find_unique_rvec(r_vec3, u_rvec3, list, n_R, tot_r) endif enddo + if(sum(list(1:tot_r,1)) .ne. n_R) then + print*, 'Total number of triplets do not agree with sum of multiplicities for third vector!' + STOP + endif + u_rvec3(:,:) = aux_vec3(:,:) end subroutine diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 3284b3d3..a0d6de5a 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1335,7 +1335,7 @@ def calc_spectral_kappa_srta_diag(self, temperature, ne): #################################################################################################################################### def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = 'SRTA', offdiag_mode = 'wigner', gauss_smearing = False, lf_method = 'fortran-LA', isotope_scattering = False, isotopes = None, \ - write_lineshapes=False, ne = 2000, kappa_filename = 'Thermal_conductivity'): + write_lineshapes=False, ne = 2000, mode_mixing = False, kappa_filename = 'Thermal_conductivity'): """ Main function that calculates lattice thermal conductivity. @@ -1352,6 +1352,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = ne : Number of frequency points to calculate phonon lineshapes on in case of GK. \ Number of frequency points to solve self-consistent equation on in case of SRTA. \ Less anharmonic materials and lower temperatures will need more points (in case of GK). + mode_mixing : Calculate full self energy matrix kappa_filename : Name of the file to write the results to. """ @@ -1422,7 +1423,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) kappa_file.write('\n') self.kappa[tc_key] = kappa_diag + kappa_nondiag - elif(mode == 'GK'): + elif(mode == 'GK' and not mode_mixing): self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega if(not self.off_diag): @@ -1450,6 +1451,19 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) kappa_file.write('\n') self.kappa[tc_key] = kappa_diag + kappa_nondiag + elif(mode == 'GK' and mode_mixing): + self.delta_omega = np.amax(self.freqs)*2.0/float(ne) + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + if(self.off_diag): + kappa = self.calculate_kappa_gk_offdiag_mode_mixing(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa[icart][icart], '.12e')) + kappa_file.write(3*' ' + format(kappa[0][1], '.12e')) + kappa_file.write(3*' ' + format(kappa[1][2], '.12e')) + kappa_file.write(3*' ' + format(kappa[2][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa else: print('Can not recognize this method of calculating kappa! ') print(mode) @@ -1510,6 +1524,76 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss ################################################################################################################################## + def calculate_kappa_gk_offdiag_mode_mixing(self, temperature, write_lineshapes, energies, gauss_smearing = False): + + """ + Calculation of lattice thermal conductivity using Green-Kubo method if both diagonal and off-diagonal group velocities are available. + + temperature : temperature at which kappa should be calculated. + write_lineshapes : Boolean noting should we write phonon lineshapes on a file + energies : frequency points at which phonon lineshapes should be calculated + + """ + + ls_key = format(temperature, '.1f') + if(ls_key in self.lineshapes.keys()): + print('Lineshapes for this temperature have already been calculated. Continuing ...') + else: + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing, mode_mixing = 'mode_mixing') + exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + + kappa_diag = np.zeros((3,3), dtype = complex) + kappa_nondiag = np.zeros((3,3), dtype = complex) + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): + if(self.freqs[iqpt, jband] != 0.0): + for kband in range(self.nband): + if(self.freqs[iqpt, kband] != 0.0): + for lband in range(self.nband): + if(self.freqs[iqpt, lband] != 0.0): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + #if(iband == jband and iband == kband and kband == lband): + integrals = 0.0 + integrands1_plus = self.lineshapes[ls_key][iqpt, iband, lband]*np.conj(self.lineshapes[ls_key][iqpt, jband, kband])*exponents_plus/(exponents_plus - 1.0)**2 + integrands1_minus = self.lineshapes[ls_key][iqpt, iband, lband]*np.conj(self.lineshapes[ls_key][iqpt, jband, kband])*exponents_minus/(exponents_minus - 1.0)**2 + integrands2_plus = self.lineshapes[ls_key][iqpt, iband, kband]*np.conj(self.lineshapes[ls_key][iqpt, jband, lband])*exponents_plus/(exponents_plus - 1.0)**2 + integrands2_minus = self.lineshapes[ls_key][iqpt, iband, kband]*np.conj(self.lineshapes[ls_key][iqpt, jband, lband])*exponents_minus/(exponents_minus - 1.0)**2 + integrals = (np.sum(integrands1_plus, axis = len(integrands1_plus.shape) - 1) + np.sum(integrands1_minus, axis = len(integrands1_minus.shape) - 1)).real*self.delta_omega + integrals += (np.sum(integrands2_plus, axis = len(integrands2_plus.shape) - 1) + np.sum(integrands2_minus, axis = len(integrands2_minus.shape) - 1)).real*self.delta_omega + #if(np.abs(integrals.imag/integrals.real) > 1.0e-3 and np.abs(integrals.imag) > 1.0e-3): + # raise RuntimeError('Large imaginary part in integrals of spectral functions!', integrals) + gvel1 = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel2 = np.zeros_like(self.gvels[iqpt, kband, lband]) + gvel_sum = np.zeros_like(kappa_diag, dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel1 = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel2 = np.dot(rot_q, self.gvels[iqpt, kband, lband]) + gvel_sum += np.outer(gvel1.conj(), gvel2) + gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + if(iband == jband and iband == kband and kband == lband): + kappa_diag += integrals*np.sqrt(self.freqs[iqpt,iband]*self.freqs[iqpt, kband]*self.freqs[iqpt,jband]*self.freqs[iqpt, lband])*\ + gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 + else: + kappa_nondiag += integrals*np.sqrt(self.freqs[iqpt,iband]*self.freqs[iqpt, kband]*self.freqs[iqpt,jband]*self.freqs[iqpt, lband])*\ + gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 + + kappa_diag += kappa_diag.T + kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + kappa_nondiag += kappa_nondiag.T + kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + print(kappa_diag, kappa_nondiag) + return kappa_diag.real + kappa_nondiag.real + + ################################################################################################################################# + def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, gauss_smearing = False): """ @@ -1613,6 +1697,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort write_lineshapes : Boolean parameter to write phonon lineshapes as they are being calculated. energies : the list of frequencies for which lineshapes are calculated. method : practically only determines how many times fortran routines are called. "fortran" should be much faster. + mode_mixing : Calculate full self-energy matrix ("mode_mixing" gives it in mode basis, "cartesian" gives it in cartesian basis) gauss_smearing : are we using Gaussian smearing as approximation for energy conservation """ @@ -1721,15 +1806,15 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort # for jband in range(self.nband): # curr_ls[ikpt, iband,jband,:] = curr_ls[ikpt, iband,jband,:]/np.sum(curr_ls[ikpt,iband,jband,:])/(energies[1]-energies[0]) # Forcing the normalization. Not sure if the best option! lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:] - tot_const_diag = 0.0 - tot_const_nondiag = 0.0 - for iband in range(len(lineshapes[jqpt])): - tot_const_diag += np.sum(lineshapes[jqpt][iband][iband]).real*(energies[2] - energies[1]) - for jband in range(len(lineshapes[jqpt][iband])): - print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1])) - tot_const_nondiag += np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1]) - print('Normalization constant diagonal: ', tot_const_diag) - print('Normalization constant all elements: ', tot_const_diag) + #tot_const_diag = 0.0 + #tot_const_nondiag = 0.0 + #for iband in range(len(lineshapes[jqpt])): + # tot_const_diag += np.sum(lineshapes[jqpt][iband][iband]).real*(energies[2] - energies[1]) + # for jband in range(len(lineshapes[jqpt][iband])): + # print('Normalization constant (' + str(iband + 1) + ',' + str(jband + 1)+ '): ', np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1])) + # tot_const_nondiag += np.sum(lineshapes[jqpt][iband][jband]).real*(energies[2] - energies[1]) + #print('Normalization constant diagonal: ', tot_const_diag) + #print('Normalization constant all elements: ', tot_const_diag) else: lineshapes[jqpt,:,:] = curr_ls[ikpt,:,:]*2.0 if(write_lineshapes): @@ -1915,6 +2000,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec if(self.cp_mode == 'classical'): classical = True + print(psutil.virtual_memory().percent) if(mode_mixing == 'mode_mixing'): curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_mode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ @@ -1933,6 +2019,8 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec self.unitcell, self.dyn.structure.coords.T, self.dyn.structure.get_masses_array(),\ sigmas.T, np.zeros_like(sigmas.T, dtype=float), temperature, gauss_smearing, classical, energies, len(energies), nkpts, \ self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), num_scattering_events) + else: + raise RuntimeError('Unknown mode_mixing method! ') for ikpt in range(nkpts): if(mode_mixing == 'no'): @@ -3122,10 +3210,6 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti """ - if(self.group_velocity_mode == 'wigner'): - vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al - else: - vel_fact = 1.0 with open(filename, 'w+') as outfile: outfile.write('# ' + format('Frequencies (THz)', STR_FMT)) outfile.write(' ' + format('Group velocity x (m/s)', STR_FMT)) @@ -3138,7 +3222,7 @@ def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properti outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) for icart in range(3): if(self.off_diag): - outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart]*SSCHA_TO_MS/vel_fact, '.12e')) + outfile.write(3*' ' + format(self.gvels[ikpt][iband,iband][icart]*SSCHA_TO_MS, '.12e')) else: outfile.write(3*' ' + format(self.gvels[ikpt][iband][icart]*SSCHA_TO_MS, '.12e')) outfile.write(3*' ' + format(self.sigmas[ikpt][iband]*SSCHA_TO_THZ, '.12e')) @@ -3654,43 +3738,85 @@ def compute_k(inputs): ###################################################################################################################################### - def calculate_mode_gruneisen(self): + def calculate_mode_gruneisen_at_q(self, q): """ - Does not work! + Calculate Gruneisen parameter for specific q-point! + + + q : Q point in cartesian coordinates + + + """ + + uc_positions = self.dyn.structure.coords.copy() + natom = len(uc_positions) + masses = self.dyn.structure.get_masses_array() + m1 = np.zeros(3*natom, dtype = float) + for iat in range(natom): + m1[3*iat:3*iat + 3] = masses[iat] + + dynmat = self.get_dynamical_matrix(q) + w2_q, pols_q = np.linalg.eigh(dynmat) + w_q = np.sqrt(np.abs(w2_q))*np.sign(w2_q) + gruneisens = np.zeros_like(w_q) + + for iband in range(len(w_q)): + gruneisen = 0.0 + 1j*0.0 + for iuc in range(len(self.fc3.r_vector2[0])): + for iat in range(natom): + for jat in range(natom): + r = -1.0*self.fc3.r_vector2[:,iuc] + uc_positions[iat] - uc_positions[jat] + phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(q, r))) + eig1 = pols_q[3*iat:3*iat + 3, iband].conj().copy()/np.sqrt(masses[iat]) + eig2 = pols_q[3*jat:3*jat + 3, iband].copy()/np.sqrt(masses[jat]) + for kat in range(natom): + gruneisen += np.einsum('ijk, i, j, k', self.fc3.tensor[iuc,3*iat:3*(iat + 1),3*jat:3*(jat + 1),3*kat:3*(kat + 1)], eig1, + eig2, self.fc3.r_vector3[:,iuc] + uc_positions[kat])*phase_factor + if(w_q[iband] > 0.0): + gruneisens[iband] = -1.0*gruneisen.real/w2_q[iband]/6.0/BOHR_TO_ANGSTROM + else: + print('Negative frequency in calculation of Gruneisen parameter for q point: ', q) + print(format(w_q[iband]*SSCHA_TO_THZ, '.3f')) + gruneisens[iband] = 0.0 + return gruneisens + + #######################################################################################################################################' + + def calculate_mode_gruneisen_mesh(self): + + """ + + Calculate Gruneisen parameter on a grid. Using equation from 10.1103/PhysRevLett.79.1885 ! """ + print('Calculating Gruneisen parameters ...') uc_positions = self.dyn.structure.coords.copy() natom = len(uc_positions) masses = self.dyn.structure.get_masses_array() for ikpt in range(self.nirrkpt): + ikpt0 = self.qstar[ikpt][0] for iband in range(self.nband): gruneisen = 0.0 + 0.0j for iuc in range(len(self.fc3.r_vector2[0])): - phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(self.k_points[ikpt], self.fc3.r_vector2[:,iuc]))) for iat in range(natom): for jat in range(natom): - #rvec = self.fc3.r_vector2[:,iuc] + uc_positions[jat,:] - uc_positions[iat, :] - #phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(self.k_points[ikpt], rvec))) - mass_factor = 1.0/np.sqrt(masses[iat]*masses[jat]) + r = -1.0*self.fc3.r_vector2[:,iuc] + uc_positions[iat] - uc_positions[jat] + phase_factor = np.exp(complex(0.0, 2.0*np.pi*np.dot(self.k_points[ikpt0], r))) + eig1 = self.eigvecs[ikpt0,3*iat:3*iat + 3, iband].conj().copy()/np.sqrt(masses[iat]) + eig2 = self.eigvecs[ikpt0,3*jat:3*jat + 3, iband].copy()/np.sqrt(masses[jat]) for kat in range(natom): - #for i in range(3): - # for j in range(3): - # for k in range(3): - # gruneisen += self.fc3.tensor[iuc,3*iat + i,3*jat + j,3*kat + k]*self.eigvecs[ikpt,iband,3*iat + i].conj()*self.eigvecs[ikpt,iband,3*jat + j]*(self.fc3.r_vector3[k,iuc] + uc_positions[kat,k])\ - # *phase_factor*mass_factor - gruneisen += np.einsum('ijk, i, j, k', self.fc3.tensor[iuc,3*iat:3*(iat + 1),3*jat:3*(jat + 1),3*kat:3*(kat + 1)], self.eigvecs[ikpt,iband,3*iat:3*(iat+1)].conj(), - self.eigvecs[ikpt,iband,3*jat:3*(jat+1)], self.fc3.r_vector3[:,iuc] + uc_positions[kat])*phase_factor*mass_factor - if(self.freqs[self.qstar_list[ikpt][0], iband] > 0.0): - #print(gruneisen.real, gruneisen.imag) - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + gruneisen += np.einsum('ijk, i, j, k', self.fc3.tensor[iuc,3*iat:3*(iat + 1),3*jat:3*(jat + 1),3*kat:3*(kat + 1)], eig1, + eig2, self.fc3.r_vector3[:,iuc] + uc_positions[kat])*phase_factor + if(self.freqs[ikpt0, iband] > 0.0): + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] self.gruneisen[jqpt][iband] = -1.0*gruneisen.real/self.freqs[jqpt, iband]**2/6.0/BOHR_TO_ANGSTROM else: - for iqpt in range(len(self.qstar_list[ikpt])): - jqpt = self.qstar_list[ikpt][iqpt] + for iqpt in range(len(self.qstar[ikpt])): + jqpt = self.qstar[ikpt][iqpt] self.gruneisen[jqpt][iband] = 0.0 with open('Gruneisen_parameter', 'w+') as outfile: @@ -3702,3 +3828,64 @@ def calculate_mode_gruneisen(self): outfile.write(3*' ' + format(self.freqs[ikpt][iband]*SSCHA_TO_THZ, '.12e')) outfile.write(3*' ' + format(self.gruneisen[ikpt][iband], '.12e')) outfile.write('\n') + + ############################################################################################################################################## + + def calculate_thermal_expansion_quasiharmonic(self, temperatures, bulk): + + """ + + Calculate thermal expansion assuming quasiharmonic approximation. Should work well only for cubic materials with no free internal degrees of freedom. + + temperatures : List of temperatures for which to calculate thermal expansion. + bulk : Bulk modulus of the material (GPa). + + """ + + te = np.zeros(len(temperatures)) + volume = np.zeros(len(temperatures)) + for itemp in range(len(temperatures)): + cp_key = format(temperatures[itemp], '.1f') + if(cp_key in self.cp.keys()): + print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') + else: + self.get_heat_capacity(temperatures[itemp]) + te[itemp] = np.einsum('ij,ij', self.cp[cp_key], self.gruneisen)/float(self.nkpt)/self.volume/bulk*1.0e21 + volume[itemp] = self.volume*(1.0 + np.sum(te[:itemp])*(temperatures[1] - temperatures[0])) + + with open('Thermal_expansion', 'w+') as outfile: + outfile.write('# ' + format('Temperature (K)', STR_FMT)) + outfile.write(' ' + format('Thermal expansion (1/K)', STR_FMT)) + outfile.write(' ' + format('Volume (A^3)', STR_FMT)) + outfile.write('\n') + for itemp in range(len(temperatures)): + outfile.write(3*' ' + format(temperatures[itemp], '.12e')) + outfile.write(3*' ' + format(te[itemp], '.12e')) + outfile.write(3*' ' + format(volume[itemp], '.12e')) + outfile.write('\n') + + ################################################################################################################################################ + + def calculate_vibrational_part_of_bulk_modulus(self, temperatures): + + bulk = np.zeros(len(temperatures)) + + for itemp in range(len(temperatures)): + pops = np.zeros_like(self.freqs) + for iqpt in range(len(pops)): + for iband in range(len(pops[iqpt])): + pops[iqpt,iband] = bose_einstein(self.freqs[iqpt,iband]*SSCHA_TO_THZ*1.0e12, temperatures[itemp], HPLANCK, KB, cp_mode = self.cp_mode) + exponents = HPLANCK*self.freqs*SSCHA_TO_THZ*1.0e12/KB/temperatures[itemp] + term = np.einsum('ij,ij,ij,ij,ij', self.freqs, exponents, self.gruneisen**2, pops**2,np.exp(exponents)) + bulk[itemp] = -1.0*term*SSCHA_TO_THZ*1.0e12*HPLANCK/self.volume*1.0e21/float(self.nkpt) + + with open('Quasiharmonic_bulk_modulus', 'w+') as outfile: + outfile.write('# ' + format('Temperature (K)', STR_FMT)) + outfile.write(' ' + format('Bulk modulus (GPa)', STR_FMT)) + outfile.write('\n') + for itemp in range(len(temperatures)): + outfile.write(3*' ' + format(temperatures[itemp], '.12e')) + outfile.write(3*' ' + format(bulk[itemp], '.12e')) + outfile.write('\n') + + From b925f17a6df685f39993cefedba4c0cf529dd5b0 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Sat, 13 May 2023 14:39:26 +0200 Subject: [PATCH 140/204] Cleaning ... --- FModules/get_lf.f90 | 105 +------- FModules/third_order_cond.f90 | 61 +---- FModules/third_order_cond_centering.f90 | 13 - cellconstructor/Methods.py | 310 +++++++++++++++++++++++- cellconstructor/SSCHA_phonopy_parser.py | 303 ----------------------- cellconstructor/ThermalConductivity.py | 284 ++-------------------- requirements.txt | 1 + 7 files changed, 336 insertions(+), 741 deletions(-) delete mode 100644 cellconstructor/SSCHA_phonopy_parser.py diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index fa297b17..cc8055a7 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -109,16 +109,6 @@ subroutine calculate_lineshapes(irrqgrid, qgrid, weights, scatt_events, fc2, r2_ endif endif - !open(file = 'Self_energy', unit = 1) - !do i = 1, ne - ! write(1,"(E20.12)",advance="no") energies(i) - ! do jqpt = 1, 3*nat - ! write(1,"(2E20.12)",advance="no") dble(self_energy(i,jqpt)), aimag(self_energy(i,jqpt)) - ! enddo - ! write(1,*) ' ' - !enddo - !close(1) - call compute_spectralf_diag_single(smear_id(:, iqpt), energies, w_q, self_energy, nat, ne, lineshape) !call calculate_spectral_function(energies, w_q, self_energy, nat, ne, lineshape) !call calculate_correlation_function(energies, w_q, self_energy, nat, ne, lineshape) @@ -186,6 +176,7 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even integer, allocatable, dimension(:) :: curr_w logical :: is_q_gamma, w_neg_freqs, parallelize + ! Get non-diagonal lineshapes but in mode basis lineshapes(:,:,:,:) = complex(0.0_DP, 0.0_DP) kprim = transpose(inv(rprim)) @@ -212,11 +203,6 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even lineshape(:,:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) - !d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) - !do iband = 1, 3*nat - ! d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) - !enddo - !d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -238,7 +224,6 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo - !print*, 'Got grids' call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) @@ -248,7 +233,7 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even self_energy = self_energy/dble(tot_qpt) if(gaussian) then call calculate_real_part_via_Kramers_Kronig_2d(ne, 3*nat, self_energy, energies, w_q) - !call hilbert_transform_via_FFT(ne, 3*nat, self_energy) + !call hilbert_transform_via_FFT(ne, 3*nat, self_energy) ! not much better if(any(self_energy .ne. self_energy)) then print*, 'NaN in Kramers Kronig' endif @@ -262,6 +247,7 @@ subroutine calculate_lineshapes_mode_mixing(irrqgrid, qgrid, weights, scatt_even lineshape = lineshape*2.0_DP lineshapes(iqpt, :, :, :) = lineshape + ! projected them to Cartesian coordinates. Leave it for debugging !do iband = 1, 3*nat ! do jband = 1, 3*nat ! do iband1 = 1, 3*nat @@ -353,11 +339,6 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events lineshape(:,:,:) = 0.0_DP qpt = irrqgrid(:, iqpt) call interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, qpt, w2_q, pols_q, d2_q) - !d2_q = cmplx(0.0_DP, 0.0_DP, kind=DP) - !do iband = 1, 3*nat - ! d2_q(iband, iband) = cmplx(w2_q(iband), 0.0_DP, kind=DP) - !enddo - !d2_q = matmul(pols_q, matmul(d2_q, cinv(pols_q))) call check_if_gamma(nat, qpt, kprim, w2_q, is_q_gamma) if(any(w2_q < 0.0_DP)) then @@ -398,14 +379,6 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events if(any(self_energy .ne. self_energy)) then print*, 'NaN in self_energy' endif - !do iband = 1, 3*nat - 1 - ! do jband = iband + 1, 3*nat - ! if(any(abs(self_energy(:,jband,iband) - conjg(self_energy(:,iband,jband))) > & - ! maxval(abs(self_energy(:,jband,iband)))*1.0e-6)) then - ! print*, 'Self - energy is non-Hermitian in mode basis!' - ! endif - ! enddo - !enddo do iband = 1, 3*nat do jband = 1, 3*nat do iband1 = 1, 3*nat @@ -417,28 +390,6 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events enddo enddo - !do iband = 1, 3*nat - 1 - ! do jband = iband + 1, 3*nat - ! if(any(abs(self_energy_cart(:,jband,iband) - conjg(self_energy_cart(:,iband,jband))) > & - ! maxval(abs(self_energy_cart(:,jband,iband)))*1.0e-6)) then - ! print*, 'Self - energy is non-Hermitian in cartesian basis!' - ! endif - ! enddo - !enddo - - !open(file = 'Self_energy_nmm', unit = 1) - !do i = 1, ne - !write(1,"(E20.12)",advance="no") energies(i) - !do iband = 1, 3*nat - !do jband = 1, 3*nat - ! write(1,"(2E20.12)",advance="no") dble(self_energy_cart(i,iband,jband)), & - ! aimag(self_energy_cart(i,iband,jband)) - !enddo - !enddo - !write(1,*) ' ' - !enddo - !close(1) - call calculate_spectral_function_cartesian(energies, smear_id(:, iqpt), & d2_q,self_energy_cart,is_q_gamma,lineshape,masses,nat,ne) @@ -1001,39 +952,8 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc w_k = sqrt(w2_k) w_mk_mq = sqrt(w2_mk_mq) -! do iat = 1, nat -! do i = 1, 3 -! do jat = 1, nat -! do j = 1, 3 -! do kat = 1, nat -! do k = 1, 3 -! d3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1)) = & -! ifc3(k + 3*(kat - 1), j + 3*(jat - 1), i + 3*(iat - 1))& -! /sqrt(masses(iat)*masses(jat)*masses(kat)) -! enddo -! enddo -! enddo -! enddo -! enddo -! enddo - d3 = ifc3*mass_array -! do i = 1, 3*nat -! do j = 1, 3*nat -! do k = 1, 3*nat -! do i1 = 1, 3*nat -! do j1 = 1, 3*nat -! do k1 = 1, 3*nat -! d3_pols(k,j,i) = d3_pols(k,j,i) + & -! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) -! enddo -! enddo -! enddo -! enddo -! enddo -! enddo - do i = 1, 3*nat do i1 = 1, 3*nat d3_pols(:,:,i) = d3_pols(:,:,i) + & @@ -1187,22 +1107,6 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 enddo enddo enddo -! d3 = ifc3*mass_array - -! do i = 1, 3*nat -! do j = 1, 3*nat -! do k = 1, 3*nat -! do i1 = 1, 3*nat -! do j1 = 1, 3*nat -! do k1 = 1, 3*nat -! d3_pols(k,j,i) = d3_pols(k,j,i) + & -! d3(k1,j1,i1)*pols_q(k1,k)*pols_k(j1,j)*pols_mk_mq(i1,i) -! enddo -! enddo -! enddo -! enddo -! enddo -! enddo do i = 1, 3*nat do i1 = 1, 3*nat @@ -1488,7 +1392,6 @@ subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energi if(i .ne. j) then diff = 1.0_DP/(energies(j) - energies(i)) suma = 1.0_DP/(energies(j) + energies(i)) - !rse = rse + im_part(j)*(diff + suma)*(energies(2) - energies(1))/PI rse = rse + aimag(self_energy(j, iband))*(diff - suma)*(energies(2) - energies(1))/PI else suma = 1.0_DP/(energies(j) + energies(i)) @@ -1500,7 +1403,6 @@ subroutine calculate_real_part_via_Kramers_Kronig(ne, nband, self_energy, energi else correction = 0.0_DP endif - !self_energy(i, iband) = complex((rse + correction)*2.0_DP*freq(iband), aimag(self_energy(i, iband))) self_energy(i, iband) = complex(rse + correction, aimag(self_energy(i, iband))) enddo enddo @@ -1726,6 +1628,7 @@ subroutine interpolate_fc2(nfc2, nat, fc2, r2_2, masses, pos, q, w2_q, pols_q, p do iat = 1, nat do jat = 1, nat !ruc = pos(:,jat) - pos(:,iat) - r2_2(:,ir) + ! Have to keep this phase convention to be consistent with Fourier transform of the 3rd order force constants! ruc = r2_2(:,ir) phase = dot_product(ruc, q)*2.0_DP*PI pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) = pols_q1(3*(jat - 1) + 1:3*jat, 3*(iat - 1) + 1:3*iat) & diff --git a/FModules/third_order_cond.f90 b/FModules/third_order_cond.f90 index e0d5aa58..96ccae23 100644 --- a/FModules/third_order_cond.f90 +++ b/FModules/third_order_cond.f90 @@ -21,9 +21,8 @@ subroutine interpol_v2(fc,R2,R3,pos,q2,q3,fc_interp,n_blocks,nat) ! DO i_block = 1, n_blocks - !arg = tpi * SUM(q2(:)*R2(:,i_block) + q3(:)*R3(:,i_block)) arg = tpi*(dot_product(q2, R2(:,i_block)) + dot_product(q3, R3(:,i_block))) - phase = exp(cmplx(0.0_DP, arg,kind=DP))!CMPLX(Cos(arg),Sin(arg), kind=DP) + phase = exp(cmplx(0.0_DP, arg,kind=DP)) fc_interp = fc_interp + phase*fc(i_block,:,:,:) ! @@ -354,13 +353,6 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus re_p = 0.0_DP endif ctm_P = CMPLX(re_p, im_p, kind=DP) - if(ctm_P .ne. ctm_P) then - print*, re_p, im_p - print*, bose_P, gaussian_function(energies(ie) - omega_P, sigma) - print*, energies(ie), omega_P, sigma - print*, '361' - STOP - endif im_p = bose_M *gaussian_function(energies(ie) + omega_M, sigma) im_p1 = bose_M *gaussian_function(energies(ie) - omega_M, sigma) if(energies(ie) + omega_M .ne. 0.0_DP) then @@ -374,13 +366,6 @@ subroutine Lambda_dynamic_single(ne,energies,sigma,T,static_limit,w_q2,w_q3,gaus re_p1 = 0.0_DP endif ctm_M = CMPLX(re_p, im_p, kind=DP) - CMPLX(re_p1, im_p1, kind=DP) - if(ctm_M .ne. ctm_M) then - print*, '376' - print*, re_p, im_p, re_p1, im_p1 - print*, bose_M, gaussian_function(energies(ie) + omega_M, sigma), & - gaussian_function(energies(ie) - omega_M, sigma) - STOP - endif ctm(ie) = ctm_P + ctm_M ENDDO ELSE @@ -576,14 +561,6 @@ subroutine calculate_spectral_function_cartesian(ener,smear,d2,Pi,notransl,spect ! DO ie = 1,ne - !do n = 1, nat3 - 1 - !do m = n + 1, nat3 - ! if(abs(Pi(ie,n,m) - conjg(Pi(ie,m,n))) > abs(Pi(ie,n,m))*1.0e-8) then - ! print*, 'Self energy is not Hermitian!' - ! print*, Pi(ie,n,m), Pi(ie,m,n) - ! endif - !enddo - !enddo G=cmplx(0.0_dp,0.0_dp,kind=DP) FORALL (m=1:nat3, n=1:nat3) G(n,m) = -Pi(ie,n,m) @@ -592,53 +569,17 @@ subroutine calculate_spectral_function_cartesian(ener,smear,d2,Pi,notransl,spect DO n=1,nat3 G(n,n)=G(n,n)+(ener(ie) + complex(0.0_DP,smear(n)))**2 ENDDO - ! do n = 1, nat3 - 1 - ! do m = n + 1, nat3 - ! if(abs(G(n,m) - conjg(G(m,n))) > abs(G(n,m))*1.0e-8) then - ! print*, 'G before is not Hermitian!' - ! endif - ! enddo - ! enddo G = cinv(G) - ! do n = 1, nat3 - 1 - ! do m = n + 1, nat3 - ! if(abs(G(n,m) - conjg(G(m,n))) > abs(G(n,m))*1.0e-8) then - ! print*, 'G before is not Hermitian!' - ! endif - ! enddo - ! enddo IF ( notransl ) THEN CALL eliminate_transl(G,mass,nat) END IF do n = 1, nat3 do m = 1, nat3 - !spectralf(m,n,ie)=spectralf(m,n,ie)-2.0_DP*DIMAG(G(m,n))*ener(ie)/twopi - !spectralf(m,n,ie)=spectralf(m,n,ie)-DIMAG(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi spectralf(m,n,ie)=spectralf(m,n,ie)+complex(0.0_DP, 1.0_DP)*(G(m,n) - conjg(G(n,m)))*ener(ie)/twopi enddo enddo - ! do n = 1, nat3 - 1 - ! do m = n + 1, nat3 - ! if(abs(spectralf(n,m,ie) + spectralf(m,n,ie)) > abs(spectralf(n,m,ie))*1.0e-8) then - ! print*, 'spectrlaf before is not Hermitian!' - ! endif - ! enddo - ! enddo ENDDO - !open(unit = 1, file = 'Spectral_function_from_fortran') - !do ie = 1, ne - ! write(1, '(E24.17)', advance="no") ener(ie) - ! do n = 1, nat3 - ! do m = 1, nat3 - ! write(1, '(E24.17)', advance="no") spectralf(m,n,ie) - ! enddo - ! enddo - ! write(1,*) ' ' - !enddo - !close(1) - ! - end subroutine calculate_spectral_function_cartesian ! ! ======================== accessory routines ======================================== diff --git a/FModules/third_order_cond_centering.f90 b/FModules/third_order_cond_centering.f90 index f777b711..c92bb001 100644 --- a/FModules/third_order_cond_centering.f90 +++ b/FModules/third_order_cond_centering.f90 @@ -503,24 +503,12 @@ subroutine distribute_fc3(tensor, rvec2, rvec3, tot_trip, f_tensor, f_rvec2, f_r index1 = kat + natom*(jat-1) + natom**2*(iat-1) if(index0 .ne. index1) then do i = 1, tot_trip(index1) - !if(itrip .eq. 0) then - ! itrip = itrip + 1 - ! f_rvec2(itrip, :) = rvec2(index1, i, :) - ! f_rvec3(itrip, :) = rvec3(index1, i, :) - ! f_tensor(itrip, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) = & - ! tensor(index1, i,:,:,:) - !else found = .False. do j = 1, itrip if(norm(rvec2(index1, i, :) - f_rvec2(j, :)) < tol .and. & norm(rvec3(index1, i, :) - f_rvec3(j, :)) < tol) then - !print*, rvec2(index1, i, :), rvec3(index1, i, :) - !print*, f_rvec2(j, :), f_rvec3(j, :) - !print*, f_tensor(j, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) - !print*, tensor(index1, i,:,:,:) found = .True. f_tensor(j, 3*(iat-1)+1:3*iat, 3*(jat-1)+1:3*jat, 3*(kat-1)+1:3*kat) = & - !f_tensor(j, 3*(kat-1)+1:3*kat, 3*(jat-1)+1:3*jat, 3*(iat-1)+1:3*iat) + & tensor(index1, i,:,:,:) EXIT endif @@ -577,7 +565,6 @@ subroutine apply_asr(tensor, r_vector2, r_vector3, new_tensor, n_R, natom) norma3(new_tensor(list(i_r, j_r + 1), 3*(iat-1) + 1:3*iat, 3*(jat-1) + 1:3*jat, 3*(kat-1) + 1:3*kat)) enddo enddo - !aux_tensor = aux_tensor/dble(list(i_r, 1))/dble(natom) do j_r = 1, list(i_r, 1) do kat = 1, natom if(norma3(aux_tensor) .gt. 0.0_DP) then diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index b2bf6150..20633730 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -16,12 +16,34 @@ import symph import scipy, scipy.optimize + +import cellconstructor as CC +import cellconstructor.Structure as Structure +import cellconstructor.ForceTensor +import cellconstructor.Phonons as Phonons +import cellconstructor.Methods as Methods +import cellconstructor.symmetries as symmetries +import cellconstructor.Spectral +from cellconstructor.Units import * + import warnings +__PHONOPY=False +try: + import phonopy + from phono3py.phonon3.fc3 import set_permutation_symmetry_compact_fc3, set_permutation_symmetry_fc3, set_translational_invariance_compact_fc3, set_translational_invariance_fc3, cutoff_fc3_by_zero, distribute_fc3 + from phono3py.phonon3.dataset import get_displacements_and_forces_fc3 + from phonopy.harmonic.force_constants import compact_fc_to_full_fc + __PHONOPY=True +except: + __PHONOPY=False + #from . import Structure BOHR_TO_ANGSTROM = 0.529177249 __EPSILON__ = 1e-6 +EV_TO_J = 1.602176634e-19 +AU = 1.66053906660e-27 __all__ = ["covariant_coordinates", "from_dynmat_to_spectrum", @@ -1882,4 +1904,290 @@ def gradient(x): else: print("NO SUCCESS") raise ValueError("Error, the minimization problem was not solved correctly") - return None \ No newline at end of file + return None + + # Check if two vectors are same if we account for periodic boundary conditions + def same_vectors(vec1, vec2, cell): + rvec1 = np.dot(vec1, cell) + rvec2 = np.dot(vec2, cell) + if(np.linalg.norm(rvec1 - rvec2) < 1.0-6): + return True + else: + same = False + for ix in range(-1,2): + if(not same): + for iy in range(-1,2): + if(not same): + for iz in range(-1,2): + rvec3 = rvec2 + np.array([ix,iy,iz]) + if(np.linalg.norm(rvec1 - rvec3) < 1.0-6): + same = True + break + return same + + # Rewrite phonopy force constants to a format identical to CC.ForceTensor one + # Better use sscha_phonons_from_phonopy ! + def phonopy_fc2_to_tensor2(fc2, phonon): + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + s2u = phonon.supercell.s2u_map.copy() + u2s = phonon.supercell.u2s_map.copy() + nat_uc = len(u2s) + nat = len(s2u) + if(nat%nat_uc == 0): + nuc = np.int(np.round(float(nat)/float(nat_uc))) + else: + print('Number of unit cell could not be determined from the number of atoms!', nat, nat_uc) + if(len(fc2) == nat_uc): + indices = np.arange(nat_uc) + elif(len(fc2) == nat): + indices = u2s.copy() + else: + raise RuntimeError('Unexpected number of pairs in second order force constants! ', len(fc2)) + ind_s = np.zeros_like(s2u) + for iat in range(nat): + for jat in range(nat_uc): + if(s2u[iat] == u2s[jat]): + ind_s[iat] = jat + vecs = phonon.supercell.scaled_positions - phonon.supercell.scaled_positions[0] + for iat in range(nat): + for ix in range(3): + if(vecs[iat][ix] < -1.0e-3): + vecs[iat][ix] += 1.0 + elif(vecs[iat][ix] > 0.999): + vecs[iat][ix] -= 1.0 + + vecs = np.round(vecs, 5) + rvec = vecs[0:nuc] + invcell = np.linalg.inv(phonon.primitive.cell) + ind_u = np.zeros_like(s2u) + for iat in range(nat): + found = False + lvec = vecs[iat] - vecs[s2u[iat]] + for ix in range(3): + if(lvec[ix] < -1.0e-3): + lvec[ix] += 1.0 + elif(lvec[ix] > 0.999): + lvec[ix] -= 1.0 + for iuc in range(nuc): + if(np.linalg.norm(lvec - rvec[iuc]) < 1.0e-4): + ind_u[iat] = iuc + found = True + break + if(not found): + print('Could not find the unit cell of atom: ', iat) + print(lvec) + sscha_fc2 = np.zeros((nuc, 3*nat_uc, 3*nat_uc)) + for iat in range(nat_uc): + for jat in range(nat): + iuc = ind_u[jat] + sscha_fc2[iuc, 3*iat:3*(iat+1), 3*ind_s[jat]:3*(ind_s[jat] + 1)] = fc2[indices[iat]][jat] + rvec = np.dot(rvec, phonon.supercell.cell) + + return sscha_fc2, rvec + + # Generate CC.Structure from PhonopyAtoms + def get_sscha_structure_from_phonopy(phatoms): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + sscha_structure = Structure.Structure(nat = len(phatoms.positions)) + sscha_structure.coords = phatoms.positions + sscha_structure.N_atoms = len(phatoms.positions) + sscha_structure.atoms = phatoms.symbols + sscha_structure.unit_cell = phatoms.cell + sscha_structure.has_unit_cell = True + for iat in range(sscha_structure.N_atoms): + sscha_structure.masses[sscha_structure.atoms[iat]] = phatoms.masses[iat]/MASS_RY_TO_UMA + + return sscha_structure + + # Get Cellconstructor.Phonons from Phonopy object + def sscha_phonons_from_phonopy(phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure + sscha_supercell = get_sscha_structure_from_phonopy(phonon.supercell) + + nat_uc = sscha_structure.N_atoms + nat_sc = sscha_supercell.N_atoms + + q_grid = symmetries.GetQGrid(sscha_structure.unit_cell, np.diag(phonon.supercell_matrix)) + gamma_index = np.argmin(np.sum(np.array(q_grid)**2, axis = 1)) + q_grid[gamma_index] = q_grid[0].copy() + q_grid[0] = np.zeros(3, dtype = np.double) + dyn = Phonons.Phonons(sscha_structure, len(q_grid)) + dyn.q_tot = q_grid + + if(len(phonon.force_constants) == nat_sc): + fc2 = phonon.force_constants.copy()/RY_TO_EV*BOHR_TO_ANGSTROM**2 + elif(len(phonon.force_constants) == nat_uc): + fc2 = compact_fc_to_full_fc(phonon, phonon.force_constants) + fc2 *= BOHR_TO_ANGSTROM**2/RY_TO_EV + else: + raise RuntimeError('Number of force constants does not match expected phonopy formats! ') + + sscha_fc2 = np.zeros( (3*nat_sc, 3*nat_sc), dtype = np.double) + for iat in range(nat_sc): + for jat in range(nat_sc): + sscha_fc2[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = fc2[iat, jat] + + dynq = Phonons.GetDynQFromFCSupercell(sscha_fc2, np.array(dyn.q_tot), sscha_structure, sscha_supercell) + dyn.dynmats = dynq + dyn.AdjustQStar() + + return dyn + + + # Get ForceTensor.Tensor3 from Phono3py object + def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + unitcell = get_sscha_structure_from_phonopy(tc.primitive) + supercell = get_sscha_structure_from_phonopy(tc.supercell) + uc_nat = unitcell.N_atoms + sc_nat = supercell.N_atoms + if(uc_nat in tc.fc3.shape[0:3]): + print('Compact forceconstants.') + tc.generate_displacements() + supercells = tc.supercells_with_displacements + tc.fc3 = force_constants_3rd_order + fcart_dummy = [] + for isup in range(len(supercells)): + fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) + tc.forces = fcart_dummy + disps, _ = get_displacements_and_forces_fc3(tc.dataset) + first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) + s2p_map = tc.primitive.s2p_map + p2s_map = tc.primitive.p2s_map + p2p_map = tc.primitive.p2p_map + s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") + for i in first_disp_atoms: + assert i in p2s_map + target_atoms = [i for i in p2s_map if i not in first_disp_atoms] + rotations = tc.symmetry.symmetry_operations["rotations"] + permutations = tc.symmetry.atomic_permutations + distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) + + supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() + supercell_structure = unitcell.generate_supercell(supercell_matrix) + atom_mapping = np.zeros(len(supercell.coords), dtype=int) + already_there = [False for x in range(len(supercell.coords))] + for iat in range(len(supercell.coords)): + found_atom = False + for jat in range(len(supercell.coords)): + if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and not already_there[jat]): + atom_mapping[iat] = jat + found_atom = True + already_there[jat] = True + break + elif(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and already_there[jat]): + raise RuntimeError('Already matched this atom!') + if(not found_atom): + print('Could not find ' + str(iat + 1) + ' atom in the structure!') + if(not np.all(already_there)): + raise RuntimeError('Did not match all atoms...') + tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) + aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) + for iat in range(sc_nat): + iat1 = atom_mapping[iat] + for jat in range(sc_nat): + jat1 = atom_mapping[jat] + for kat in range(sc_nat): + kat1 = atom_mapping[kat] + for i in range(3): + for j in range(3): + for k in range(3): + aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] + d3 = np.asfortranarray(aux_tensor) + if(apply_symmetries): + qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) + qe_sym.SetupFromSPGLIB() + qe_sym.ApplySymmetryToTensor3(d3) + d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV + tensor3.SetupFromTensor(d3) + np.save("d3_realspace_sym.npy", d3) + + print('Translated phonopy 3rd order force constants.') + return tensor3 + + + def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc != np.shape(red_vecs_SSCHA)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order = np.zeros(np.shape(red_vecs_SSCHA)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,3,3)) + for iuc in range(nuc): + for iat in range(nat): + for jat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**2 + + def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA_1 = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_SSCHA_2 = np.round(SSCHA_tensor.x_r_vector3.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc**2 != np.shape(red_vecs_SSCHA_1)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order_1 = np.zeros(np.shape(red_vecs_SSCHA_1)[1], dtype = int) + unit_cell_order_2 = np.zeros(np.shape(red_vecs_SSCHA_2)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA_1)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_1[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_1[iuc] = iat + for iuc in range(np.shape(red_vecs_SSCHA_2)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_2[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_2[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,nuc*nat,3,3,3)) + for iuc in range(nuc**2): + for iat in range(nat): + for jat in range(nat): + for kat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order_1[iuc]][kat*nuc + unit_cell_order_2[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1), 3*kat:3*(kat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**3 diff --git a/cellconstructor/SSCHA_phonopy_parser.py b/cellconstructor/SSCHA_phonopy_parser.py deleted file mode 100644 index a0f62d8c..00000000 --- a/cellconstructor/SSCHA_phonopy_parser.py +++ /dev/null @@ -1,303 +0,0 @@ -import numpy as np -import phonopy - -import cellconstructor as CC - -import cellconstructor.Structure as Structure -import cellconstructor.ForceTensor -import cellconstructor.Phonons as Phonons -import cellconstructor.Methods as Methods -import cellconstructor.symmetries as symmetries -import cellconstructor.Spectral -from cellconstructor.Units import * -from phono3py.phonon3.fc3 import set_permutation_symmetry_compact_fc3, set_permutation_symmetry_fc3, set_translational_invariance_compact_fc3, set_translational_invariance_fc3, cutoff_fc3_by_zero, distribute_fc3 -from phono3py.phonon3.dataset import get_displacements_and_forces_fc3 -from phonopy.harmonic.force_constants import compact_fc_to_full_fc - -EV_TO_J = 1.602176634e-19 -AU = 1.66053906660e-27 - -# Check if two vectors are same if we account for periodic boundary conditions -def same_vectors(vec1, vec2, cell): - rvec1 = np.dot(vec1, cell) - rvec2 = np.dot(vec2, cell) - if(np.linalg.norm(rvec1 - rvec2) < 1.0-6): - return True - else: - same = False - for ix in range(-1,2): - if(not same): - for iy in range(-1,2): - if(not same): - for iz in range(-1,2): - rvec3 = rvec2 + np.array([ix,iy,iz]) - if(np.linalg.norm(rvec1 - rvec3) < 1.0-6): - same = True - break - return same - -# Rewrite phonopy force constants to a format identical to CC.ForceTensor one -# Better use sscha_phonons_from_phonopy ! -def phonopy_fc2_to_tensor2(fc2, phonon): - s2u = phonon.supercell.s2u_map.copy() - u2s = phonon.supercell.u2s_map.copy() - nat_uc = len(u2s) - nat = len(s2u) - if(nat%nat_uc == 0): - nuc = np.int(np.round(float(nat)/float(nat_uc))) - else: - print('Number of unit cell could not be determined from the number of atoms!', nat, nat_uc) - if(len(fc2) == nat_uc): - indices = np.arange(nat_uc) - elif(len(fc2) == nat): - indices = u2s.copy() - else: - raise RuntimeError('Unexpected number of pairs in second order force constants! ', len(fc2)) - ind_s = np.zeros_like(s2u) - for iat in range(nat): - for jat in range(nat_uc): - if(s2u[iat] == u2s[jat]): - ind_s[iat] = jat - vecs = phonon.supercell.scaled_positions - phonon.supercell.scaled_positions[0] - for iat in range(nat): - for ix in range(3): - if(vecs[iat][ix] < -1.0e-3): - vecs[iat][ix] += 1.0 - elif(vecs[iat][ix] > 0.999): - vecs[iat][ix] -= 1.0 - - vecs = np.round(vecs, 5) - rvec = vecs[0:nuc] -# rvec = np.dot(rvec, phonon.supercell.cell) -# vecs = np.dot(vecs, phonon.supercell.cell) - invcell = np.linalg.inv(phonon.primitive.cell) - ind_u = np.zeros_like(s2u) - for iat in range(nat): - found = False - lvec = vecs[iat] - vecs[s2u[iat]] - for ix in range(3): - if(lvec[ix] < -1.0e-3): - lvec[ix] += 1.0 - elif(lvec[ix] > 0.999): - lvec[ix] -= 1.0 - for iuc in range(nuc): - if(np.linalg.norm(lvec - rvec[iuc]) < 1.0e-4): - ind_u[iat] = iuc - found = True - break - if(not found): - print('Could not find the unit cell of atom: ', iat) - print(lvec) - print(ind_u) - sscha_fc2 = np.zeros((nuc, 3*nat_uc, 3*nat_uc)) - print(ind_s) - print(indices) - for iat in range(nat_uc): - for jat in range(nat): - iuc = ind_u[jat] - sscha_fc2[iuc, 3*iat:3*(iat+1), 3*ind_s[jat]:3*(ind_s[jat] + 1)] = fc2[indices[iat]][jat] - rvec = np.dot(rvec, phonon.supercell.cell) - - return sscha_fc2, rvec - -# Generate CC.Structure from PhonopyAtoms -def get_sscha_structure_from_phonopy(phatoms): - - sscha_structure = Structure.Structure(nat = len(phatoms.positions)) - sscha_structure.coords = phatoms.positions - sscha_structure.N_atoms = len(phatoms.positions) - sscha_structure.atoms = phatoms.symbols - sscha_structure.unit_cell = phatoms.cell - sscha_structure.has_unit_cell = True - for iat in range(sscha_structure.N_atoms): - sscha_structure.masses[sscha_structure.atoms[iat]] = phatoms.masses[iat]/MASS_RY_TO_UMA - - return sscha_structure - -# Get Cellconstructor.Phonons from Phonopy object -def sscha_phonons_from_phonopy(phonon): - - sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure - sscha_supercell = get_sscha_structure_from_phonopy(phonon.supercell) - - nat_uc = sscha_structure.N_atoms - nat_sc = sscha_supercell.N_atoms - - q_grid = symmetries.GetQGrid(sscha_structure.unit_cell, np.diag(phonon.supercell_matrix)) - gamma_index = np.argmin(np.sum(np.array(q_grid)**2, axis = 1)) - q_grid[gamma_index] = q_grid[0].copy() - q_grid[0] = np.zeros(3, dtype = np.double) - dyn = Phonons.Phonons(sscha_structure, len(q_grid)) - dyn.q_tot = q_grid - - if(len(phonon.force_constants) == nat_sc): - fc2 = phonon.force_constants.copy()/RY_TO_EV*BOHR_TO_ANGSTROM**2 - elif(len(phonon.force_constants) == nat_uc): - fc2 = compact_fc_to_full_fc(phonon, phonon.force_constants) - fc2 *= BOHR_TO_ANGSTROM**2/RY_TO_EV - else: - raise RuntimeError('Number of force constants does not match expected phonopy formats! ') - - sscha_fc2 = np.zeros( (3*nat_sc, 3*nat_sc), dtype = np.double) - for iat in range(nat_sc): - for jat in range(nat_sc): - sscha_fc2[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = fc2[iat, jat] - - dynq = Phonons.GetDynQFromFCSupercell(sscha_fc2, np.array(dyn.q_tot), sscha_structure, sscha_supercell) - dyn.dynmats = dynq - dyn.AdjustQStar() - - return dyn - - -# Get ForceTensor.Tensor3 from Phono3py object -def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): - - unitcell = get_sscha_structure_from_phonopy(tc.primitive) - supercell = get_sscha_structure_from_phonopy(tc.supercell) - uc_nat = unitcell.N_atoms - sc_nat = supercell.N_atoms - if(uc_nat in tc.fc3.shape[0:3]): - print('Compact forceconstants.') - tc.generate_displacements() - supercells = tc.supercells_with_displacements - tc.fc3 = force_constants_3rd_order - fcart_dummy = [] - for isup in range(len(supercells)): - fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) - tc.forces = fcart_dummy - disps, _ = get_displacements_and_forces_fc3(tc.dataset) - first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) - s2p_map = tc.primitive.s2p_map - p2s_map = tc.primitive.p2s_map - p2p_map = tc.primitive.p2p_map - s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") - for i in first_disp_atoms: - assert i in p2s_map - target_atoms = [i for i in p2s_map if i not in first_disp_atoms] - rotations = tc.symmetry.symmetry_operations["rotations"] - permutations = tc.symmetry.atomic_permutations - distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) - - supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() - #print(supercell_matrix) - #print(unitcell.unit_cell) - #print(unitcell.coords) - supercell_structure = unitcell.generate_supercell(supercell_matrix) - #print(supercell_structure.unit_cell) - #print(supercell_structure.coords) - atom_mapping = np.zeros(len(supercell.coords), dtype=int) - already_there = [False for x in range(len(supercell.coords))] - for iat in range(len(supercell.coords)): - found_atom = False - for jat in range(len(supercell.coords)): - if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and not already_there[jat]): - atom_mapping[iat] = jat - found_atom = True - already_there[jat] = True - break - elif(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and already_there[jat]): - raise RuntimeError('Already matched this atom!') - if(not found_atom): - print('Could not find ' + str(iat + 1) + ' atom in the structure!') - if(not np.all(already_there)): - raise RuntimeError('Did not match all atoms...') -# print(atom_mapping) - tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) - #print(tensor3.supercell_structure.unit_cell) - #print(tensor3.supercell_structure.coords) - aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) - for iat in range(sc_nat): - iat1 = atom_mapping[iat] - for jat in range(sc_nat): - jat1 = atom_mapping[jat] - for kat in range(sc_nat): - kat1 = atom_mapping[kat] - for i in range(3): - for j in range(3): - for k in range(3): - aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] - d3 = np.asfortranarray(aux_tensor) - if(apply_symmetries): - qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) - qe_sym.SetupFromSPGLIB() - qe_sym.ApplySymmetryToTensor3(d3) - d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV - tensor3.SetupFromTensor(d3) - np.save("d3_realspace_sym.npy", d3) - - print('Translated phonopy 3rd order force constants.') - return tensor3 - -def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): - - SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) - red_vecs_SSCHA = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) - red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) - dims = np.diag(phonon.supercell_matrix) - nuc = np.prod(dims) - if(nuc != np.shape(red_vecs_SSCHA)[1]): - print('Phonopy and SSCHA have different number of unit cells!') - print('Make sure you do not center() SSCHA tensor before attempting this conversion!') - raise RuntimeError('Non-conforming shapes of matrices!') - nat = len(phonon.primitive.positions) - s2u = phonon.supercell.s2u_map.copy() - primitive_cell_position = red_vecs_phonopy[s2u] - for iat in range(len(red_vecs_phonopy)): - red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] - for i in range(3): - if(red_vecs_phonopy[iat][i] >= dims[i]): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] - elif(red_vecs_phonopy[iat][i] < 0.0): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] - unit_cell_order = np.zeros(np.shape(red_vecs_SSCHA)[1], dtype = int) - for iuc in range(np.shape(red_vecs_SSCHA)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order[iuc] = iat - phonopy_tensor = np.zeros((nat,nuc*nat,3,3)) - for iuc in range(nuc): - for iat in range(nat): - for jat in range(nat): - phonopy_tensor[iat][jat*nuc + unit_cell_order[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)] - return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**2 - -def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): - - SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) - red_vecs_SSCHA_1 = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) - red_vecs_SSCHA_2 = np.round(SSCHA_tensor.x_r_vector3.copy().astype(float), 4) - red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) - dims = np.diag(phonon.supercell_matrix) - nuc = np.prod(dims) - if(nuc**2 != np.shape(red_vecs_SSCHA_1)[1]): - print('Phonopy and SSCHA have different number of unit cells!') - print('Make sure you do not center() SSCHA tensor before attempting this conversion!') - raise RuntimeError('Non-conforming shapes of matrices!') - nat = len(phonon.primitive.positions) - s2u = phonon.supercell.s2u_map.copy() - primitive_cell_position = red_vecs_phonopy[s2u] - for iat in range(len(red_vecs_phonopy)): - red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] - for i in range(3): - if(red_vecs_phonopy[iat][i] >= dims[i]): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] - elif(red_vecs_phonopy[iat][i] < 0.0): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] - unit_cell_order_1 = np.zeros(np.shape(red_vecs_SSCHA_1)[1], dtype = int) - unit_cell_order_2 = np.zeros(np.shape(red_vecs_SSCHA_2)[1], dtype = int) - for iuc in range(np.shape(red_vecs_SSCHA_1)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA_1[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order_1[iuc] = iat - for iuc in range(np.shape(red_vecs_SSCHA_2)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA_2[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order_2[iuc] = iat - phonopy_tensor = np.zeros((nat,nuc*nat,nuc*nat,3,3,3)) - for iuc in range(nuc**2): - for iat in range(nat): - for jat in range(nat): - for kat in range(nat): - phonopy_tensor[iat][jat*nuc + unit_cell_order_1[iuc]][kat*nuc + unit_cell_order_2[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1), 3*kat:3*(kat+1)] - return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**3 diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index a0d6de5a..aa364830 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -9,7 +9,6 @@ import scipy, scipy.optimize from scipy import integrate import h5py -import psutil # Import the Fortran Code import symph @@ -29,6 +28,12 @@ import time +__SEEKPATH=False +try: + import phonopy + __SEEKPATH=True +except: + __SEEKPATH=False try: from mpi4py import MPI @@ -308,7 +313,7 @@ def get_kpoints_in_path(path, nkpts, kprim): return kpoints, distance, segments -def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): +def centering_fc3(tensor3, check_for_symmetries = True, Far = 1): rprim = tensor3.unitcell_structure.unit_cell.copy() irprim = np.linalg.inv(rprim) rsup = tensor3.supercell_structure.unit_cell.copy() @@ -329,7 +334,6 @@ def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): print('ForceTensor most likely not previously centered! ') if(check_for_symmetries): permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) - print(psutil.virtual_memory().percent) if(not permutation): print('Permutation symmetry not satisfied. Forcing symmetry! ') fc3 = thermal_conductivity.third_order_cond_centering.apply_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) @@ -354,7 +358,7 @@ def stupid_centering_fc3_v3(tensor3, check_for_symmetries = True, Far = 1): tensor3.tensor = fc3[0:ntrip] tensor3.x_r_vector2 = np.rint(np.dot(r_vector2[0:ntrip,:], irprim), dtype=float).T tensor3.x_r_vector3 = np.rint(np.dot(r_vector3[0:ntrip,:], irprim), dtype=float).T - write_fc3(tensor3) + #write_fc3(tensor3) if(check_for_symmetries): permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) if(not permutation): @@ -397,257 +401,6 @@ def write_fc3(tensor3): outfile.write(3*' ' + format(tensor3.tensor[i,3*iat+j,3*jat+j1,3*kat+k1], '.8f')) outfile.write('\n') -def stupid_centering_fc3_v2(tensor3, Far = 1): - - rprim = tensor3.unitcell_structure.unit_cell.copy() - irprim = np.linalg.inv(rprim) - rsup = tensor3.supercell_structure.unit_cell.copy() - irsup = np.linalg.inv(rsup) - #print(rprim) - positions = tensor3.unitcell_structure.coords.copy() - xpos = np.dot(positions, np.linalg.inv(rprim)) - natom = len(xpos) - #print(xpos) - symbols = tensor3.unitcell_structure.atoms - unique_symbols = np.unique(symbols) - unique_numbers = np.arange(len(unique_symbols), dtype=int) + 1 - numbers = np.zeros(len(symbols)) - for iat in range(len(symbols)): - for jat in range(len(unique_symbols)): - if(symbols[iat] == unique_symbols[jat]): - numbers[iat] = unique_numbers[jat] - #print(numbers) - cell = (rprim, xpos, numbers) - - if(tensor3.n_R == tensor3.n_sup**2): - print('Not previously centered. Stupid centering!') - got = [False for x in range(tensor3.n_R)] - pairs = [] - # Check if it satisfies the permutation symmetry - for i in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,i].copy() - rvec3 = tensor3.r_vector3[:,i].copy() - if(np.linalg.norm(rvec2) < 1.0e-5 and np.linalg.norm(rvec3) < 1.0e-5): - pairs.append([i,i]) - got[i] = True - else: - if(not got[i]): - for j in range(i, tensor3.n_R): - if(not got[j]): - rvec21 = tensor3.r_vector2[:,j].copy() - rvec31 = tensor3.r_vector3[:,j].copy() - if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): - pairs.append([i,j]) - got[i] = True - got[j] = True - if(not np.all(got)): - for i in range(tensor3.n_R): - if(not got[i]): - print(tensor3.x_r_vector2[:,i]) - print(tensor3.x_r_vector3[:,i]) - print('') - else: - print('Found all pairs') - for ipair in range(len(pairs)): - if(pairs[ipair][0] != pairs[ipair][1]): - ip = pairs[ipair][0] - jp = pairs[ipair][1] - for i in range(3*natom): - for iat in range(natom): - for jat in range(natom): - if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): - print('Permutation symmetry failed original!') - print(tensor3.tensor[ip,i]) - print(tensor3.tensor[jp,i]) - print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) - print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) - raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) - break - new_r_vector2 = [[] for iat in range(natom**3)] - new_r_vector3 = [[] for iat in range(natom**3)] - new_tensor = [[] for iat in range(natom**3)] - multiplicity = [[] for iat in range(natom**3)] - print('Finished check. Centering...') - for ir in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,ir].copy() - rvec3 = tensor3.r_vector3[:,ir].copy() - xvec2 = np.dot(rvec2, irsup) - xvec3 = np.dot(rvec3, irsup) - size2 = np.linalg.norm(rvec2) - size20 = np.linalg.norm(rvec2) - size3 = np.linalg.norm(rvec3) - size30 = np.linalg.norm(rvec3) - size = np.linalg.norm(rvec3 - rvec2) + size2 + size3 - rvec2_new = [[] for iat in range(natom**3)] - rvec3_new = [[] for iat in range(natom**3)] - # Find the shortest pair vectors in the mirror supercells -Far <= x <= Far - for iat in range(natom): - for jat in range(natom): - for kat in range(natom): - index = kat + jat*natom + natom**2*iat - rvec2 = tensor3.r_vector2[:,ir].copy() + positions[jat] - positions[iat] - rvec3 = tensor3.r_vector3[:,ir].copy() + positions[kat] - positions[iat] - xvec2 = np.dot(rvec2, irsup) - xvec3 = np.dot(rvec3, irsup) - size2 = np.linalg.norm(rvec2) - size20 = np.linalg.norm(rvec2) - size3 = np.linalg.norm(rvec3) - size30 = np.linalg.norm(rvec3) - for i in range(-Far,Far + 1): - for j in range(-Far, Far + 1): - for k in range(-Far, Far +1): - xvec21 = xvec2 + np.array([i,j,k]) - rvec21 = np.dot(xvec21, rsup) - size21 = np.linalg.norm(rvec21) - if(size21 <= size2 + 1.0e-6): - if(abs(size21 - size2) < 1.0e-6): - uc_vec = tensor3.r_vector2[:,ir].copy() - uc_vec = np.dot(uc_vec, irsup) - uc_vec += np.array([i,j,k]) - uc_vec = np.dot(uc_vec, rsup) - rvec2_new[index].append(uc_vec) - else: - uc_vec = tensor3.r_vector2[:,ir].copy() - uc_vec = np.dot(uc_vec, irsup) - uc_vec += np.array([i,j,k]) - uc_vec = np.dot(uc_vec, rsup) - rvec2_new[index] = [] - rvec2_new[index].append(uc_vec) - size2 = size21 - rvec2 = rvec21.copy() - xvec31 = xvec3 + np.array([i,j,k]) - rvec31 = np.dot(xvec31, rsup) - size31 = np.linalg.norm(rvec31) - if(size31 <= size3 + 1.0e-6): - if(abs(size31 - size3) < 1.0e-6): - uc_vec = tensor3.r_vector3[:,ir].copy() - uc_vec = np.dot(uc_vec, irsup) - uc_vec += np.array([i,j,k]) - uc_vec = np.dot(uc_vec, rsup) - rvec3_new[index].append(uc_vec) - else: - uc_vec = tensor3.r_vector3[:,ir].copy() - uc_vec = np.dot(uc_vec, irsup) - uc_vec += np.array([i,j,k]) - uc_vec = np.dot(uc_vec, rsup) - rvec3_new[index] = [] - rvec3_new[index].append(uc_vec) - size3 = size31 - rvec3 = rvec31.copy() - # For each pair of the shortest pairs construct another entry to tensor3 and scale it with multiplicity - for iuc in range(len(rvec2_new[index])): - for juc in range(len(rvec3_new[index])): - already_there = False - for kuc in range(len(new_r_vector2[index])): - if(np.linalg.norm(rvec2_new[index][iuc] - new_r_vector2[index][kuc]) < 1.0e-6 and \ - np.linalg.norm(rvec3_new[index][juc] - new_r_vector3[index][kuc]) < 1.0e-6): - already_there = True - print('Would double count this one!') - break - if not already_there: - new_r_vector2[index].append(rvec2_new[index][iuc]) - new_r_vector3[index].append(rvec3_new[index][juc]) - new_tensor[index].append(tensor3.tensor[ir]/float(len(rvec2_new[index])*len(rvec3_new[index]))) - multiplicity[index].append(len(rvec2_new[index])*len(rvec3_new[index])) - n_R = [0 for x in range(natom**3)] - for iat in range(natom): - for jat in range(natom): - for kat in range(natom): - n_R[kat + jat*natom +iat*natom**2] = len(new_r_vector2[kat + jat*natom + natom**2*iat]) - #Check if all n_R are equal - if(n_R.count(n_R[0]) == len(n_R)): - index0 = 0 - else: - index0 = np.argsort(n_R)[-1] - r_vector2 = new_r_vector2[index0].copy() - r_vector3 = new_r_vector3[index0].copy() - extra = 0 - for itrip in range(len(n_R)): - if(itrip != index0): - for iuc in range(len(new_r_vector2[itrip])): - already_there = False - for juc in range(len(r_vector2)): - if(np.linalg.norm(r_vector2[juc] - new_r_vector2[itrip][iuc]) < 1.0e-6 and \ - np.linalg.norm(r_vector3[juc] - new_r_vector3[itrip][iuc]) < 1.0e-6): - already_there = True - break - if(not already_there): - extra += 1 - r_vector2.append(new_r_vector2[itrip][iuc]) - r_vector3.append(new_r_vector3[itrip][iuc]) - print('Added ' + str(extra) + ' new triplets!') - fc3 = [] - for iuc in range(len(r_vector2)): - fc3.append(np.zeros_like(tensor3.tensor[0])) - for iat in range(natom): - for jat in range(natom): - for kat in range(natom): - index = kat + jat*natom + iat*natom**2 - found = False - for juc in range(len(new_r_vector2[index])): - if(np.linalg.norm(new_r_vector2[index][juc] - r_vector2[iuc]) < 1.0e-6 and \ - np.linalg.norm(new_r_vector3[index][juc] - r_vector3[iuc]) < 1.0e-6): - fc3[iuc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat] = new_tensor[index][juc][3*iat:3+3*iat,3*jat:3+3*jat,3*kat:3+3*kat]#*multiplicity[index][juc]/multiplicity[index][iuc] - found = True - break - print('Final number of triplets: ', len(r_vector2)) - tensor3.n_R = len(r_vector2) - tensor3.r_vector2 = np.array(r_vector2).T - tensor3.r_vector3 = np.array(r_vector3).T - tensor3.x_r_vector2 = np.zeros_like(tensor3.r_vector2) - tensor3.x_r_vector3 = np.zeros_like(tensor3.r_vector3) - tensor3.tensor = np.array(fc3) - write_fc3(tensor3) - got = [False for x in range(tensor3.n_R)] - pairs = [] - for i in range(tensor3.n_R): - rvec2 = tensor3.r_vector2[:,i].copy() - rvec3 = tensor3.r_vector3[:,i].copy() - tensor3.x_r_vector2[:,i] = np.rint(np.dot(tensor3.r_vector2[:,i], irprim), dtype=float) - tensor3.x_r_vector3[:,i] = np.rint(np.dot(tensor3.r_vector3[:,i], irprim), dtype=float) - # Find pairs to check if this centering broke permutation symmetry - if(np.linalg.norm(rvec2 - rvec3) < 1.0e-5): - pairs.append([i,i]) - got[i] = True - else: - if(not got[i]): - for j in range(i, tensor3.n_R): - if(not got[j]): - rvec21 = tensor3.r_vector2[:,j].copy() - rvec31 = tensor3.r_vector3[:,j].copy() - if(np.linalg.norm(rvec21 - rvec3) < 1.0e-5 and np.linalg.norm(rvec31 - rvec2) < 1.0e-5): - pairs.append([i,j]) - got[i] = True - got[j] = True - if(not np.all(got)): - for i in range(tensor3.n_R): - if(not got[i]): - print(tensor3.x_r_vector2[:,i]) - print(tensor3.x_r_vector3[:,i]) - print('') - else: - print('Found all pairs') - for ipair in range(len(pairs)): - if(pairs[ipair][0] != pairs[ipair][1]): - ip = pairs[ipair][0] - jp = pairs[ipair][1] - for i in range(3*natom): - for iat in range(natom): - for jat in range(natom): - if(np.any(np.abs(tensor3.tensor[ip,i,3*iat:3*(iat + 1), 3*jat:3*(jat+1)] - tensor3.tensor[jp,i,3*jat:3*(jat + 1), 3*iat:3*(iat+1)].T) > 1.0e-10*np.amax(np.abs(tensor3.tensor)))): - print('Permutation symmetry failed!') - print(tensor3.tensor[ip,i]) - print(tensor3.tensor[jp,i]) - print(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) - print(np.abs(tensor3.tensor[ip,i] - tensor3.tensor[jp,i].T) > 1.0e-8*np.amax(np.abs(tensor3.tensor[ip,i]))) - raise RuntimeError('Get me out!', np.amax(np.abs(tensor3.tensor[ip,i]))) - break - - else: - print('Probably already centered! Nothing to do!') - - return tensor3 - def find_q_mq_pairs(kpoints): pairs = [] @@ -1186,7 +939,7 @@ def setup_smearings(self, smearing_value = 0.00005): self.sigmas[ikpt][iband] = delta_v*delta_q*self.smearing_scale else: self.sigmas[ikpt][iband] = 0.0 - min_smear = np.amax(self.sigmas)/10.0 # We can't have scattering zero for modes with 0 group velocity, so we set it to this number! + min_smear = np.amax(self.sigmas)/10.0 # We can't have smearing zero for modes with 0 group velocity, so we set it to this number! self.sigmas[self.sigmas < min_smear] = min_smear if(np.all(self.sigmas == 0.0)): raise RuntimeError('All smearing values are zero!') @@ -1706,8 +1459,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort self.delta_omega = energies[1] - energies[0] ls_key = format(temperature, '.1f') - if(mode_mixing != 'no'): - print('WARNING! mode_mixing approach has been selected. Calculation of kappa in GK will not be possible!') + #if(mode_mixing != 'no'): + # print('WARNING! mode_mixing approach has been selected. Calculation of kappa in GK will not be possible!') if(method == 'python'): @@ -1902,23 +1655,28 @@ def get_lifetimes_selfconsistently(self, temperature, ne, gauss_smearing = False def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spectral_function_along_path', gauss_smearing = True, mode_mixing = 'no', kpoints = None, start_nkpts = 100, smear = None): """ - Calculate phonon lineshapes in full Brillouin zone. + Calculate phonon lineshapes for specific k-points. temperature : temperature to calculate lineshapes on. ne : Number of frequency points for the lineshapes gauss_smearing : are we using Gaussian smearing as approximation for energy conservation + mode_mixing : If true will calculate full phonon spectral function kpoints : the list of kpoints in reduced coordinates to calculate lineshapes for. If not provided generate them using seekpath - nkpts : Number of k points along the path. Will differ from the final number of points! - """ + start_nkpts : Number of k points along the path. Will differ from the final number of points! + smear : Smearing used for energy conservation. + """ + + if(not __SEEKPATH and kpoints is None): + raise RuntimeError('To automatically generated a line in reciprocal space one need seekpath. First do "pip install seekpath"!') + start_time = time.time() tics = [] distances = [] segments = [] if(kpoints is None): - import seekpath rat = np.dot(self.dyn.structure.coords, np.linalg.inv(self.dyn.structure.unit_cell)) sym = np.unique(self.dyn.structure.atoms) nt = np.zeros(len(rat)) @@ -1962,6 +1720,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec irrqgrid = kpoints.T scattering_events = np.zeros(nkpts, dtype=int) if(smear is None): + # One has to provide smearing. Otherwise we are using the largest smearing from the full Brillouin zone! sigmas = np.zeros((nkpts, self.nband)) sigmas[:,:] = np.amax(self.sigmas) else: @@ -2000,7 +1759,6 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec if(self.cp_mode == 'classical'): classical = True - print(psutil.virtual_memory().percent) if(mode_mixing == 'mode_mixing'): curr_ls = thermal_conductivity.get_lf.calculate_lineshapes_mode_mixing(irrqgrid, scattering_grids, weights, scattering_events,\ self.fc2.tensor, self.fc2.r_vector2, self.fc3.tensor, self.fc3.r_vector2, self.fc3.r_vector3, \ diff --git a/requirements.txt b/requirements.txt index 39182bbc..9f0dd198 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ numpy scipy ase spglib +h5py From 69cb43497cced599620f1a10d8cb2fe931a8f709 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 15 May 2023 08:33:05 +0200 Subject: [PATCH 141/204] Changed saving method! --- cellconstructor/ThermalConductivity.py | 185 ++----------------------- requirements.txt | 1 - 2 files changed, 15 insertions(+), 171 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index aa364830..1d509b4e 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -8,7 +8,6 @@ import os, sys import scipy, scipy.optimize from scipy import integrate -import h5py # Import the Fortran Code import symph @@ -441,6 +440,16 @@ def rotate_eigenvectors(ddm, eigs): return rot_eigvecs +def load_thermal_conductivity(filename = 'tc.pkl'): + + import pickle + + infile = open(filename, 'rb') + tc = pickle.load(infile) + infile.close() + return tc + + class ThermalConductivity: def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', group_velocity_mode = 'analytical', off_diag = False): @@ -526,178 +535,14 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.kappa = {} self.got_scattering_rates_isotopes = False - ################################################################################################################################## - - def save(self, filename = 'sscha_thermal_conductivity.h5'): + ################################################################################################################### - """ - Routine to save most of the information needed for further postprocessing. - - filename : Title of the file the information is to be stored to + def save_pickle(self, filename = 'tc.pkl'): - """ + import pickle - hf = h5py.File(filename, 'w') - - ne = None - - if(self.smearing_scale is not None): - hf.create_dataset('smearing_scale', data = np.array([self.smearing_scale])) - hf.create_dataset('kpoint_grid', data = self.kpoint_grid) - hf.create_dataset('scattering_grid', data = self.scattering_grid) - hf.create_dataset('unit_cell', data = self.unitcell) - hf.create_dataset('supercell', data = self.supercell) - dt = h5py.special_dtype(vlen=str) - hf.create_dataset('smearing_type', data = self.smearing_type, dtype=dt) - hf.create_dataset('cp_mode', data = self.cp_mode) - hf.create_dataset('off_diag', data = self.off_diag) - hf.create_dataset('reciprocal_lattice', data = self.reciprocal_lattice) - hf.create_dataset('k_points', data = self.k_points) - hf.create_dataset('qpoints', data = self.qpoints) - hf.create_dataset('delta_omega', data = self.delta_omega) - hf.create_dataset('nkpt', data = self.nkpt) - hf.create_dataset('nband', data = self.nband) - hf.create_dataset('nirrkpt', data = self.nirrkpt) - - irrqpts = [hf.create_group('irreducible_kpoint' + str(i + 1)) for i in range(self.nirrkpt)] - for ikpt in range(self.nirrkpt): - irrqpts[ikpt].create_dataset('k_point', data = self.irr_k_points[ikpt]) - irrqpts[ikpt].create_dataset('star', data = self.qstar[ikpt]) - irrqpts[ikpt].create_dataset('frequency', data = self.freqs[self.qstar[ikpt][0]]) - eigvecs = [] - gvels = [] - sigmas = [] - for istar in range(len(self.qstar[ikpt])): - jkpt = self.qstar[ikpt][istar] - eigvecs.append(self.eigvecs[jkpt]) - gvels.append(self.gvels[jkpt]) - sigmas.append(self.sigmas[jkpt]) - eigvecs = np.array(eigvecs) - gvels = np.array(gvels) - sigmas = np.array(sigmas) - irrqpts[ikpt].create_dataset('eigenvectors', data = eigvecs) - irrqpts[ikpt].create_dataset('group_velocities', data = gvels) - irrqpts[ikpt].create_dataset('sigmas', data = sigmas) - keys = [] - for key in self.lifetimes.keys(): - keys.append(key) - if(len(keys) > 0): - for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('lifetimes_' + keys[ik], data = self.lifetimes[keys[ik]][self.qstar[ikpt][0]]) - keys = [] - for key in self.freqs_shifts.keys(): - keys.append(key) - if(len(keys) > 0): - for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('freqs_shifts_' + keys[ik], data = self.freqs_shifts[keys[ik]][self.qstar[ikpt][0]]) - keys = [] - for key in self.lineshapes.keys(): - keys.append(key) - if(len(keys) > 0): - for ik in range(len(keys)): - if(ne is None): - ne = np.shape(self.lineshapes[keys[ik]])[-1] - hf.create_dataset('ne', data = ne) - else: - if(ne != np.shape(self.lineshapes[keys[ik]])[-1]): - raise RuntimeError('Number of energy/frequency points not same for all temperatures!') - irrqpts[ikpt].create_dataset('lineshapes_' + keys[ik], data = self.lineshapes[keys[ik]][self.qstar[ikpt][0]]) - keys = [] - for key in self.cp.keys(): - keys.append(key) - if(len(keys) > 0): - for ik in range(len(keys)): - irrqpts[ikpt].create_dataset('cp_' + keys[ik], data = self.cp[keys[ik]][self.qstar[ikpt][0]]) - keys = [] - for key in self.kappa.keys(): - keys.append(key) - if(len(keys) > 0): - for ik in range(len(keys)): - hf.create_dataset('kappa_' + keys[ik], data = self.kappa[keys[ik]]) - hf.close() - - def load(self, filename): - - """ - Routine to read the information that one might need for postprocessing! - - """ - - hf = h5py.File(filename, 'r') - - try: - self.smearing_scale = np.array(hf.get('smearing_scale')) - except: - pass - self.kpoint_grid = np.array(hf.get('kpoint_grid')) - self.scattering_grid = np.array(hf.get('scattering_grid')) - self.unitcell = np.array(hf.get('unit_cell')) - self.supercell = np.array(hf.get('supercell')) - self.smearing_type = np.array2string(np.array(hf.get('smearing_type')))[2:-1] - self.cp_mode = np.array2string(np.array(hf.get('cp_mode')))[2:-1] - self.off_diag = np.array(hf.get('off_diag')).item() - self.reciprocal_lattice = np.array(hf.get('reciprocal_lattice')) - self.k_points = np.array(hf.get('k_points')) - self.qpoints = np.array(hf.get('qpoints')) - self.delta_omega = np.array(hf.get('delta_omega')).item() - self.nkpt = np.array(hf.get('nkpt')).item() - self.nband = np.array(hf.get('nband')).item() - self.nirrkpt = np.array(hf.get('nirrkpt')).item() - ne = np.array(hf.get('ne')).item() - self.freqs = np.zeros((self.nkpt, self.nband)) - self.gruneisen = np.zeros((self.nkpt, self.nband)) - self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) - if(self.off_diag): - self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3)) - else: - self.gvels = np.zeros((self.nkpt, self.nband, 3)) - self.sigmas = np.zeros_like(self.freqs) - - self.irr_k_points = [] - self.qstar = [] - for i in range(self.nirrkpt): - self.irr_k_points.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('k_point'))) - self.qstar.append(np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('star'))) - eigvecs = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('eigenvectors')) - gvels = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('group_velocities')) - sigmas = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('sigmas')) - - for istar in range(len(self.qstar[-1])): - jkpt = self.qstar[-1][istar] - self.freqs[jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get('frequency')) - self.eigvecs[jkpt] = eigvecs[istar] - self.gvels[jkpt] = gvels[istar] - self.sigmas[jkpt] = sigmas[istar] - keys = [] - for key in hf.get('irreducible_kpoint' + str(i + 1)).keys(): - keys.append(key) - for key in keys: - if('cp' in key): - temp = key.split('_')[-1] - if(temp not in self.cp.keys()): - self.cp[temp] = np.zeros((self.nkpt, self.nband)) - self.cp[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) - elif('lifetimes' in key): - temp = key.split('_')[-1] - if(temp not in self.lifetimes.keys()): - self.lifetimes[temp] = np.zeros((self.nkpt, self.nband)) - self.lifetimes[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) - elif('freqs_shifts' in key): - temp = key.split('_')[-1] - if(temp not in self.lifetimes.keys()): - self.freqs_shifts[temp] = np.zeros((self.nkpt, self.nband)) - self.freqs_shifts[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) - elif('lineshapes' in key): - temp = key.split('_')[-1] - if(temp not in self.lineshapes.keys()): - print('Reading') - self.lineshapes[temp] = np.zeros((self.nkpt, self.nband, ne)) - self.lineshapes[temp][jkpt] = np.array(hf.get('irreducible_kpoint' + str(i + 1)).get(key)) - - for key in hf.keys(): - if('kappa' in key): - temp = key.split('_')[-1] - self.kappa[temp] = np.array(hf.get(key)) + with open(filename, 'wb') as outfile: + pickle.dump(self, outfile) ################################################################################################################################### diff --git a/requirements.txt b/requirements.txt index 9f0dd198..39182bbc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,3 @@ numpy scipy ase spglib -h5py From b11e8047c8e614a0533c602f6203336b5efcdd15 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Sat, 20 May 2023 13:22:22 +0200 Subject: [PATCH 142/204] Bug in Methods.py --- cellconstructor/Methods.py | 526 ++++++++++++++++++------------------- 1 file changed, 263 insertions(+), 263 deletions(-) diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index 20633730..ccfe7a8f 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -1925,269 +1925,269 @@ def same_vectors(vec1, vec2, cell): break return same - # Rewrite phonopy force constants to a format identical to CC.ForceTensor one - # Better use sscha_phonons_from_phonopy ! - def phonopy_fc2_to_tensor2(fc2, phonon): - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - s2u = phonon.supercell.s2u_map.copy() - u2s = phonon.supercell.u2s_map.copy() - nat_uc = len(u2s) - nat = len(s2u) - if(nat%nat_uc == 0): - nuc = np.int(np.round(float(nat)/float(nat_uc))) - else: - print('Number of unit cell could not be determined from the number of atoms!', nat, nat_uc) - if(len(fc2) == nat_uc): - indices = np.arange(nat_uc) - elif(len(fc2) == nat): - indices = u2s.copy() - else: - raise RuntimeError('Unexpected number of pairs in second order force constants! ', len(fc2)) - ind_s = np.zeros_like(s2u) - for iat in range(nat): - for jat in range(nat_uc): - if(s2u[iat] == u2s[jat]): - ind_s[iat] = jat - vecs = phonon.supercell.scaled_positions - phonon.supercell.scaled_positions[0] +# Rewrite phonopy force constants to a format identical to CC.ForceTensor one +# Better use sscha_phonons_from_phonopy ! +def phonopy_fc2_to_tensor2(fc2, phonon): + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + s2u = phonon.supercell.s2u_map.copy() + u2s = phonon.supercell.u2s_map.copy() + nat_uc = len(u2s) + nat = len(s2u) + if(nat%nat_uc == 0): + nuc = np.int(np.round(float(nat)/float(nat_uc))) + else: + print('Number of unit cell could not be determined from the number of atoms!', nat, nat_uc) + if(len(fc2) == nat_uc): + indices = np.arange(nat_uc) + elif(len(fc2) == nat): + indices = u2s.copy() + else: + raise RuntimeError('Unexpected number of pairs in second order force constants! ', len(fc2)) + ind_s = np.zeros_like(s2u) + for iat in range(nat): + for jat in range(nat_uc): + if(s2u[iat] == u2s[jat]): + ind_s[iat] = jat + vecs = phonon.supercell.scaled_positions - phonon.supercell.scaled_positions[0] + for iat in range(nat): + for ix in range(3): + if(vecs[iat][ix] < -1.0e-3): + vecs[iat][ix] += 1.0 + elif(vecs[iat][ix] > 0.999): + vecs[iat][ix] -= 1.0 + + vecs = np.round(vecs, 5) + rvec = vecs[0:nuc] + invcell = np.linalg.inv(phonon.primitive.cell) + ind_u = np.zeros_like(s2u) + for iat in range(nat): + found = False + lvec = vecs[iat] - vecs[s2u[iat]] + for ix in range(3): + if(lvec[ix] < -1.0e-3): + lvec[ix] += 1.0 + elif(lvec[ix] > 0.999): + lvec[ix] -= 1.0 + for iuc in range(nuc): + if(np.linalg.norm(lvec - rvec[iuc]) < 1.0e-4): + ind_u[iat] = iuc + found = True + break + if(not found): + print('Could not find the unit cell of atom: ', iat) + print(lvec) + sscha_fc2 = np.zeros((nuc, 3*nat_uc, 3*nat_uc)) + for iat in range(nat_uc): + for jat in range(nat): + iuc = ind_u[jat] + sscha_fc2[iuc, 3*iat:3*(iat+1), 3*ind_s[jat]:3*(ind_s[jat] + 1)] = fc2[indices[iat]][jat] + rvec = np.dot(rvec, phonon.supercell.cell) + + return sscha_fc2, rvec + +# Generate CC.Structure from PhonopyAtoms +def get_sscha_structure_from_phonopy(phatoms): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + sscha_structure = Structure.Structure(nat = len(phatoms.positions)) + sscha_structure.coords = phatoms.positions + sscha_structure.N_atoms = len(phatoms.positions) + sscha_structure.atoms = phatoms.symbols + sscha_structure.unit_cell = phatoms.cell + sscha_structure.has_unit_cell = True + for iat in range(sscha_structure.N_atoms): + sscha_structure.masses[sscha_structure.atoms[iat]] = phatoms.masses[iat]/MASS_RY_TO_UMA + + return sscha_structure + +# Get Cellconstructor.Phonons from Phonopy object +def sscha_phonons_from_phonopy(phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure + sscha_supercell = get_sscha_structure_from_phonopy(phonon.supercell) + + nat_uc = sscha_structure.N_atoms + nat_sc = sscha_supercell.N_atoms + + q_grid = symmetries.GetQGrid(sscha_structure.unit_cell, np.diag(phonon.supercell_matrix)) + gamma_index = np.argmin(np.sum(np.array(q_grid)**2, axis = 1)) + q_grid[gamma_index] = q_grid[0].copy() + q_grid[0] = np.zeros(3, dtype = np.double) + dyn = Phonons.Phonons(sscha_structure, len(q_grid)) + dyn.q_tot = q_grid + + if(len(phonon.force_constants) == nat_sc): + fc2 = phonon.force_constants.copy()/RY_TO_EV*BOHR_TO_ANGSTROM**2 + elif(len(phonon.force_constants) == nat_uc): + fc2 = compact_fc_to_full_fc(phonon, phonon.force_constants) + fc2 *= BOHR_TO_ANGSTROM**2/RY_TO_EV + else: + raise RuntimeError('Number of force constants does not match expected phonopy formats! ') + + sscha_fc2 = np.zeros( (3*nat_sc, 3*nat_sc), dtype = np.double) + for iat in range(nat_sc): + for jat in range(nat_sc): + sscha_fc2[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = fc2[iat, jat] + + dynq = Phonons.GetDynQFromFCSupercell(sscha_fc2, np.array(dyn.q_tot), sscha_structure, sscha_supercell) + dyn.dynmats = dynq + dyn.AdjustQStar() + + return dyn + + +# Get ForceTensor.Tensor3 from Phono3py object +def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + unitcell = get_sscha_structure_from_phonopy(tc.primitive) + supercell = get_sscha_structure_from_phonopy(tc.supercell) + uc_nat = unitcell.N_atoms + sc_nat = supercell.N_atoms + if(uc_nat in tc.fc3.shape[0:3]): + print('Compact forceconstants.') + tc.generate_displacements() + supercells = tc.supercells_with_displacements + tc.fc3 = force_constants_3rd_order + fcart_dummy = [] + for isup in range(len(supercells)): + fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) + tc.forces = fcart_dummy + disps, _ = get_displacements_and_forces_fc3(tc.dataset) + first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) + s2p_map = tc.primitive.s2p_map + p2s_map = tc.primitive.p2s_map + p2p_map = tc.primitive.p2p_map + s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") + for i in first_disp_atoms: + assert i in p2s_map + target_atoms = [i for i in p2s_map if i not in first_disp_atoms] + rotations = tc.symmetry.symmetry_operations["rotations"] + permutations = tc.symmetry.atomic_permutations + distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) + + supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() + supercell_structure = unitcell.generate_supercell(supercell_matrix) + atom_mapping = np.zeros(len(supercell.coords), dtype=int) + already_there = [False for x in range(len(supercell.coords))] + for iat in range(len(supercell.coords)): + found_atom = False + for jat in range(len(supercell.coords)): + if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and not already_there[jat]): + atom_mapping[iat] = jat + found_atom = True + already_there[jat] = True + break + elif(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and already_there[jat]): + raise RuntimeError('Already matched this atom!') + if(not found_atom): + print('Could not find ' + str(iat + 1) + ' atom in the structure!') + if(not np.all(already_there)): + raise RuntimeError('Did not match all atoms...') + tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) + aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) + for iat in range(sc_nat): + iat1 = atom_mapping[iat] + for jat in range(sc_nat): + jat1 = atom_mapping[jat] + for kat in range(sc_nat): + kat1 = atom_mapping[kat] + for i in range(3): + for j in range(3): + for k in range(3): + aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] + d3 = np.asfortranarray(aux_tensor) + if(apply_symmetries): + qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) + qe_sym.SetupFromSPGLIB() + qe_sym.ApplySymmetryToTensor3(d3) + d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV + tensor3.SetupFromTensor(d3) + np.save("d3_realspace_sym.npy", d3) + + print('Translated phonopy 3rd order force constants.') + return tensor3 + + +def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc != np.shape(red_vecs_SSCHA)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order = np.zeros(np.shape(red_vecs_SSCHA)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,3,3)) + for iuc in range(nuc): for iat in range(nat): - for ix in range(3): - if(vecs[iat][ix] < -1.0e-3): - vecs[iat][ix] += 1.0 - elif(vecs[iat][ix] > 0.999): - vecs[iat][ix] -= 1.0 - - vecs = np.round(vecs, 5) - rvec = vecs[0:nuc] - invcell = np.linalg.inv(phonon.primitive.cell) - ind_u = np.zeros_like(s2u) + for jat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**2 + +def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): + + if(not __PHONOPY): + raise RuntimeError('Phonopy and phono3py are needed for this routine!') + + SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) + red_vecs_SSCHA_1 = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) + red_vecs_SSCHA_2 = np.round(SSCHA_tensor.x_r_vector3.copy().astype(float), 4) + red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) + dims = np.diag(phonon.supercell_matrix) + nuc = np.prod(dims) + if(nuc**2 != np.shape(red_vecs_SSCHA_1)[1]): + print('Phonopy and SSCHA have different number of unit cells!') + print('Make sure you do not center() SSCHA tensor before attempting this conversion!') + raise RuntimeError('Non-conforming shapes of matrices!') + nat = len(phonon.primitive.positions) + s2u = phonon.supercell.s2u_map.copy() + primitive_cell_position = red_vecs_phonopy[s2u] + for iat in range(len(red_vecs_phonopy)): + red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] + for i in range(3): + if(red_vecs_phonopy[iat][i] >= dims[i]): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] + elif(red_vecs_phonopy[iat][i] < 0.0): + red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] + unit_cell_order_1 = np.zeros(np.shape(red_vecs_SSCHA_1)[1], dtype = int) + unit_cell_order_2 = np.zeros(np.shape(red_vecs_SSCHA_2)[1], dtype = int) + for iuc in range(np.shape(red_vecs_SSCHA_1)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_1[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_1[iuc] = iat + for iuc in range(np.shape(red_vecs_SSCHA_2)[1]): + for iat in range(nuc): + if(np.linalg.norm(red_vecs_SSCHA_2[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): + unit_cell_order_2[iuc] = iat + phonopy_tensor = np.zeros((nat,nuc*nat,nuc*nat,3,3,3)) + for iuc in range(nuc**2): for iat in range(nat): - found = False - lvec = vecs[iat] - vecs[s2u[iat]] - for ix in range(3): - if(lvec[ix] < -1.0e-3): - lvec[ix] += 1.0 - elif(lvec[ix] > 0.999): - lvec[ix] -= 1.0 - for iuc in range(nuc): - if(np.linalg.norm(lvec - rvec[iuc]) < 1.0e-4): - ind_u[iat] = iuc - found = True - break - if(not found): - print('Could not find the unit cell of atom: ', iat) - print(lvec) - sscha_fc2 = np.zeros((nuc, 3*nat_uc, 3*nat_uc)) - for iat in range(nat_uc): for jat in range(nat): - iuc = ind_u[jat] - sscha_fc2[iuc, 3*iat:3*(iat+1), 3*ind_s[jat]:3*(ind_s[jat] + 1)] = fc2[indices[iat]][jat] - rvec = np.dot(rvec, phonon.supercell.cell) - - return sscha_fc2, rvec - - # Generate CC.Structure from PhonopyAtoms - def get_sscha_structure_from_phonopy(phatoms): - - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - sscha_structure = Structure.Structure(nat = len(phatoms.positions)) - sscha_structure.coords = phatoms.positions - sscha_structure.N_atoms = len(phatoms.positions) - sscha_structure.atoms = phatoms.symbols - sscha_structure.unit_cell = phatoms.cell - sscha_structure.has_unit_cell = True - for iat in range(sscha_structure.N_atoms): - sscha_structure.masses[sscha_structure.atoms[iat]] = phatoms.masses[iat]/MASS_RY_TO_UMA - - return sscha_structure - - # Get Cellconstructor.Phonons from Phonopy object - def sscha_phonons_from_phonopy(phonon): - - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure - sscha_supercell = get_sscha_structure_from_phonopy(phonon.supercell) - - nat_uc = sscha_structure.N_atoms - nat_sc = sscha_supercell.N_atoms - - q_grid = symmetries.GetQGrid(sscha_structure.unit_cell, np.diag(phonon.supercell_matrix)) - gamma_index = np.argmin(np.sum(np.array(q_grid)**2, axis = 1)) - q_grid[gamma_index] = q_grid[0].copy() - q_grid[0] = np.zeros(3, dtype = np.double) - dyn = Phonons.Phonons(sscha_structure, len(q_grid)) - dyn.q_tot = q_grid - - if(len(phonon.force_constants) == nat_sc): - fc2 = phonon.force_constants.copy()/RY_TO_EV*BOHR_TO_ANGSTROM**2 - elif(len(phonon.force_constants) == nat_uc): - fc2 = compact_fc_to_full_fc(phonon, phonon.force_constants) - fc2 *= BOHR_TO_ANGSTROM**2/RY_TO_EV - else: - raise RuntimeError('Number of force constants does not match expected phonopy formats! ') - - sscha_fc2 = np.zeros( (3*nat_sc, 3*nat_sc), dtype = np.double) - for iat in range(nat_sc): - for jat in range(nat_sc): - sscha_fc2[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = fc2[iat, jat] - - dynq = Phonons.GetDynQFromFCSupercell(sscha_fc2, np.array(dyn.q_tot), sscha_structure, sscha_supercell) - dyn.dynmats = dynq - dyn.AdjustQStar() - - return dyn - - - # Get ForceTensor.Tensor3 from Phono3py object - def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): - - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - unitcell = get_sscha_structure_from_phonopy(tc.primitive) - supercell = get_sscha_structure_from_phonopy(tc.supercell) - uc_nat = unitcell.N_atoms - sc_nat = supercell.N_atoms - if(uc_nat in tc.fc3.shape[0:3]): - print('Compact forceconstants.') - tc.generate_displacements() - supercells = tc.supercells_with_displacements - tc.fc3 = force_constants_3rd_order - fcart_dummy = [] - for isup in range(len(supercells)): - fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) - tc.forces = fcart_dummy - disps, _ = get_displacements_and_forces_fc3(tc.dataset) - first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) - s2p_map = tc.primitive.s2p_map - p2s_map = tc.primitive.p2s_map - p2p_map = tc.primitive.p2p_map - s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") - for i in first_disp_atoms: - assert i in p2s_map - target_atoms = [i for i in p2s_map if i not in first_disp_atoms] - rotations = tc.symmetry.symmetry_operations["rotations"] - permutations = tc.symmetry.atomic_permutations - distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) - - supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() - supercell_structure = unitcell.generate_supercell(supercell_matrix) - atom_mapping = np.zeros(len(supercell.coords), dtype=int) - already_there = [False for x in range(len(supercell.coords))] - for iat in range(len(supercell.coords)): - found_atom = False - for jat in range(len(supercell.coords)): - if(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and not already_there[jat]): - atom_mapping[iat] = jat - found_atom = True - already_there[jat] = True - break - elif(np.linalg.norm(supercell.coords[iat] - supercell_structure.coords[jat]) < 1.0e-5 and already_there[jat]): - raise RuntimeError('Already matched this atom!') - if(not found_atom): - print('Could not find ' + str(iat + 1) + ' atom in the structure!') - if(not np.all(already_there)): - raise RuntimeError('Did not match all atoms...') - tensor3 = CC.ForceTensor.Tensor3(unitcell, supercell_structure, supercell_matrix) - aux_tensor = np.zeros((3*sc_nat, 3*sc_nat, 3*sc_nat)) - for iat in range(sc_nat): - iat1 = atom_mapping[iat] - for jat in range(sc_nat): - jat1 = atom_mapping[jat] - for kat in range(sc_nat): - kat1 = atom_mapping[kat] - for i in range(3): - for j in range(3): - for k in range(3): - aux_tensor[iat1*3+i, jat1*3+j, kat1*3+k] = tc.fc3[iat,jat,kat,i,j,k] - d3 = np.asfortranarray(aux_tensor) - if(apply_symmetries): - qe_sym = CC.symmetries.QE_Symmetry(supercell_structure) - qe_sym.SetupFromSPGLIB() - qe_sym.ApplySymmetryToTensor3(d3) - d3 *= BOHR_TO_ANGSTROM**3/RY_TO_EV - tensor3.SetupFromTensor(d3) - np.save("d3_realspace_sym.npy", d3) - - print('Translated phonopy 3rd order force constants.') - return tensor3 - - - def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): - - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) - red_vecs_SSCHA = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) - red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) - dims = np.diag(phonon.supercell_matrix) - nuc = np.prod(dims) - if(nuc != np.shape(red_vecs_SSCHA)[1]): - print('Phonopy and SSCHA have different number of unit cells!') - print('Make sure you do not center() SSCHA tensor before attempting this conversion!') - raise RuntimeError('Non-conforming shapes of matrices!') - nat = len(phonon.primitive.positions) - s2u = phonon.supercell.s2u_map.copy() - primitive_cell_position = red_vecs_phonopy[s2u] - for iat in range(len(red_vecs_phonopy)): - red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] - for i in range(3): - if(red_vecs_phonopy[iat][i] >= dims[i]): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] - elif(red_vecs_phonopy[iat][i] < 0.0): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] - unit_cell_order = np.zeros(np.shape(red_vecs_SSCHA)[1], dtype = int) - for iuc in range(np.shape(red_vecs_SSCHA)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order[iuc] = iat - phonopy_tensor = np.zeros((nat,nuc*nat,3,3)) - for iuc in range(nuc): - for iat in range(nat): - for jat in range(nat): - phonopy_tensor[iat][jat*nuc + unit_cell_order[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)] - return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**2 - - def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): - - if(not __PHONOPY): - raise RuntimeError('Phonopy and phono3py are needed for this routine!') - - SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) - red_vecs_SSCHA_1 = np.round(SSCHA_tensor.x_r_vector2.copy().astype(float), 4) - red_vecs_SSCHA_2 = np.round(SSCHA_tensor.x_r_vector3.copy().astype(float), 4) - red_vecs_phonopy = np.round(np.dot(phonon.supercell.positions, np.linalg.inv(phonon.primitive.cell)), 4) - dims = np.diag(phonon.supercell_matrix) - nuc = np.prod(dims) - if(nuc**2 != np.shape(red_vecs_SSCHA_1)[1]): - print('Phonopy and SSCHA have different number of unit cells!') - print('Make sure you do not center() SSCHA tensor before attempting this conversion!') - raise RuntimeError('Non-conforming shapes of matrices!') - nat = len(phonon.primitive.positions) - s2u = phonon.supercell.s2u_map.copy() - primitive_cell_position = red_vecs_phonopy[s2u] - for iat in range(len(red_vecs_phonopy)): - red_vecs_phonopy[iat] = red_vecs_phonopy[iat] - primitive_cell_position[iat] - for i in range(3): - if(red_vecs_phonopy[iat][i] >= dims[i]): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] - dims[i] - elif(red_vecs_phonopy[iat][i] < 0.0): - red_vecs_phonopy[iat][i] = red_vecs_phonopy[iat][i] + dims[i] - unit_cell_order_1 = np.zeros(np.shape(red_vecs_SSCHA_1)[1], dtype = int) - unit_cell_order_2 = np.zeros(np.shape(red_vecs_SSCHA_2)[1], dtype = int) - for iuc in range(np.shape(red_vecs_SSCHA_1)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA_1[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order_1[iuc] = iat - for iuc in range(np.shape(red_vecs_SSCHA_2)[1]): - for iat in range(nuc): - if(np.linalg.norm(red_vecs_SSCHA_2[:,iuc] - red_vecs_phonopy[iat]) < 1.0e-4): - unit_cell_order_2[iuc] = iat - phonopy_tensor = np.zeros((nat,nuc*nat,nuc*nat,3,3,3)) - for iuc in range(nuc**2): - for iat in range(nat): - for jat in range(nat): - for kat in range(nat): - phonopy_tensor[iat][jat*nuc + unit_cell_order_1[iuc]][kat*nuc + unit_cell_order_2[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1), 3*kat:3*(kat+1)] - return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**3 + for kat in range(nat): + phonopy_tensor[iat][jat*nuc + unit_cell_order_1[iuc]][kat*nuc + unit_cell_order_2[iuc]] = SSCHA_force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1), 3*kat:3*(kat+1)] + return phonopy_tensor*RY_TO_EV/BOHR_TO_ANGSTROM**3 From d191880fbc94661c72e92dcaaf3f1772aee21926 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 26 May 2023 08:22:44 +0200 Subject: [PATCH 143/204] import seekpath --- cellconstructor/ThermalConductivity.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 1d509b4e..1f20b0cc 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -29,7 +29,7 @@ __SEEKPATH=False try: - import phonopy + import seekpath __SEEKPATH=True except: __SEEKPATH=False @@ -1759,18 +1759,24 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, mode_mixing): ################################################################################################################################## - def get_heat_capacity(self, temperature): + def get_heat_capacity(self, temperature, shifted = False): """ Calculate phonon mode heat capacity at temperature. + shifted :: Boolean to tell us whether we shift frequencies by the real part of the self-energy! + """ cp_key = format(temperature, '.1f') + if(shifted): + freqs = self.freqs + self.freqs_shifts[cp_key] + else: + freqs = self.freqs.copy() cp = np.zeros_like(self.freqs) for ikpt in range(self.nkpt): for iband in range(self.nband): - cp[ikpt, iband] = heat_capacity(self.freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = self.cp_mode) + cp[ikpt, iband] = heat_capacity(freqs[ikpt, iband]*SSCHA_TO_THZ*1.0e12, temperature, HPLANCK, KB, cp_mode = self.cp_mode) self.cp[cp_key] = cp @@ -1794,7 +1800,10 @@ def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smea print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: print('Calculating phonon mode heat capacities for ' + format(temperature, '.1f') + ' K temperature!') - self.get_heat_capacity(temperature) + if(lf_method == 'SC'): + self.get_heat_capacity(temperature) + else: + self.get_heat_capacity(temperature) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) @@ -1836,7 +1845,10 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s if(cp_key in self.cp.keys()): print('Phonon mode heat capacities for this temperature have already been calculated. Continuing ...') else: - self.get_heat_capacity(temperature) + if(lf_method == 'SC'): + self.get_heat_capacity(temperature) + else: + self.get_heat_capacity(temperature) scatt_rates = np.divide(np.ones_like(self.lifetimes[lf_key], dtype=float), self.lifetimes[lf_key], out=np.zeros_like(self.lifetimes[lf_key]), where=self.lifetimes[lf_key]!=0.0)/(SSCHA_TO_THZ*1.0e12*2.0*np.pi) if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) From 74d0673e0047935783393983c2701612b438c820 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 5 Jun 2023 11:36:11 +0200 Subject: [PATCH 144/204] New sorting function in get_diag_dynamic_correction_along_path_multiprocessing for testing --- cellconstructor/Spectral.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 77f4ac19..ced27f94 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -2237,7 +2237,17 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, """ - + def output_file_sort_function(filename_sp, smear_cm, nsm): + for ism in range(nsm): + name = "{:6.2f}".format(smear_cm[ism]).strip() + filename_data = filename_sp+'_'+name+'.dat' + f = open(filename_data, 'rw') + data = np.loadtxt(f) + X = data[:,0] + Y = data[:,1] + data_out = [data[i] for i in np.lexsort((Y,X))] # <= Here is the sorting part + np.savetxt(f,data_out) + pass print(" ") print(" ===========================================" ) @@ -2409,6 +2419,7 @@ def get_diag_dynamic_correction_along_path_multiprocessing(dyn, tensor3, plwork.starmap(multiprocessing_work_diag_dynamic_correction_along_path,parameters) plwork.close() #remember to close all your pools or they keep using memory/space. plwork.join() + output_file_sort_function(filename_sp, smear_cm, nsm) def multiprocessing_work_diag_dynamic_correction_along_path(iq,q,tensor2,tensor3,k_grid, smear_id, smear_id_cm, smear, smear_cm, energies, From fbb14ef5fe1a81985d617dca3e96143fbab3f429 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 5 Jun 2023 12:53:46 +0200 Subject: [PATCH 145/204] Fix sorting data --- cellconstructor/Spectral.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ced27f94..2a3d9b78 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -2241,12 +2241,27 @@ def output_file_sort_function(filename_sp, smear_cm, nsm): for ism in range(nsm): name = "{:6.2f}".format(smear_cm[ism]).strip() filename_data = filename_sp+'_'+name+'.dat' - f = open(filename_data, 'rw') + f = open(filename_data, 'r') + head1 = f.readline() + head2 = f.readline() + head3 = f.readline() data = np.loadtxt(f) - X = data[:,0] - Y = data[:,1] - data_out = [data[i] for i in np.lexsort((Y,X))] # <= Here is the sorting part - np.savetxt(f,data_out) + f.close() + head = head1+head2+head3 + # X = data[:,0] + # Y = data[:,1] + # Z = data[:,2] + # x = [X[i] for i in np.lexsort((Y,X))] + # y = [Y[i] for i in np.lexsort((Y,X))] + # z = [Z[i] for i in np.lexsort((Y,X))] + # f = open('plot_energies_'+filename_data, 'w') + # np.savetxt(f,np.c_[x,y,z]) + # f.close() + data = data[data[:,2].argsort()] # First sort doesn't need to be stable. + data = data[data[:,1].argsort(kind='mergesort')] + data = data[data[:,0].argsort(kind='mergesort')] + f = open("Sorted_"+filename_data, 'w') + np.savetxt(f,data, header=head) pass print(" ") From 47c9d5ab73f2dfe6468078af345a28590d7d0adf Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 5 Jun 2023 13:05:15 +0200 Subject: [PATCH 146/204] Fix header --- cellconstructor/Spectral.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 2a3d9b78..28068be0 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -2247,7 +2247,7 @@ def output_file_sort_function(filename_sp, smear_cm, nsm): head3 = f.readline() data = np.loadtxt(f) f.close() - head = head1+head2+head3 + head = head1[1:]+head2[1:]+head3[1:] # X = data[:,0] # Y = data[:,1] # Z = data[:,2] @@ -2261,7 +2261,7 @@ def output_file_sort_function(filename_sp, smear_cm, nsm): data = data[data[:,1].argsort(kind='mergesort')] data = data[data[:,0].argsort(kind='mergesort')] f = open("Sorted_"+filename_data, 'w') - np.savetxt(f,data, header=head) + np.savetxt(f,data, header=head[:-1]) pass print(" ") From f6810158d600e723a7709d22020523487e773656 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 6 Jun 2023 08:25:48 +0200 Subject: [PATCH 147/204] Added sorting function also in get_full_dynamic_correction_along_path_multiprocessing() --- cellconstructor/Spectral.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 28068be0..5aaefd33 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1119,6 +1119,33 @@ def get_full_dynamic_correction_along_path_multiprocessing(dyn, If 'None' then the number returned by os.cpu_count() is used. (default: None) """ + def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): + for ism in range(nsm): + name = "{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + # + filename_data = filename_sp+'_'+name+'.dat' + f = open(filename_data, 'r') + head1 = f.readline() + head2 = f.readline() + head3 = f.readline() + data = np.loadtxt(f) + f.close() + head = head1[1:]+head2[1:]+head3[1:] + # X = data[:,0] + # Y = data[:,1] + # Z = data[:,2] + # x = [X[i] for i in np.lexsort((Y,X))] + # y = [Y[i] for i in np.lexsort((Y,X))] + # z = [Z[i] for i in np.lexsort((Y,X))] + # f = open('plot_energies_'+filename_data, 'w') + # np.savetxt(f,np.c_[x,y,z]) + # f.close() + data = data[data[:,2].argsort()] # First sort doesn't need to be stable. + data = data[data[:,1].argsort(kind='mergesort')] + data = data[data[:,0].argsort(kind='mergesort')] + f = open("Sorted_"+filename_data, 'w') + np.savetxt(f,data, header=head[:-1]) + pass print(" ") print(" ===========================================" ) @@ -1249,6 +1276,8 @@ def get_full_dynamic_correction_along_path_multiprocessing(dyn, print(" ") print(" Results printed in "+filename_sp+'_[id_smear]_[smear].dat') print(" ") + output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3,k_grid,smear_id, smear, energies, energies_cm, T,static_limit, notransl , diag_approx,nsm,smear_id_cm,smear_cm,filename_sp , From 305393be9b3ec8fd1838928d9279c5ed849b2160 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Tue, 6 Jun 2023 12:18:57 +0200 Subject: [PATCH 148/204] New version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 62176aa3..70fae3c6 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ setup( name = "CellConstructor", - version = "1.2.2", + version = "1.3", description = "Python utilities that is interfaced with ASE for atomic crystal analysis", author = "Lorenzo Monacelli", url = "https://github.com/mesonepigreco/CellConstructor", From 8842c0bd1b7f327f6fd272b28f98e37a3e9d5853 Mon Sep 17 00:00:00 2001 From: rafbianco Date: Sat, 10 Jun 2023 16:02:47 +0200 Subject: [PATCH 149/204] Changes in initialization Tensor3 and some spectral routines --- cellconstructor/ForceTensor.py | 8 +- cellconstructor/Spectral.py | 500 +++++++++++++++++++++++++++++++-- 2 files changed, 488 insertions(+), 20 deletions(-) diff --git a/cellconstructor/ForceTensor.py b/cellconstructor/ForceTensor.py index 260ab596..97f9aea9 100644 --- a/cellconstructor/ForceTensor.py +++ b/cellconstructor/ForceTensor.py @@ -1127,9 +1127,15 @@ class Tensor3(): This class defines the 3rank tensors, like 3rd force constants. """ - def __init__(self, unitcell_structure, supercell_structure, supercell_size): + def __init__(self, unitcell_structure=None, supercell_structure=None, supercell_size=None,dyn=None): #GenericTensor.__init__(self, *args, **kwargs) + if dyn != None: + unitcell_structure=dyn.structure + supercell_size=dyn.GetSupercell() + supercell_structure=dyn.structure.generate_supercell(supercell_size) + + n_sup = np.prod(supercell_size) nat = unitcell_structure.N_atoms diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 99493a88..8a4dada4 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -603,8 +603,8 @@ def get_full_dynamic_correction_along_path(dyn, tensor3, k_grid, e1, de, e0, - sm1, sm0, - sm1_id, sm0_id, + sm1=1.0, sm0=1.0, + sm1_id=None, sm0_id=None, nsm=1, T=0, q_path=[0.0,0.0,0.0], @@ -681,7 +681,7 @@ def get_full_dynamic_correction_along_path(dyn, corresponding function) (default : False) filename_sp : string - filename_sp_[id_smear]_[smear].dat + filename_sp_[smear].dat is the file where the result is written. Format: length of the path (in 2pi/Alat), energy (cm-1),spectral function (1/cm-1) @@ -708,6 +708,13 @@ def get_full_dynamic_correction_along_path(dyn, print(" ") print(" - The static limit is considered - ") print(" ") + else: + print(" ") + print(" Smearing values: ") + print(" ") + for sm in np.linspace(sm0,sm1,nsm): + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") if diag_approx : print(" ") print(" - The off-diagonal terms of the self-energy are discarded - ") @@ -756,7 +763,12 @@ def get_full_dynamic_correction_along_path(dyn, # energy in input is in cm-1 # smearing in input is in cm-1 # converto to Ry - + if sm1_id != None and sm0_id != None: + for sm in np.linspace(sm0_id,sm1_id,nsm): + print(" sm_id= {:>6.2f} cm-1".format(sm)) + else: + sm1_id=de*2.0 + sm0_id=de*2.0 # list of energies energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM ne=energies.shape[0] @@ -785,33 +797,57 @@ def get_full_dynamic_correction_along_path(dyn, # ================================================================================== - + # # print the result - for ism in range(nsm): - # - name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + # + if static_limit : # - filename_new=filename_sp+'_'+name+'.dat' + filename_new=filename_sp+'_static.dat' if iq == 0: with open(filename_new,'w') as f: f.write(" # ------------------------------------------------------------- \n") f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") f.write(" # ------------------------------------------------------------- \n") for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,0])) f.write("\n") else: with open(filename_new,'a') as f: for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) - f.write("\n") - - - - print(" ") - print(" Results printed in "+filename_sp+'_[id_smear]_[smear].dat') - print(" ") + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,0])) + f.write("\n") + # + else: + # + for ism in range(nsm): + # + #name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + name="{:6.1f}".format(smear_cm[ism]).strip() + # + filename_new=filename_sp+'_'+name+'.dat' + if iq == 0: + with open(filename_new,'w') as f: + f.write(" # ------------------------------------------------------------- \n") + f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") + f.write(" # ------------------------------------------------------------- \n") + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + + if static_limit : + print(" ") + print(" Results printed in "+filename_sp+'_static.dat') + print(" ") + else: + print(" ") + print(" Results printed in "+filename_sp+'_[smear].dat') + print(" ") @@ -952,7 +988,7 @@ def compute_k(k): # divide by the N_k factor d_bubble_mod /= len(k_points) # (ne,nsmear,n_mod) # - np.savetxt("db_new",d_bubble_mod[:,-1,-1]) + # np.savetxt("db_new",d_bubble_mod[:,-1,-1]) # spectralf=thirdorder.third_order_bubble.compute_spectralf_diag(smear_id,energies,w_q, d_bubble_mod, @@ -1731,8 +1767,11 @@ def compute_k(k): nsm=smear.shape[0] n_mod=3*structure.N_atoms + # Fortran duty ==== + selfnrg = np.zeros ( (n_mod,nsm ), dtype= np.complex128, order="F") + selfnrg = thirdorder.third_order_bubble.compute_perturb_selfnrg(smear,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), @@ -1982,3 +2021,426 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") + + + + # ===== ONE-SHOT & PERTURBATIVE CORRECTION TO SSCHA FREQUENCY (SHIFT and LINEWIDTH) ===================== + + +def get_os_perturb_dynamic_selfnrg(tensor2, tensor3, + k_grid, q, + smear, + T, + verbose= False): + + structure = tensor2.unitcell_structure + + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + + + # Get the phi2 in q + phi2_q = tensor2.Interpolate(q, asr = False) + + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # + d2_q = phi2_q * mm_inv_mat + + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + + if is_q_gamma: + w2_q[0:3]=0.0 + if not (w2_q >= 0.0).all(): + print('q= ',q, ' (2pi/A)') + print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_q=np.sqrt(w2_q) + + def compute_k(k): + # phi3 in q, k, -q - k + t1 = time.time() + phi3=tensor3.Interpolate(k,-q-k, asr = False) + t2 = time.time() + # phi2 in k + phi2_k = tensor2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) + + t3 = time.time() + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + + # d3 in mode components + # d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + + t4 = time.time() + + + nsm=smear.shape[0] + n_mod=3*structure.N_atoms + + # Fortran duty ==== + + selfnrg = np.zeros ( (n_mod,nsm ), dtype= np.complex128, order="F") + + selfnrg = thirdorder.third_order_bubble.compute_perturb_selfnrg(smear,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,nsm,n_mod) + + t5 = time.time() + + if verbose: + print("Time to interpolate the third order: {} s".format(t2 - t1)) + print("Time to interpolate the second order: {} s".format(t3 - t2)) + print("Time to transform the tensors: {} s".format(t4 - t3)) + print("Time to compute the bubble: {} s".format(t5 - t4)) + + return selfnrg + + CC.Settings.SetupParallel() + + selfnrg =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + + # divide by the N_k factor + selfnrg /= len(k_points) # (n_mod,nsigma) + + w_q_ext=w_q[...,None] + w2_q_ext=w2_q[...,None] + + z_os=np.sqrt(selfnrg + w2_q_ext) # (A20) PHYSICAL REVIEW B 97, 214101 (2018) + shift_os=z_os.real-w_q_ext + hwhm_os=-z_os.imag + + z_pert=np.divide(selfnrg, 2*w_q_ext, out=np.zeros_like(selfnrg), where=w_q_ext!=0) # -w_q_ext + shift_pert=z_pert.real + hwhm_pert=-z_pert.imag + + return w_q, shift_pert, hwhm_pert, shift_os, hwhm_os + + + +def get_os_perturb_dynamic_correction_along_path(dyn, tensor3, + k_grid, + sm1, sm0, + nsm=1, + q_path=[0.0,0.0,0.0], + q_path_file=None, + print_path = True, + T=0, + filename_shift_lw = 'v2_freq_shift_hwhm', + filename_freq_dyn = 'freq_dynamic', + d3_scale_factor=None, + tensor2= None): + + + """ + The frequency shift (with respect to the SSCHA frequency) and linewidth are computed with + the one-shot and the perturbative formula with respect to the SSCHA frequency. + + Parameters + ---------- + + dyn : Phonons() + The harmonic / SSCHA dynamical matrix + tensor3 : Tensor3() + The third order force constant matrix + k_grid : list(len = 3) + The integration grid on the Brillouin zone + sm0, sm1 : float + Minimum and maximum value of the smearing (cm-1) to compute the self-energy + + Optional + -------- + + nsm : integer + Number of smearings to consider + (default = 1) + T : float + The temperature + (default: 0 K) + q_path : list of triplets + Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, + where the caculation is performed + (defualt: [0.0,0.0,0.0]) + q_path_file : string + Name of the file where the q_path can be read. + Format: column of triples, q points in 2pi/Angstrom + If the name of the file is present, it has the + priority over the q_path value + (default: None) + print_path : logical + If True (and the path is composed of more then one q-point), + a file 'path_len.dat' is printed. + Format: column of 4 values, coordinates of + the q-point and path length (in 2pi/Angstrom) . + (default: True) + filename_shift_lw : string + filename_shift_lw_[id_smear]_[smear].dat + is the file where + len (2pi/Angstrom), SSCHA freq (cm-1), shift (cm-1) , HWHM (cm-1) + are printed. + (default: "v2_freq_shit_hwhm") + filename_freq_dyn : string + filename_freq_dyn_[id_smear]_[smear].dat + is the file where + len (2pi/Angstrom), freq (cm-1) (sorted in ascending order), HWHM (cm-1) + are printed. + (default: "freq_dynamic") + d3_scale_factor : float + If present, the 3rd order FC is multiplied by this factor + (e.g. it can be used to make tests about the perturbative limit) + (default: None) + tensor2 : ndarray( size = (3*nat, 3*nat), dtype = np.float) + If present, this 2nd order FC overwrites the one + obtained from dyn. + (default: None) + + """ + + + + print(" ") + print(" ===========================================" ) + print(" Bubble perturbative dynamic correction " ) + print(" ===========================================" ) + print(" ") + print(" T= {:>5.1f} K".format(T)) + print(" k grid= {} x {} x {} ".format(*tuple(k_grid))) + print(" ") + print(" Smearing values: ") + print(" ") + for sm in np.linspace(sm0,sm1,nsm): + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") + print(" ===========================================" ) + print(" " ) + + if ( tensor2 == None ): + + # Prepare the tensor2 + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + + # Scale the FC3 =========================================================================== + if d3_scale_factor != None : + print(" ") + print("d3 scaling : d3 -> d3 x {:>7.3f}".format(d3_scale_factor)) + print(" ") + tensor3.tensor=tensor3.tensor*d3_scale_factor + # ================================== q-PATH =============================================== + if q_path_file == None: + q_path=np.array(q_path) + else: + print(" ") + print(" q_path read from "+q_path_file) + print(" ") + q_path=np.loadtxt(q_path_file) + if len(q_path.shape) == 1 : q_path=np.expand_dims(q_path,axis=0) + # Get the length of the q path + x_length = np.zeros(len(q_path)) + q_tot = np.sqrt(np.sum(np.diff(np.array(q_path), axis = 0)**2, axis = 1)) + x_length[1:] = q_tot + x_length=np.cumsum(x_length) + x_length_exp=np.expand_dims(x_length,axis=0) + # print the path q-points and length + if print_path and (q_path.shape[0] > 1) : + fmt_txt=['%11.7f\t','%11.7f\t','%11.7f\t\t','%10.6f\t'] + result=np.hstack((q_path,x_length_exp.T)) + np.savetxt('path_len.dat',result,fmt=fmt_txt) + print(" ") + print(" Path printed in path_len.dat ") + print(" ") + # ======================= Smearing ========================================== + # smearing in input is in cm-1 + # converto to Ry + # list of smearing + # + if nsm == 1 : + sm1=sm0 + smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM + # ======================== Calculation ========================================== + n_mod=3*dyn.structure.N_atoms + shift_pert = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear + hwhm_pert = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear + shift_os = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear + hwhm_os = np.zeros( ( n_mod, nsm), dtype = np.float64 ) # q-point,mode,smear + wq = np.zeros( ( n_mod), dtype = np.float64 ) # q-point,mode + # + smear_cm = smear * CC.Units.RY_TO_CM + + for iq, q in enumerate(q_path): + wq[:],shift_pert[:,:], hwhm_pert[:,:],shift_os[:,:], hwhm_os[:,:] = get_os_perturb_dynamic_selfnrg(tensor2, + tensor3, + k_grid, + np.array(q), + smear, T, + verbose=False ) + + # print results + wq*=CC.Units.RY_TO_CM + shift_os*=CC.Units.RY_TO_CM + hwhm_os*=CC.Units.RY_TO_CM + shift_pert*=CC.Units.RY_TO_CM + hwhm_pert*=CC.Units.RY_TO_CM + # + #==================== SORTING =============================== + wq_os_shifted=wq[...,None]+shift_os + sortidx_os=np.argsort(wq_os_shifted,axis=0) + wq_os_shifted_sorted=np.take_along_axis(wq_os_shifted, sortidx_os, 0) + hwhm_os_sorted=np.take_along_axis(hwhm_os, sortidx_os, 0) + + wq_pert_shifted=wq[...,None]+shift_pert + sortidx_pert=np.argsort(wq_pert_shifted,axis=0) + wq_pert_shifted_sorted=np.take_along_axis(wq_pert_shifted, sortidx_pert, 0) + hwhm_pert_sorted=np.take_along_axis(hwhm_pert, sortidx_pert, 0) + #=============== Print Results =============================== + # one shot + # + for ism in range(nsm): + # + name="{:6.2f}".format(smear_cm[ism]).strip() + # + # v2 freq, corresponding shift & hwhm + # + filename_new=filename_shift_lw+'_'+name+'.os.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# --------------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), sscha freq (cm-1), freq shift (cm-1), hwhm (cm-1) \n") + f.write("# --------------------------------------------------------------------- \n") + out=np.concatenate((wq[:],shift_os[:,ism], + hwhm_os[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq[:],shift_os[:,ism], + hwhm_os[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + # + name="{:6.1f}".format(smear_cm[ism]).strip() + # + # shifted freq sorted, corresponding hwhm + # + filename_new=filename_freq_dyn+'_'+name+'.os.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), sscha+shift freq (sorted) (cm-1), hwhm (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") + out=np.concatenate((wq_os_shifted_sorted[:,ism], + hwhm_os_sorted[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq_os_shifted_sorted[:,ism], + hwhm_os_sorted[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + # + # perturb + # + for ism in range(nsm): + # + name="{:6.2f}".format(smear_cm[ism]).strip() + # + # v2 freq, corresponding shift & hwhm + # + filename_new=filename_shift_lw+'_'+name+'.pert.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(3*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# --------------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), sscha freq (cm-1), freq shift (cm-1), hwhm (cm-1) \n") + f.write("# --------------------------------------------------------------------- \n") + out=np.concatenate((wq[:],shift_pert[:,ism], + hwhm_pert[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq[:],shift_pert[:,ism], + hwhm_pert[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + # + name="{:6.1f}".format(smear_cm[ism]).strip() + # + # shifted freq sorted, corresponding hwhm + # + filename_new=filename_freq_dyn+'_'+name+'.pert.dat' + fmt="{:>10.6f}\t"+"\t{:>11.7f}"*(2*n_mod)+"\n" + if iq == 0: + with open(filename_new,'w') as f: + f.write("# ----------------------------------------------------------------- \n") + f.write("# len (2pi/Angstrom), sscha+shift freq (sorted) (cm-1), hwhm (cm-1) \n") + f.write("# ----------------------------------------------------------------- \n") + out=np.concatenate((wq_pert_shifted_sorted[:,ism], + hwhm_pert_sorted[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + else: + with open(filename_new,'a') as f: + out=np.concatenate((wq_pert_shifted_sorted[:,ism], + hwhm_pert_sorted[:,ism])) + f.write(fmt.format(x_length[iq],*out)) + + + + + print(" ") + print(" Results printed in "+filename_shift_lw+'_'+'[smear].os/pert.dat') + print(" ") + print(" ") + print(" Results printed in "+filename_freq_dyn+'_'+'[smear].os/pert.dat') + print(" ") + + + + + + + + From b43a8785cf5eda3463f2018071e8dc623479bce6 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 5 Jul 2023 11:55:54 +0200 Subject: [PATCH 150/204] Added the possibility to return also the phonons in q space from DiagonalizeSupercell --- cellconstructor/Phonons.py | 44 +- setup.py | 2 +- tests/TestStrainConfiguration/strained_dyn | 1432 ++++++++--------- .../test_diagonalize_supercell_q.py | 49 + 4 files changed, 803 insertions(+), 724 deletions(-) create mode 100644 tests/TestSupercellDiagonalizeQ/test_diagonalize_supercell_q.py diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 95555c47..46606b49 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -3489,12 +3489,14 @@ def ForceSymmetries(self, symmetries, irt = None, apply_sum_rule = True): if apply_sum_rule: self.ApplySumRule() - def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): + def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmodes = False): r""" DYAGONALIZE THE DYNAMICAL MATRIX IN THE SUPERCELL ================================================= - This method dyagonalizes the dynamical matrix using the supercell approach. + This method dyagonalizes the dynamical matrix in q space + and returns the frequencies and the polarization vectors in the supercell, + without having to generate the force constant in real space. In this way we simply generate the polarization vector in the supercell using those in the unit cell. @@ -3511,16 +3513,22 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): Parameters ---------- - lo_to_split : string or ndarray + - lo_to_split : string or ndarray Could be a string with random, or a ndarray indicating the direction on which the LO-TO splitting is computed. If None it is neglected. If LO-TO is specified but no effective charges are present, then a warning is print and it is ignored. + - return_qmodes : bool + If true, frequencies and polarizations in q space are returned. Results ------- - w_mu : ndarray( size = (n_modes), dtype = np.double) + - w_mu : ndarray( size = (n_modes), dtype = np.double) Frequencies in the supercell - e_mu : ndarray( size = (3*Nat_sc, n_modes), dtype = np.double, order = "F") + - e_mu : ndarray( size = (3*Nat_sc, n_modes), dtype = np.double, order = "F") Polarization vectors in the supercell + - w_q : ndarray( size = (3*Nat, nq), dtype = np.double, order = "F") + Frequencies in the q space (only if return_qmodes is True) + - e_q : ndarray( size = (3*Nat, 3*Nat, nq), dtype = np.complex128, order = "F") + Polarization vectors in the q space (only if return_qmodes is True) """ supercell_size = len(self.q_tot) @@ -3532,6 +3540,11 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): w_array = np.zeros( nmodes, dtype = np.double) e_pols_sc = np.zeros( (nmodes, nmodes), dtype = np.double, order = "F") + nq = len(self.q_tot) + w_q = np.zeros((3*nat, nq), dtype = np.double, order = "F") + pols_q = np.zeros((3*nat, 3*nat, nq), dtype = np.complex128, order = "F") + + # Get the structure in the supercell super_structure = self.structure.generate_supercell(self.GetSupercell()) @@ -3562,6 +3575,13 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): break if skip_this_q: + # Check if we must return anyway the polarization in q space + if return_qmodes: + # TODO: We could replace this by exploiting the symmetries + wq, eq = self.DyagDinQ(iq) + + w_q[:, iq] = wq + pols_q[:, :, iq] = eq continue @@ -3601,6 +3621,10 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): # Diagonalize the matrix in the given q point wq, eq = self.DyagDinQ(iq) + # Store the frequencies and the polarization vectors + w_q[:, iq] = wq + pols_q[:, :, iq] = eq + # Iterate over the frequencies of the given q point nm_q = i_mu for i_qnu, w_qnu in enumerate(wq): @@ -3740,6 +3764,8 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None): # Get the check for the polarization vector normalization assert np.max(np.abs(np.einsum("ab, ab->b", e_pols_sc, e_pols_sc) - 1)) < __EPSILON__ + if return_qmodes: + return w_array, e_pols_sc, w_q, pols_q return w_array, e_pols_sc @@ -4426,7 +4452,7 @@ def get_dyn_from_ase_phonons(ase_ph, adjust_qstar = True): def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0.05, supercell = (1,1,1), progress = -1, progress_bar = False, - use_symmetries = True): + use_symmetries = True, debug=False): """ COMPUTE THE FORCE CONSTANT MATRIX ================================= @@ -4459,7 +4485,7 @@ def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0. if not __SPGLIB__: raise ImportError("SPGLIB is not installed. Cannot use symmetries. Rerun this subroutine with use_symmetries = False") return compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon, - supercell, progress, progress_bar) + supercell, progress, progress_bar, debug=debug) super_structure = structure.generate_supercell(supercell) final_dyn = Phonons(super_structure) @@ -4665,6 +4691,10 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= generators, list_of_calculations, displacements = symmetries.get_force_constants_generators(symm, irts, super_structure) print("Number of symmetry inequivalent displacements:", len(list_of_calculations)) + if debug: + print("Saving the generators and displacements") + np.save("generators.npy", generators) + np.save("displacements.npy", displacements) assert len(displacements) == nat3, "The number of displacements is not correct. Something went wrong." diff --git a/setup.py b/setup.py index 27e491b8..e564478f 100644 --- a/setup.py +++ b/setup.py @@ -72,7 +72,7 @@ setup( name = "CellConstructor", - version = "1.3", + version = "1.3.2", description = "Python utilities that is interfaced with ASE for atomic crystal analysis", author = "Lorenzo Monacelli", url = "https://github.com/mesonepigreco/CellConstructor", diff --git a/tests/TestStrainConfiguration/strained_dyn b/tests/TestStrainConfiguration/strained_dyn index 7236f701..12643f9c 100644 --- a/tests/TestStrainConfiguration/strained_dyn +++ b/tests/TestStrainConfiguration/strained_dyn @@ -8,682 +8,682 @@ Basis vectors 1 'O ' 14582.1964298742277606 2 'H ' 918.8360549359653078 1 1 0.5839302648000000 0.3319937777999998 0.1132488480000000 - 2 2 0.5839302648000000 0.3320150535600000 0.3843247011600000 + 2 2 0.5839302648000000 0.3320150535599999 0.3843247011600000 3 2 0.5839302648000000 0.0732959209200000 0.0332384636400000 - 4 1 1.1678605296000000 0.6712271367599999 1.7829483982799998 - 5 2 1.3852049017199992 0.5385565359600000 1.8752979972000001 - 6 2 0.9505161586799996 0.5385565359600000 1.8752979972000001 - 7 1 1.1678605296000000 0.6823894577999998 1.0673640780000000 - 8 2 1.1678605296000000 0.6823681820400000 1.3384399323599998 - 9 2 1.1678605296000000 0.9410873158799999 0.9873536936399999 + 4 1 1.1678605296000000 0.6712271367599996 1.7829483982799998 + 5 2 1.3852049017199992 0.5385565359599997 1.8752979972000001 + 6 2 0.9505161586799996 0.5385565359599997 1.8752979972000001 + 7 1 1.1678605296000000 0.6823894577999996 1.0673640780000000 + 8 2 1.1678605296000000 0.6823681820399999 1.3384399323599998 + 9 2 1.1678605296000000 0.9410873158799996 0.9873536936399999 10 1 0.5839302648000000 0.3431560988400000 0.8288331670799999 - 11 2 0.3665858938799999 0.4758266996400000 0.9211827659999999 - 12 2 0.8012746369199997 0.4758266996400000 0.9211827659999999 + 11 2 0.3665858938799999 0.4758266996399999 0.9211827659999999 + 12 2 0.8012746369199997 0.4758266996399998 0.9211827659999999 Dynamical Matrix in cartesian axes q = ( 0.000000000000 0.000000000000 0.000000000000 ) 1 1 - 0.0723775009917351 0.0000000000000000 -0.0000000000000008 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000008 0.0000000000000000 0.3831399905936649 0.0000000000000000 0.0800072256509703 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0800072256509703 0.0000000000000000 0.4293434337307701 0.0000000000000000 + 0.0723775009917356 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.3831399905936694 0.0000000000000000 0.0800072256509200 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0800072256509200 0.0000000000000000 0.4293434337307446 0.0000000000000000 1 2 - -0.0251057439413774 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0569567699834649 0.0000000000000000 -0.0058150573712052 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0222771411146661 0.0000000000000000 -0.2988598772526016 0.0000000000000000 + -0.0251057439413777 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0569567699834668 0.0000000000000000 -0.0058150573711577 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0222771411146697 0.0000000000000000 -0.2988598772525921 0.0000000000000000 1 3 - -0.0289738345959177 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.2820802915433080 0.0000000000000000 -0.0527306161696256 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0884826303559630 0.0000000000000000 -0.0739447334126226 0.0000000000000000 + -0.0289738345959179 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.2820802915433134 0.0000000000000000 -0.0527306161696257 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0884826303559192 0.0000000000000000 -0.0739447334126139 0.0000000000000000 1 4 - -0.0373686571560693 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000009 0.0000000000000000 - 0.0000000000000021 0.0000000000000000 -0.0336428001201841 0.0000000000000000 -0.0041894809945804 0.0000000000000000 - -0.0000000000000010 0.0000000000000000 -0.0044397818519427 0.0000000000000000 0.0041303780996414 0.0000000000000000 + -0.0373686571560659 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000152 0.0000000000000000 -0.0336428001201928 0.0000000000000000 -0.0041894809945713 0.0000000000000000 + -0.0000000000000070 0.0000000000000000 -0.0044397818519615 0.0000000000000000 0.0041303780996570 0.0000000000000000 1 5 - 0.0079739154089248 0.0000000000000000 -0.0168418597307702 0.0000000000000000 0.0106690755761874 0.0000000000000000 - -0.0100652146645693 0.0000000000000000 -0.0099918936929170 0.0000000000000000 -0.0069122209428968 0.0000000000000000 - -0.0036706343437315 0.0000000000000000 -0.0005259246072791 0.0000000000000000 -0.0156150191112110 0.0000000000000000 + 0.0079739154089234 0.0000000000000000 -0.0168418597307695 0.0000000000000000 0.0106690755761874 0.0000000000000000 + -0.0100652146645655 0.0000000000000000 -0.0099918936929158 0.0000000000000000 -0.0069122209428976 0.0000000000000000 + -0.0036706343437460 0.0000000000000000 -0.0005259246072714 0.0000000000000000 -0.0156150191112155 0.0000000000000000 1 6 - 0.0079739154089253 0.0000000000000000 0.0168418597307707 0.0000000000000000 -0.0106690755761879 0.0000000000000000 - 0.0100652146645669 0.0000000000000000 -0.0099918936929185 0.0000000000000000 -0.0069122209428961 0.0000000000000000 - 0.0036706343437324 0.0000000000000000 -0.0005259246072785 0.0000000000000000 -0.0156150191112113 0.0000000000000000 + 0.0079739154089238 0.0000000000000000 0.0168418597307698 0.0000000000000000 -0.0106690755761872 0.0000000000000000 + 0.0100652146645789 0.0000000000000000 -0.0099918936929075 0.0000000000000000 -0.0069122209429028 0.0000000000000000 + 0.0036706343437522 0.0000000000000000 -0.0005259246072676 0.0000000000000000 -0.0156150191112181 0.0000000000000000 1 7 - 0.0015706027157737 0.0000000000000000 -0.0000000000000006 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0058994142114997 0.0000000000000000 0.0129555088579669 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0129555088579112 0.0000000000000000 -0.0025061456783193 0.0000000000000000 + 0.0015706027157737 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000005 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0058994142115028 0.0000000000000000 0.0129555088579155 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 -0.0129555088579612 0.0000000000000000 -0.0025061456783189 0.0000000000000000 1 8 - -0.0018152750012303 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0012476417535538 0.0000000000000000 -0.0078942408876043 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0002039213450295 0.0000000000000000 0.0145769254785530 0.0000000000000000 + -0.0018152750012301 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000007 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0012476417535547 0.0000000000000000 -0.0078942408875553 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0002039213450273 0.0000000000000000 0.0145769254785678 0.0000000000000000 1 9 - -0.0016399265604471 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0035091911501694 0.0000000000000000 -0.0021722504817081 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0074822204968448 0.0000000000000000 0.0003426041600733 0.0000000000000000 + -0.0016399265604470 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.0035091911501685 0.0000000000000000 -0.0021722504817085 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0074822204968905 0.0000000000000000 0.0003426041600605 0.0000000000000000 1 10 - 0.0078082955673487 0.0000000000000000 -0.0000000000000007 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - -0.0000000000000009 0.0000000000000000 0.0119074076296486 0.0000000000000000 -0.0034942738523640 0.0000000000000000 - 0.0000000000000013 0.0000000000000000 0.0044778895271588 0.0000000000000000 -0.0367974389513956 0.0000000000000000 + 0.0078082955673492 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000008 0.0000000000000000 + -0.0000000000000098 0.0000000000000000 0.0119074076296619 0.0000000000000000 -0.0034942738523529 0.0000000000000000 + 0.0000000000000062 0.0000000000000000 0.0044778895271254 0.0000000000000000 -0.0367974389514191 0.0000000000000000 1 11 - -0.0014003952261876 0.0000000000000000 0.0002449744821631 0.0000000000000000 -0.0015206472447120 0.0000000000000000 - -0.0091891495399408 0.0000000000000000 -0.0030108060126835 0.0000000000000000 -0.0014211831836429 0.0000000000000000 - -0.0007217572183677 0.0000000000000000 -0.0035553985811712 0.0000000000000000 -0.0025275585661434 0.0000000000000000 + -0.0014003952261865 0.0000000000000000 0.0002449744821627 0.0000000000000000 -0.0015206472447127 0.0000000000000000 + -0.0091891495399320 0.0000000000000000 -0.0030108060126923 0.0000000000000000 -0.0014211831836486 0.0000000000000000 + -0.0007217572183904 0.0000000000000000 -0.0035553985811520 0.0000000000000000 -0.0025275585661311 0.0000000000000000 1 12 - -0.0014003952261865 0.0000000000000000 -0.0002449744821626 0.0000000000000000 0.0015206472447127 0.0000000000000000 - 0.0091891495399413 0.0000000000000000 -0.0030108060126830 0.0000000000000000 -0.0014211831836424 0.0000000000000000 - 0.0007217572183663 0.0000000000000000 -0.0035553985811718 0.0000000000000000 -0.0025275585661437 0.0000000000000000 + -0.0014003952261877 0.0000000000000000 -0.0002449744821632 0.0000000000000000 0.0015206472447118 0.0000000000000000 + 0.0091891495399398 0.0000000000000000 -0.0030108060126873 0.0000000000000000 -0.0014211831836459 0.0000000000000000 + 0.0007217572183844 0.0000000000000000 -0.0035553985811554 0.0000000000000000 -0.0025275585661337 0.0000000000000000 2 1 - -0.0251057439413774 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0569567699834649 0.0000000000000000 0.0222771411146661 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0058150573712052 0.0000000000000000 -0.2988598772526016 0.0000000000000000 + -0.0251057439413777 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0569567699834668 0.0000000000000000 0.0222771411146697 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0058150573711577 0.0000000000000000 -0.2988598772525921 0.0000000000000000 2 2 - 0.0352255604087113 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0577498980966727 0.0000000000000000 0.0004642893512924 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0004642893512924 0.0000000000000000 0.2960907478396982 0.0000000000000000 + 0.0352255604087113 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0577498980966748 0.0000000000000000 0.0004642893512910 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0004642893512910 0.0000000000000000 0.2960907478397040 0.0000000000000000 2 3 - 0.0037861455182858 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0103751426308780 0.0000000000000000 -0.0282119025677865 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0049287602283434 0.0000000000000000 -0.0033792838522455 0.0000000000000000 + 0.0037861455182857 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0282119025677891 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0049287602283866 0.0000000000000000 -0.0033792838522573 0.0000000000000000 2 4 - -0.0149643881777172 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0085647327830343 0.0000000000000000 0.0044261389355791 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0009466269409928 0.0000000000000000 0.0064890897648047 0.0000000000000000 + -0.0149643881777161 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0044261389355781 0.0000000000000000 + 0.0000000000000019 0.0000000000000000 0.0009466269410124 0.0000000000000000 0.0064890897647901 0.0000000000000000 2 5 - 0.0053960771921622 0.0000000000000000 -0.0027777266316755 0.0000000000000000 -0.0010754919735292 0.0000000000000000 - -0.0041883714492607 0.0000000000000000 0.0037383917967320 0.0000000000000000 -0.0001605357525143 0.0000000000000000 - 0.0052382113260794 0.0000000000000000 0.0007249474944389 0.0000000000000000 -0.0008206821613074 0.0000000000000000 + 0.0053960771921616 0.0000000000000000 -0.0027777266316755 0.0000000000000000 -0.0010754919735297 0.0000000000000000 + -0.0041883714492625 0.0000000000000000 0.0037383917967308 0.0000000000000000 -0.0001605357525138 0.0000000000000000 + 0.0052382113260928 0.0000000000000000 0.0007249474944291 0.0000000000000000 -0.0008206821613017 0.0000000000000000 2 6 - 0.0053960771921623 0.0000000000000000 0.0027777266316758 0.0000000000000000 0.0010754919735293 0.0000000000000000 - 0.0041883714492612 0.0000000000000000 0.0037383917967322 0.0000000000000000 -0.0001605357525144 0.0000000000000000 - -0.0052382113260799 0.0000000000000000 0.0007249474944386 0.0000000000000000 -0.0008206821613072 0.0000000000000000 + 0.0053960771921615 0.0000000000000000 0.0027777266316751 0.0000000000000000 0.0010754919735295 0.0000000000000000 + 0.0041883714492620 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0001605357525134 0.0000000000000000 + -0.0052382113260946 0.0000000000000000 0.0007249474944282 0.0000000000000000 -0.0008206821613009 0.0000000000000000 2 7 - -0.0018152750012296 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0012476417535554 0.0000000000000000 0.0002039213450267 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0078942408875524 0.0000000000000000 0.0145769254785697 0.0000000000000000 + -0.0018152750012298 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0012476417535545 0.0000000000000000 0.0002039213450292 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0078942408876013 0.0000000000000000 0.0145769254785545 0.0000000000000000 2 8 - 0.0036353210827943 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0001181663659071 0.0000000000000000 -0.0026161584162148 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0026161584162181 0.0000000000000000 -0.0221544638345916 0.0000000000000000 + 0.0036353210827942 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0001181663659071 0.0000000000000000 -0.0026161584162175 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0026161584162155 0.0000000000000000 -0.0221544638345915 0.0000000000000000 2 9 - -0.0006990068039687 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0007453998223712 0.0000000000000000 0.0020862975258868 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0005005588826243 0.0000000000000000 -0.0034474484778444 0.0000000000000000 + -0.0006990068039685 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0007453998223716 0.0000000000000000 0.0020862975258867 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0005005588825812 0.0000000000000000 -0.0034474484778334 0.0000000000000000 2 10 - -0.0158629633765114 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0142572303934381 0.0000000000000000 0.0025026894102803 0.0000000000000000 - -0.0000000000000013 0.0000000000000000 -0.0110402408679937 0.0000000000000000 0.0060798140623741 0.0000000000000000 + -0.0158629633765122 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000009 0.0000000000000000 -0.0142572303934430 0.0000000000000000 0.0025026894102770 0.0000000000000000 + -0.0000000000000098 0.0000000000000000 -0.0110402408679630 0.0000000000000000 0.0060798140623970 0.0000000000000000 2 11 - 0.0025040980237171 0.0000000000000000 -0.0023164619816242 0.0000000000000000 0.0038518265447293 0.0000000000000000 - 0.0006119532508347 0.0000000000000000 0.0011510144726797 0.0000000000000000 -0.0004056725610977 0.0000000000000000 - -0.0017406728581402 0.0000000000000000 0.0039561444257060 0.0000000000000000 0.0031229275970346 0.0000000000000000 + 0.0025040980237178 0.0000000000000000 -0.0023164619816246 0.0000000000000000 0.0038518265447292 0.0000000000000000 + 0.0006119532508360 0.0000000000000000 0.0011510144726826 0.0000000000000000 -0.0004056725610960 0.0000000000000000 + -0.0017406728581125 0.0000000000000000 0.0039561444256876 0.0000000000000000 0.0031229275970231 0.0000000000000000 2 12 - 0.0025040980237175 0.0000000000000000 0.0023164619816245 0.0000000000000000 -0.0038518265447295 0.0000000000000000 - -0.0006119532508346 0.0000000000000000 0.0011510144726795 0.0000000000000000 -0.0004056725610978 0.0000000000000000 - 0.0017406728581413 0.0000000000000000 0.0039561444257067 0.0000000000000000 0.0031229275970351 0.0000000000000000 + 0.0025040980237174 0.0000000000000000 0.0023164619816242 0.0000000000000000 -0.0038518265447293 0.0000000000000000 + -0.0006119532508365 0.0000000000000000 0.0011510144726818 0.0000000000000000 -0.0004056725610958 0.0000000000000000 + 0.0017406728581213 0.0000000000000000 0.0039561444256929 0.0000000000000000 0.0031229275970264 0.0000000000000000 3 1 - -0.0289738345959177 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.2820802915433080 0.0000000000000000 -0.0884826303559630 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0527306161696257 0.0000000000000000 -0.0739447334126226 0.0000000000000000 + -0.0289738345959179 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.2820802915433134 0.0000000000000000 -0.0884826303559192 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0527306161696257 0.0000000000000000 -0.0739447334126139 0.0000000000000000 3 2 - 0.0037861455182858 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0103751426308780 0.0000000000000000 -0.0049287602283434 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0282119025677865 0.0000000000000000 -0.0033792838522455 0.0000000000000000 + 0.0037861455182857 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0049287602283866 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0282119025677891 0.0000000000000000 -0.0033792838522573 0.0000000000000000 3 3 - 0.0365782981378746 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.2729248902175054 0.0000000000000000 0.0713458205553467 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0713458205553467 0.0000000000000000 0.0798291225288837 0.0000000000000000 + 0.0365782981378746 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000004 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.2729248902175124 0.0000000000000000 0.0713458205553489 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0713458205553489 0.0000000000000000 0.0798291225288875 0.0000000000000000 3 4 - -0.0193793176120021 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 0.0128264092257471 0.0000000000000000 0.0093892601393151 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0108019320579850 0.0000000000000000 -0.0127958810116057 0.0000000000000000 + -0.0193793176120018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000143 0.0000000000000000 0.0128264092257508 0.0000000000000000 0.0093892601393096 0.0000000000000000 + 0.0000000000000040 0.0000000000000000 0.0108019320579836 0.0000000000000000 -0.0127958810116062 0.0000000000000000 3 5 - 0.0043670482201899 0.0000000000000000 0.0062527546419653 0.0000000000000000 0.0032245610064166 0.0000000000000000 - 0.0073649825438626 0.0000000000000000 -0.0050060184798371 0.0000000000000000 0.0046134194019400 0.0000000000000000 - 0.0069798143243267 0.0000000000000000 -0.0003322634792063 0.0000000000000000 0.0072531804468965 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 0.0062527546419652 0.0000000000000000 0.0032245610064165 0.0000000000000000 + 0.0073649825438596 0.0000000000000000 -0.0050060184798359 0.0000000000000000 0.0046134194019393 0.0000000000000000 + 0.0069798143243273 0.0000000000000000 -0.0003322634792048 0.0000000000000000 0.0072531804468956 0.0000000000000000 3 6 - 0.0043670482201902 0.0000000000000000 -0.0062527546419651 0.0000000000000000 -0.0032245610064167 0.0000000000000000 - -0.0073649825438616 0.0000000000000000 -0.0050060184798365 0.0000000000000000 0.0046134194019397 0.0000000000000000 - -0.0069798143243270 0.0000000000000000 -0.0003322634792066 0.0000000000000000 0.0072531804468965 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 -0.0062527546419652 0.0000000000000000 -0.0032245610064167 0.0000000000000000 + -0.0073649825438718 0.0000000000000000 -0.0050060184798436 0.0000000000000000 0.0046134194019439 0.0000000000000000 + -0.0069798143243308 0.0000000000000000 -0.0003322634792067 0.0000000000000000 0.0072531804468971 0.0000000000000000 3 7 - -0.0016399265604474 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0035091911501685 0.0000000000000000 -0.0074822204968961 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0021722504817079 0.0000000000000000 0.0003426041600588 0.0000000000000000 + -0.0016399265604473 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0035091911501720 0.0000000000000000 -0.0074822204968487 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0021722504817066 0.0000000000000000 0.0003426041600719 0.0000000000000000 3 8 - -0.0006990068039681 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0007453998223718 0.0000000000000000 -0.0005005588825771 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778324 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0007453998223716 0.0000000000000000 -0.0005005588826217 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778439 0.0000000000000000 3 9 - 0.0025844652016201 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0002706095090054 0.0000000000000000 0.0025129031626719 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0025129031626725 0.0000000000000000 -0.0015754786010477 0.0000000000000000 + 0.0025844652016199 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0002706095090058 0.0000000000000000 0.0025129031626730 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0025129031626718 0.0000000000000000 -0.0015754786010475 0.0000000000000000 3 10 - -0.0001599946965682 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000017 0.0000000000000000 0.0004054668963155 0.0000000000000000 0.0101430343307504 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0081775121522179 0.0000000000000000 0.0079899884223468 0.0000000000000000 + -0.0001599946965675 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000108 0.0000000000000000 0.0004054668963032 0.0000000000000000 0.0101430343307397 0.0000000000000000 + 0.0000000000000027 0.0000000000000000 0.0081775121522188 0.0000000000000000 0.0079899884223466 0.0000000000000000 3 11 - -0.0004154624427384 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225502 0.0000000000000000 - 0.0127928624961799 0.0000000000000000 -0.0007025897616815 0.0000000000000000 -0.0006118410528876 0.0000000000000000 - 0.0050585024151256 0.0000000000000000 -0.0031456369018455 0.0000000000000000 -0.0037626256179457 0.0000000000000000 + -0.0004154624427386 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225504 0.0000000000000000 + 0.0127928624961676 0.0000000000000000 -0.0007025897616733 0.0000000000000000 -0.0006118410528820 0.0000000000000000 + 0.0050585024151195 0.0000000000000000 -0.0031456369018457 0.0000000000000000 -0.0037626256179462 0.0000000000000000 3 12 - -0.0004154624427382 0.0000000000000000 -0.0012439381262114 0.0000000000000000 -0.0022873936225504 0.0000000000000000 - -0.0127928624961811 0.0000000000000000 -0.0007025897616820 0.0000000000000000 -0.0006118410528880 0.0000000000000000 - -0.0050585024151258 0.0000000000000000 -0.0031456369018459 0.0000000000000000 -0.0037626256179460 0.0000000000000000 + -0.0004154624427386 0.0000000000000000 -0.0012439381262117 0.0000000000000000 -0.0022873936225502 0.0000000000000000 + -0.0127928624961764 0.0000000000000000 -0.0007025897616784 0.0000000000000000 -0.0006118410528855 0.0000000000000000 + -0.0050585024151214 0.0000000000000000 -0.0031456369018474 0.0000000000000000 -0.0037626256179467 0.0000000000000000 4 1 - -0.0373686571560693 0.0000000000000000 0.0000000000000021 0.0000000000000000 -0.0000000000000010 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0336428001201841 0.0000000000000000 -0.0044397818519427 0.0000000000000000 - 0.0000000000000009 0.0000000000000000 -0.0041894809945804 0.0000000000000000 0.0041303780996414 0.0000000000000000 + -0.0373686571560659 0.0000000000000000 -0.0000000000000152 0.0000000000000000 -0.0000000000000070 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0336428001201928 0.0000000000000000 -0.0044397818519615 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0041894809945713 0.0000000000000000 0.0041303780996570 0.0000000000000000 4 2 - -0.0149643881777172 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0085647327830343 0.0000000000000000 0.0009466269409928 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0044261389355791 0.0000000000000000 0.0064890897648047 0.0000000000000000 + -0.0149643881777161 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000019 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0009466269410124 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0044261389355781 0.0000000000000000 0.0064890897647901 0.0000000000000000 4 3 - -0.0193793176120021 0.0000000000000000 -0.0000000000000005 0.0000000000000000 0.0000000000000005 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0128264092257471 0.0000000000000000 0.0108019320579850 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0093892601393151 0.0000000000000000 -0.0127958810116057 0.0000000000000000 + -0.0193793176120018 0.0000000000000000 0.0000000000000143 0.0000000000000000 0.0000000000000040 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0128264092257508 0.0000000000000000 0.0108019320579836 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0093892601393096 0.0000000000000000 -0.0127958810116062 0.0000000000000000 4 4 - 0.4834443802759195 0.0000000000000000 0.0000000000000036 0.0000000000000000 -0.0000000000000028 0.0000000000000000 - 0.0000000000000036 0.0000000000000000 0.2588422264936724 0.0000000000000000 -0.1308110718530787 0.0000000000000000 - -0.0000000000000028 0.0000000000000000 -0.1308110718530787 0.0000000000000000 0.1639030178691444 0.0000000000000000 + 0.4834443802758838 0.0000000000000000 -0.0000000000000059 0.0000000000000000 0.0000000000000056 0.0000000000000000 + -0.0000000000000059 0.0000000000000000 0.2588422264936609 0.0000000000000000 -0.1308110718530661 0.0000000000000000 + 0.0000000000000056 0.0000000000000000 -0.1308110718530661 0.0000000000000000 0.1639030178691332 0.0000000000000000 4 5 - -0.2042620382020801 0.0000000000000000 0.1111612914471485 0.0000000000000000 -0.0678004081048618 0.0000000000000000 - 0.0961493426419364 0.0000000000000000 -0.1150790588758553 0.0000000000000000 0.0626077946132234 0.0000000000000000 - -0.0680988033808387 0.0000000000000000 0.0633030715249527 0.0000000000000000 -0.0673384314526849 0.0000000000000000 + -0.2042620382020704 0.0000000000000000 0.1111612914471428 0.0000000000000000 -0.0678004081048586 0.0000000000000000 + 0.0961493426419410 0.0000000000000000 -0.1150790588758516 0.0000000000000000 0.0626077946132201 0.0000000000000000 + -0.0680988033808397 0.0000000000000000 0.0633030715249480 0.0000000000000000 -0.0673384314526821 0.0000000000000000 4 6 - -0.2042620382020851 0.0000000000000000 -0.1111612914471518 0.0000000000000000 0.0678004081048640 0.0000000000000000 - -0.0961493426419400 0.0000000000000000 -0.1150790588758578 0.0000000000000000 0.0626077946132245 0.0000000000000000 - 0.0680988033808413 0.0000000000000000 0.0633030715249539 0.0000000000000000 -0.0673384314526859 0.0000000000000000 + -0.2042620382020605 0.0000000000000000 -0.1111612914471363 0.0000000000000000 0.0678004081048547 0.0000000000000000 + -0.0961493426419366 0.0000000000000000 -0.1150790588758485 0.0000000000000000 0.0626077946132183 0.0000000000000000 + 0.0680988033808352 0.0000000000000000 0.0633030715249457 0.0000000000000000 -0.0673384314526803 0.0000000000000000 4 7 - 0.0078082955673486 0.0000000000000000 0.0000000000000119 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0119074076296613 0.0000000000000000 -0.0044778895271094 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 0.0034942738523531 0.0000000000000000 -0.0367974389514289 0.0000000000000000 + 0.0078082955673495 0.0000000000000000 -0.0000000000000104 0.0000000000000000 -0.0000000000000047 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0119074076296492 0.0000000000000000 -0.0044778895271415 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0034942738523658 0.0000000000000000 -0.0367974389514057 0.0000000000000000 4 8 - -0.0158629633765100 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000041 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0142572303934455 0.0000000000000000 0.0110402408679503 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0025026894102756 0.0000000000000000 0.0060798140624053 0.0000000000000000 + -0.0158629633765093 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000083 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0142572303934413 0.0000000000000000 0.0110402408679823 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0025026894102784 0.0000000000000000 0.0060798140623808 0.0000000000000000 4 9 - -0.0001599946965691 0.0000000000000000 -0.0000000000000107 0.0000000000000000 0.0000000000000032 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0004054668963072 0.0000000000000000 -0.0081775121522237 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0101430343307420 0.0000000000000000 0.0079899884223495 0.0000000000000000 + -0.0001599946965694 0.0000000000000000 0.0000000000000094 0.0000000000000000 -0.0000000000000021 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0004054668963166 0.0000000000000000 -0.0081775121522224 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0101430343307530 0.0000000000000000 0.0079899884223502 0.0000000000000000 4 10 - 0.0039008143595921 0.0000000000000000 0.0000000000000036 0.0000000000000000 0.0000000000000022 0.0000000000000000 - -0.0000000000000011 0.0000000000000000 -0.0008485805837898 0.0000000000000000 -0.0030686652718417 0.0000000000000000 - 0.0000000000000018 0.0000000000000000 0.0030686652718395 0.0000000000000000 -0.0082838582595758 0.0000000000000000 + 0.0039008143595916 0.0000000000000000 -0.0000000000000061 0.0000000000000000 -0.0000000000000035 0.0000000000000000 + -0.0000000000000083 0.0000000000000000 -0.0008485805837908 0.0000000000000000 -0.0030686652718390 0.0000000000000000 + 0.0000000000000054 0.0000000000000000 0.0030686652718403 0.0000000000000000 -0.0082838582595774 0.0000000000000000 4 11 - 0.0005529569781427 0.0000000000000000 0.0006881224323673 0.0000000000000000 0.0009938270034980 0.0000000000000000 - -0.0004060563613284 0.0000000000000000 0.0017449768597155 0.0000000000000000 0.0014852637978348 0.0000000000000000 - -0.0028171359308493 0.0000000000000000 0.0003308975272946 0.0000000000000000 0.0019808748951319 0.0000000000000000 + 0.0005529569781352 0.0000000000000000 0.0006881224323724 0.0000000000000000 0.0009938270035009 0.0000000000000000 + -0.0004060563613260 0.0000000000000000 0.0017449768597134 0.0000000000000000 0.0014852637978343 0.0000000000000000 + -0.0028171359308501 0.0000000000000000 0.0003308975272960 0.0000000000000000 0.0019808748951330 0.0000000000000000 4 12 - 0.0005529569781372 0.0000000000000000 -0.0006881224323706 0.0000000000000000 -0.0009938270034998 0.0000000000000000 - 0.0004060563613291 0.0000000000000000 0.0017449768597162 0.0000000000000000 0.0014852637978353 0.0000000000000000 - 0.0028171359308479 0.0000000000000000 0.0003308975272938 0.0000000000000000 0.0019808748951319 0.0000000000000000 + 0.0005529569781447 0.0000000000000000 -0.0006881224323656 0.0000000000000000 -0.0009938270034969 0.0000000000000000 + 0.0004060563613329 0.0000000000000000 0.0017449768597176 0.0000000000000000 0.0014852637978365 0.0000000000000000 + 0.0028171359308458 0.0000000000000000 0.0003308975272935 0.0000000000000000 0.0019808748951310 0.0000000000000000 5 1 - 0.0079739154089248 0.0000000000000000 -0.0100652146645693 0.0000000000000000 -0.0036706343437315 0.0000000000000000 - -0.0168418597307702 0.0000000000000000 -0.0099918936929170 0.0000000000000000 -0.0005259246072791 0.0000000000000000 - 0.0106690755761874 0.0000000000000000 -0.0069122209428968 0.0000000000000000 -0.0156150191112110 0.0000000000000000 + 0.0079739154089234 0.0000000000000000 -0.0100652146645655 0.0000000000000000 -0.0036706343437460 0.0000000000000000 + -0.0168418597307695 0.0000000000000000 -0.0099918936929158 0.0000000000000000 -0.0005259246072714 0.0000000000000000 + 0.0106690755761874 0.0000000000000000 -0.0069122209428976 0.0000000000000000 -0.0156150191112155 0.0000000000000000 5 2 - 0.0053960771921622 0.0000000000000000 -0.0041883714492607 0.0000000000000000 0.0052382113260794 0.0000000000000000 - -0.0027777266316755 0.0000000000000000 0.0037383917967320 0.0000000000000000 0.0007249474944389 0.0000000000000000 - -0.0010754919735292 0.0000000000000000 -0.0001605357525143 0.0000000000000000 -0.0008206821613074 0.0000000000000000 + 0.0053960771921616 0.0000000000000000 -0.0041883714492625 0.0000000000000000 0.0052382113260928 0.0000000000000000 + -0.0027777266316755 0.0000000000000000 0.0037383917967308 0.0000000000000000 0.0007249474944291 0.0000000000000000 + -0.0010754919735297 0.0000000000000000 -0.0001605357525138 0.0000000000000000 -0.0008206821613017 0.0000000000000000 5 3 - 0.0043670482201899 0.0000000000000000 0.0073649825438626 0.0000000000000000 0.0069798143243267 0.0000000000000000 - 0.0062527546419653 0.0000000000000000 -0.0050060184798371 0.0000000000000000 -0.0003322634792063 0.0000000000000000 - 0.0032245610064166 0.0000000000000000 0.0046134194019400 0.0000000000000000 0.0072531804468965 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 0.0073649825438596 0.0000000000000000 0.0069798143243273 0.0000000000000000 + 0.0062527546419652 0.0000000000000000 -0.0050060184798359 0.0000000000000000 -0.0003322634792048 0.0000000000000000 + 0.0032245610064165 0.0000000000000000 0.0046134194019393 0.0000000000000000 0.0072531804468956 0.0000000000000000 5 4 - -0.2042620382020801 0.0000000000000000 0.0961493426419364 0.0000000000000000 -0.0680988033808387 0.0000000000000000 - 0.1111612914471485 0.0000000000000000 -0.1150790588758553 0.0000000000000000 0.0633030715249527 0.0000000000000000 - -0.0678004081048618 0.0000000000000000 0.0626077946132234 0.0000000000000000 -0.0673384314526849 0.0000000000000000 + -0.2042620382020704 0.0000000000000000 0.0961493426419410 0.0000000000000000 -0.0680988033808397 0.0000000000000000 + 0.1111612914471428 0.0000000000000000 -0.1150790588758516 0.0000000000000000 0.0633030715249480 0.0000000000000000 + -0.0678004081048586 0.0000000000000000 0.0626077946132201 0.0000000000000000 -0.0673384314526821 0.0000000000000000 5 5 - 0.2174594979186155 0.0000000000000000 -0.0954682304260074 0.0000000000000000 0.0600636707989466 0.0000000000000000 - -0.0954682304260074 0.0000000000000000 0.1104252604741381 0.0000000000000000 -0.0503426131734388 0.0000000000000000 - 0.0600636707989466 0.0000000000000000 -0.0503426131734388 0.0000000000000000 0.0677190190410523 0.0000000000000000 + 0.2174594979186082 0.0000000000000000 -0.0954682304260068 0.0000000000000000 0.0600636707989470 0.0000000000000000 + -0.0954682304260068 0.0000000000000000 0.1104252604741348 0.0000000000000000 -0.0503426131734358 0.0000000000000000 + 0.0600636707989470 0.0000000000000000 -0.0503426131734358 0.0000000000000000 0.0677190190410507 0.0000000000000000 5 6 - -0.0299583471230600 0.0000000000000000 0.0025306649735985 0.0000000000000000 0.0001964280885721 0.0000000000000000 - -0.0025306649735983 0.0000000000000000 0.0189330240079919 0.0000000000000000 -0.0130002466231003 0.0000000000000000 - -0.0001964280885724 0.0000000000000000 -0.0130002466231002 0.0000000000000000 0.0113735279572527 0.0000000000000000 + -0.0299583471230623 0.0000000000000000 0.0025306649735933 0.0000000000000000 0.0001964280885757 0.0000000000000000 + -0.0025306649735934 0.0000000000000000 0.0189330240079913 0.0000000000000000 -0.0130002466230993 0.0000000000000000 + -0.0001964280885756 0.0000000000000000 -0.0130002466230997 0.0000000000000000 0.0113735279572519 0.0000000000000000 5 7 - -0.0014003952261869 0.0000000000000000 -0.0091891495399441 0.0000000000000000 0.0007217572183957 0.0000000000000000 - 0.0002449744821626 0.0000000000000000 -0.0030108060126875 0.0000000000000000 0.0035553985811456 0.0000000000000000 - 0.0015206472447122 0.0000000000000000 0.0014211831836458 0.0000000000000000 -0.0025275585661272 0.0000000000000000 + -0.0014003952261875 0.0000000000000000 -0.0091891495399403 0.0000000000000000 0.0007217572183788 0.0000000000000000 + 0.0002449744821626 0.0000000000000000 -0.0030108060126854 0.0000000000000000 0.0035553985811609 0.0000000000000000 + 0.0015206472447122 0.0000000000000000 0.0014211831836446 0.0000000000000000 -0.0025275585661367 0.0000000000000000 5 8 - 0.0025040980237166 0.0000000000000000 0.0006119532508385 0.0000000000000000 0.0017406728581087 0.0000000000000000 - -0.0023164619816236 0.0000000000000000 0.0011510144726836 0.0000000000000000 -0.0039561444256845 0.0000000000000000 - -0.0038518265447296 0.0000000000000000 0.0004056725610949 0.0000000000000000 0.0031229275970211 0.0000000000000000 + 0.0025040980237165 0.0000000000000000 0.0006119532508362 0.0000000000000000 0.0017406728581273 0.0000000000000000 + -0.0023164619816237 0.0000000000000000 0.0011510144726814 0.0000000000000000 -0.0039561444256983 0.0000000000000000 + -0.0038518265447298 0.0000000000000000 0.0004056725610964 0.0000000000000000 0.0031229275970296 0.0000000000000000 5 9 - -0.0004154624427379 0.0000000000000000 0.0127928624961793 0.0000000000000000 -0.0050585024151207 0.0000000000000000 - 0.0012439381262113 0.0000000000000000 -0.0007025897616796 0.0000000000000000 0.0031456369018495 0.0000000000000000 - -0.0022873936225501 0.0000000000000000 0.0006118410528863 0.0000000000000000 -0.0037626256179486 0.0000000000000000 + -0.0004154624427377 0.0000000000000000 0.0127928624961785 0.0000000000000000 -0.0050585024151233 0.0000000000000000 + 0.0012439381262114 0.0000000000000000 -0.0007025897616807 0.0000000000000000 0.0031456369018482 0.0000000000000000 + -0.0022873936225497 0.0000000000000000 0.0006118410528869 0.0000000000000000 -0.0037626256179473 0.0000000000000000 5 10 - 0.0005529569781391 0.0000000000000000 -0.0004060563613305 0.0000000000000000 0.0028171359308453 0.0000000000000000 - 0.0006881224323696 0.0000000000000000 0.0017449768597158 0.0000000000000000 -0.0003308975272935 0.0000000000000000 - -0.0009938270034991 0.0000000000000000 -0.0014852637978356 0.0000000000000000 0.0019808748951309 0.0000000000000000 + 0.0005529569781328 0.0000000000000000 -0.0004060563613261 0.0000000000000000 0.0028171359308506 0.0000000000000000 + 0.0006881224323735 0.0000000000000000 0.0017449768597135 0.0000000000000000 -0.0003308975272962 0.0000000000000000 + -0.0009938270035016 0.0000000000000000 -0.0014852637978343 0.0000000000000000 0.0019808748951331 0.0000000000000000 5 11 - -0.0001947154534084 0.0000000000000000 0.0001055444019346 0.0000000000000000 -0.0008285855530526 0.0000000000000000 - 0.0001055444019350 0.0000000000000000 -0.0022624521874647 0.0000000000000000 -0.0020902638812477 0.0000000000000000 - 0.0008285855530526 0.0000000000000000 0.0020902638812482 0.0000000000000000 0.0008479800149238 0.0000000000000000 + -0.0001947154534015 0.0000000000000000 0.0001055444019307 0.0000000000000000 -0.0008285855530552 0.0000000000000000 + 0.0001055444019307 0.0000000000000000 -0.0022624521874621 0.0000000000000000 -0.0020902638812465 0.0000000000000000 + 0.0008285855530550 0.0000000000000000 0.0020902638812465 0.0000000000000000 0.0008479800149223 0.0000000000000000 5 12 - -0.0020226399972382 0.0000000000000000 -0.0002383182140775 0.0000000000000000 -0.0001011648438928 0.0000000000000000 - 0.0002383182140771 0.0000000000000000 0.0000601515309627 0.0000000000000000 -0.0001507007232539 0.0000000000000000 - -0.0001011648438929 0.0000000000000000 0.0001507007232542 0.0000000000000000 -0.0022331838997248 0.0000000000000000 + -0.0020226399972397 0.0000000000000000 -0.0002383182140782 0.0000000000000000 -0.0001011648438934 0.0000000000000000 + 0.0002383182140778 0.0000000000000000 0.0000601515309634 0.0000000000000000 -0.0001507007232538 0.0000000000000000 + -0.0001011648438931 0.0000000000000000 0.0001507007232540 0.0000000000000000 -0.0022331838997249 0.0000000000000000 6 1 - 0.0079739154089253 0.0000000000000000 0.0100652146645669 0.0000000000000000 0.0036706343437324 0.0000000000000000 - 0.0168418597307707 0.0000000000000000 -0.0099918936929185 0.0000000000000000 -0.0005259246072785 0.0000000000000000 - -0.0106690755761879 0.0000000000000000 -0.0069122209428961 0.0000000000000000 -0.0156150191112113 0.0000000000000000 + 0.0079739154089238 0.0000000000000000 0.0100652146645789 0.0000000000000000 0.0036706343437522 0.0000000000000000 + 0.0168418597307698 0.0000000000000000 -0.0099918936929075 0.0000000000000000 -0.0005259246072676 0.0000000000000000 + -0.0106690755761872 0.0000000000000000 -0.0069122209429028 0.0000000000000000 -0.0156150191112181 0.0000000000000000 6 2 - 0.0053960771921623 0.0000000000000000 0.0041883714492612 0.0000000000000000 -0.0052382113260799 0.0000000000000000 - 0.0027777266316758 0.0000000000000000 0.0037383917967322 0.0000000000000000 0.0007249474944386 0.0000000000000000 - 0.0010754919735293 0.0000000000000000 -0.0001605357525144 0.0000000000000000 -0.0008206821613072 0.0000000000000000 + 0.0053960771921615 0.0000000000000000 0.0041883714492620 0.0000000000000000 -0.0052382113260946 0.0000000000000000 + 0.0027777266316751 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0007249474944282 0.0000000000000000 + 0.0010754919735295 0.0000000000000000 -0.0001605357525134 0.0000000000000000 -0.0008206821613009 0.0000000000000000 6 3 - 0.0043670482201902 0.0000000000000000 -0.0073649825438616 0.0000000000000000 -0.0069798143243270 0.0000000000000000 - -0.0062527546419651 0.0000000000000000 -0.0050060184798365 0.0000000000000000 -0.0003322634792066 0.0000000000000000 - -0.0032245610064167 0.0000000000000000 0.0046134194019397 0.0000000000000000 0.0072531804468965 0.0000000000000000 + 0.0043670482201899 0.0000000000000000 -0.0073649825438718 0.0000000000000000 -0.0069798143243308 0.0000000000000000 + -0.0062527546419652 0.0000000000000000 -0.0050060184798436 0.0000000000000000 -0.0003322634792067 0.0000000000000000 + -0.0032245610064167 0.0000000000000000 0.0046134194019439 0.0000000000000000 0.0072531804468971 0.0000000000000000 6 4 - -0.2042620382020851 0.0000000000000000 -0.0961493426419400 0.0000000000000000 0.0680988033808413 0.0000000000000000 - -0.1111612914471518 0.0000000000000000 -0.1150790588758578 0.0000000000000000 0.0633030715249539 0.0000000000000000 - 0.0678004081048640 0.0000000000000000 0.0626077946132245 0.0000000000000000 -0.0673384314526859 0.0000000000000000 + -0.2042620382020605 0.0000000000000000 -0.0961493426419366 0.0000000000000000 0.0680988033808352 0.0000000000000000 + -0.1111612914471363 0.0000000000000000 -0.1150790588758485 0.0000000000000000 0.0633030715249457 0.0000000000000000 + 0.0678004081048547 0.0000000000000000 0.0626077946132183 0.0000000000000000 -0.0673384314526803 0.0000000000000000 6 5 - -0.0299583471230600 0.0000000000000000 -0.0025306649735983 0.0000000000000000 -0.0001964280885724 0.0000000000000000 - 0.0025306649735985 0.0000000000000000 0.0189330240079919 0.0000000000000000 -0.0130002466231001 0.0000000000000000 - 0.0001964280885721 0.0000000000000000 -0.0130002466231003 0.0000000000000000 0.0113735279572527 0.0000000000000000 + -0.0299583471230623 0.0000000000000000 -0.0025306649735934 0.0000000000000000 -0.0001964280885756 0.0000000000000000 + 0.0025306649735933 0.0000000000000000 0.0189330240079913 0.0000000000000000 -0.0130002466230997 0.0000000000000000 + 0.0001964280885757 0.0000000000000000 -0.0130002466230993 0.0000000000000000 0.0113735279572519 0.0000000000000000 6 6 - 0.2174594979186204 0.0000000000000000 0.0954682304260104 0.0000000000000000 -0.0600636707989488 0.0000000000000000 - 0.0954682304260104 0.0000000000000000 0.1104252604741404 0.0000000000000000 -0.0503426131734398 0.0000000000000000 - -0.0600636707989488 0.0000000000000000 -0.0503426131734398 0.0000000000000000 0.0677190190410532 0.0000000000000000 + 0.2174594979186011 0.0000000000000000 0.0954682304260020 0.0000000000000000 -0.0600636707989439 0.0000000000000000 + 0.0954682304260020 0.0000000000000000 0.1104252604741310 0.0000000000000000 -0.0503426131734342 0.0000000000000000 + -0.0600636707989439 0.0000000000000000 -0.0503426131734342 0.0000000000000000 0.0677190190410494 0.0000000000000000 6 7 - -0.0014003952261869 0.0000000000000000 0.0091891495399334 0.0000000000000000 -0.0007217572183955 0.0000000000000000 - -0.0002449744821627 0.0000000000000000 -0.0030108060126942 0.0000000000000000 0.0035553985811455 0.0000000000000000 - -0.0015206472447126 0.0000000000000000 0.0014211831836497 0.0000000000000000 -0.0025275585661270 0.0000000000000000 + -0.0014003952261871 0.0000000000000000 0.0091891495399499 0.0000000000000000 -0.0007217572183744 0.0000000000000000 + -0.0002449744821628 0.0000000000000000 -0.0030108060126800 0.0000000000000000 0.0035553985811640 0.0000000000000000 + -0.0015206472447125 0.0000000000000000 0.0014211831836412 0.0000000000000000 -0.0025275585661386 0.0000000000000000 6 8 - 0.0025040980237166 0.0000000000000000 -0.0006119532508381 0.0000000000000000 -0.0017406728581050 0.0000000000000000 - 0.0023164619816238 0.0000000000000000 0.0011510144726837 0.0000000000000000 -0.0039561444256823 0.0000000000000000 - 0.0038518265447298 0.0000000000000000 0.0004056725610949 0.0000000000000000 0.0031229275970198 0.0000000000000000 + 0.0025040980237161 0.0000000000000000 -0.0006119532508371 0.0000000000000000 -0.0017406728581349 0.0000000000000000 + 0.0023164619816234 0.0000000000000000 0.0011510144726814 0.0000000000000000 -0.0039561444257030 0.0000000000000000 + 0.0038518265447298 0.0000000000000000 0.0004056725610967 0.0000000000000000 0.0031229275970325 0.0000000000000000 6 9 - -0.0004154624427379 0.0000000000000000 -0.0127928624961698 0.0000000000000000 0.0050585024151178 0.0000000000000000 - -0.0012439381262112 0.0000000000000000 -0.0007025897616736 0.0000000000000000 0.0031456369018480 0.0000000000000000 - 0.0022873936225502 0.0000000000000000 0.0006118410528826 0.0000000000000000 -0.0037626256179476 0.0000000000000000 + -0.0004154624427377 0.0000000000000000 -0.0127928624961870 0.0000000000000000 0.0050585024151253 0.0000000000000000 + -0.0012439381262109 0.0000000000000000 -0.0007025897616859 0.0000000000000000 0.0031456369018488 0.0000000000000000 + 0.0022873936225504 0.0000000000000000 0.0006118410528900 0.0000000000000000 -0.0037626256179481 0.0000000000000000 6 10 - 0.0005529569781416 0.0000000000000000 0.0004060563613270 0.0000000000000000 -0.0028171359308475 0.0000000000000000 - -0.0006881224323674 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0003308975272948 0.0000000000000000 - 0.0009938270034978 0.0000000000000000 -0.0014852637978346 0.0000000000000000 0.0019808748951320 0.0000000000000000 + 0.0005529569781477 0.0000000000000000 0.0004060563613318 0.0000000000000000 -0.0028171359308472 0.0000000000000000 + -0.0006881224323630 0.0000000000000000 0.0017449768597169 0.0000000000000000 -0.0003308975272943 0.0000000000000000 + 0.0009938270034948 0.0000000000000000 -0.0014852637978361 0.0000000000000000 0.0019808748951315 0.0000000000000000 6 11 - -0.0020226399972419 0.0000000000000000 0.0002383182140798 0.0000000000000000 0.0001011648438941 0.0000000000000000 - -0.0002383182140796 0.0000000000000000 0.0000601515309644 0.0000000000000000 -0.0001507007232528 0.0000000000000000 - 0.0001011648438943 0.0000000000000000 0.0001507007232535 0.0000000000000000 -0.0022331838997253 0.0000000000000000 + -0.0020226399972413 0.0000000000000000 0.0002383182140788 0.0000000000000000 0.0001011648438937 0.0000000000000000 + -0.0002383182140795 0.0000000000000000 0.0000601515309641 0.0000000000000000 -0.0001507007232533 0.0000000000000000 + 0.0001011648438943 0.0000000000000000 0.0001507007232531 0.0000000000000000 -0.0022331838997253 0.0000000000000000 6 12 - -0.0001947154534065 0.0000000000000000 -0.0001055444019336 0.0000000000000000 0.0008285855530534 0.0000000000000000 - -0.0001055444019342 0.0000000000000000 -0.0022624521874644 0.0000000000000000 -0.0020902638812476 0.0000000000000000 - -0.0008285855530532 0.0000000000000000 0.0020902638812481 0.0000000000000000 0.0008479800149232 0.0000000000000000 + -0.0001947154534122 0.0000000000000000 -0.0001055444019377 0.0000000000000000 0.0008285855530509 0.0000000000000000 + -0.0001055444019378 0.0000000000000000 -0.0022624521874667 0.0000000000000000 -0.0020902638812491 0.0000000000000000 + -0.0008285855530506 0.0000000000000000 0.0020902638812493 0.0000000000000000 0.0008479800149247 0.0000000000000000 7 1 - 0.0015706027157737 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0058994142114997 0.0000000000000000 -0.0129555088579112 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0129555088579669 0.0000000000000000 -0.0025061456783193 0.0000000000000000 + 0.0015706027157737 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000007 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0058994142115028 0.0000000000000000 -0.0129555088579612 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0129555088579155 0.0000000000000000 -0.0025061456783189 0.0000000000000000 7 2 - -0.0018152750012296 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0012476417535554 0.0000000000000000 0.0078942408875524 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0002039213450267 0.0000000000000000 0.0145769254785696 0.0000000000000000 + -0.0018152750012298 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000007 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0012476417535545 0.0000000000000000 0.0078942408876013 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0002039213450292 0.0000000000000000 0.0145769254785546 0.0000000000000000 7 3 - -0.0016399265604474 0.0000000000000000 0.0000000000000004 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0035091911501685 0.0000000000000000 0.0021722504817079 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0074822204968961 0.0000000000000000 0.0003426041600588 0.0000000000000000 + -0.0016399265604473 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0035091911501719 0.0000000000000000 0.0021722504817066 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0074822204968487 0.0000000000000000 0.0003426041600719 0.0000000000000000 7 4 - 0.0078082955673485 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000006 0.0000000000000000 - 0.0000000000000119 0.0000000000000000 0.0119074076296613 0.0000000000000000 0.0034942738523531 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0044778895271094 0.0000000000000000 -0.0367974389514289 0.0000000000000000 + 0.0078082955673495 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000104 0.0000000000000000 0.0119074076296492 0.0000000000000000 0.0034942738523658 0.0000000000000000 + -0.0000000000000047 0.0000000000000000 -0.0044778895271415 0.0000000000000000 -0.0367974389514057 0.0000000000000000 7 5 - -0.0014003952261869 0.0000000000000000 0.0002449744821626 0.0000000000000000 0.0015206472447122 0.0000000000000000 - -0.0091891495399442 0.0000000000000000 -0.0030108060126875 0.0000000000000000 0.0014211831836458 0.0000000000000000 - 0.0007217572183957 0.0000000000000000 0.0035553985811456 0.0000000000000000 -0.0025275585661272 0.0000000000000000 + -0.0014003952261875 0.0000000000000000 0.0002449744821626 0.0000000000000000 0.0015206472447122 0.0000000000000000 + -0.0091891495399403 0.0000000000000000 -0.0030108060126854 0.0000000000000000 0.0014211831836446 0.0000000000000000 + 0.0007217572183788 0.0000000000000000 0.0035553985811609 0.0000000000000000 -0.0025275585661367 0.0000000000000000 7 6 - -0.0014003952261869 0.0000000000000000 -0.0002449744821627 0.0000000000000000 -0.0015206472447126 0.0000000000000000 - 0.0091891495399334 0.0000000000000000 -0.0030108060126942 0.0000000000000000 0.0014211831836497 0.0000000000000000 - -0.0007217572183955 0.0000000000000000 0.0035553985811455 0.0000000000000000 -0.0025275585661270 0.0000000000000000 + -0.0014003952261871 0.0000000000000000 -0.0002449744821628 0.0000000000000000 -0.0015206472447125 0.0000000000000000 + 0.0091891495399499 0.0000000000000000 -0.0030108060126800 0.0000000000000000 0.0014211831836412 0.0000000000000000 + -0.0007217572183744 0.0000000000000000 0.0035553985811640 0.0000000000000000 -0.0025275585661386 0.0000000000000000 7 7 - 0.0723775009917376 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.3831399905936620 0.0000000000000000 -0.0800072256509100 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0800072256509100 0.0000000000000000 0.4293434337307315 0.0000000000000000 + 0.0723775009917368 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000011 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 0.3831399905936608 0.0000000000000000 -0.0800072256509711 0.0000000000000000 + -0.0000000000000011 0.0000000000000000 -0.0800072256509712 0.0000000000000000 0.4293434337307674 0.0000000000000000 7 8 - -0.0251057439413773 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0569567699834691 0.0000000000000000 0.0058150573711528 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0222771411146718 0.0000000000000000 -0.2988598772525805 0.0000000000000000 + -0.0251057439413774 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000008 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 -0.0569567699834669 0.0000000000000000 0.0058150573712115 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 -0.0222771411146680 0.0000000000000000 -0.2988598772525948 0.0000000000000000 7 9 - -0.0289738345959182 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.2820802915433079 0.0000000000000000 0.0527306161696215 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0884826303559113 0.0000000000000000 -0.0739447334126136 0.0000000000000000 + -0.0289738345959178 0.0000000000000000 -0.0000000000000012 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.2820802915433014 0.0000000000000000 0.0527306161696210 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0884826303559652 0.0000000000000000 -0.0739447334126267 0.0000000000000000 7 10 - -0.0373686571560808 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000006 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0336428001202010 0.0000000000000000 0.0041894809945677 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0044397818519533 0.0000000000000000 0.0041303780996524 0.0000000000000000 + -0.0373686571560842 0.0000000000000000 0.0000000000000010 0.0000000000000000 0.0000000000000004 0.0000000000000000 + -0.0000000000000166 0.0000000000000000 -0.0336428001201888 0.0000000000000000 0.0041894809945779 0.0000000000000000 + 0.0000000000000164 0.0000000000000000 0.0044397818519304 0.0000000000000000 0.0041303780996350 0.0000000000000000 7 11 - 0.0079739154089300 0.0000000000000000 -0.0168418597307738 0.0000000000000000 -0.0106690755761894 0.0000000000000000 - -0.0100652146645724 0.0000000000000000 -0.0099918936929086 0.0000000000000000 0.0069122209429022 0.0000000000000000 - 0.0036706343437468 0.0000000000000000 0.0005259246072739 0.0000000000000000 -0.0156150191112137 0.0000000000000000 + 0.0079739154089322 0.0000000000000000 -0.0168418597307750 0.0000000000000000 -0.0106690755761902 0.0000000000000000 + -0.0100652146645610 0.0000000000000000 -0.0099918936929192 0.0000000000000000 0.0069122209428956 0.0000000000000000 + 0.0036706343437197 0.0000000000000000 0.0005259246072899 0.0000000000000000 -0.0156150191112043 0.0000000000000000 7 12 - 0.0079739154089307 0.0000000000000000 0.0168418597307742 0.0000000000000000 0.0106690755761898 0.0000000000000000 - 0.0100652146645733 0.0000000000000000 -0.0099918936929082 0.0000000000000000 0.0069122209429026 0.0000000000000000 - -0.0036706343437474 0.0000000000000000 0.0005259246072736 0.0000000000000000 -0.0156150191112139 0.0000000000000000 + 0.0079739154089311 0.0000000000000000 0.0168418597307739 0.0000000000000000 0.0106690755761901 0.0000000000000000 + 0.0100652146645760 0.0000000000000000 -0.0099918936929097 0.0000000000000000 0.0069122209429013 0.0000000000000000 + -0.0036706343437346 0.0000000000000000 0.0005259246072804 0.0000000000000000 -0.0156150191112100 0.0000000000000000 8 1 - -0.0018152750012303 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0012476417535539 0.0000000000000000 -0.0002039213450295 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0078942408876043 0.0000000000000000 0.0145769254785530 0.0000000000000000 + -0.0018152750012301 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0012476417535547 0.0000000000000000 -0.0002039213450273 0.0000000000000000 + -0.0000000000000007 0.0000000000000000 -0.0078942408875553 0.0000000000000000 0.0145769254785679 0.0000000000000000 8 2 - 0.0036353210827943 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0001181663659071 0.0000000000000000 0.0026161584162181 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0026161584162148 0.0000000000000000 -0.0221544638345915 0.0000000000000000 + 0.0036353210827942 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0001181663659071 0.0000000000000000 0.0026161584162155 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0026161584162175 0.0000000000000000 -0.0221544638345915 0.0000000000000000 8 3 - -0.0006990068039681 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0007453998223718 0.0000000000000000 -0.0020862975258866 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0005005588825771 0.0000000000000000 -0.0034474484778324 0.0000000000000000 + -0.0006990068039684 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0007453998223716 0.0000000000000000 -0.0020862975258866 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0005005588826217 0.0000000000000000 -0.0034474484778439 0.0000000000000000 8 4 - -0.0158629633765100 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0142572303934455 0.0000000000000000 -0.0025026894102756 0.0000000000000000 - -0.0000000000000041 0.0000000000000000 0.0110402408679503 0.0000000000000000 0.0060798140624053 0.0000000000000000 + -0.0158629633765093 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0142572303934413 0.0000000000000000 -0.0025026894102784 0.0000000000000000 + 0.0000000000000083 0.0000000000000000 0.0110402408679823 0.0000000000000000 0.0060798140623808 0.0000000000000000 8 5 - 0.0025040980237166 0.0000000000000000 -0.0023164619816236 0.0000000000000000 -0.0038518265447296 0.0000000000000000 - 0.0006119532508385 0.0000000000000000 0.0011510144726836 0.0000000000000000 0.0004056725610949 0.0000000000000000 - 0.0017406728581087 0.0000000000000000 -0.0039561444256845 0.0000000000000000 0.0031229275970211 0.0000000000000000 + 0.0025040980237165 0.0000000000000000 -0.0023164619816237 0.0000000000000000 -0.0038518265447298 0.0000000000000000 + 0.0006119532508362 0.0000000000000000 0.0011510144726814 0.0000000000000000 0.0004056725610964 0.0000000000000000 + 0.0017406728581273 0.0000000000000000 -0.0039561444256983 0.0000000000000000 0.0031229275970296 0.0000000000000000 8 6 - 0.0025040980237166 0.0000000000000000 0.0023164619816238 0.0000000000000000 0.0038518265447298 0.0000000000000000 - -0.0006119532508381 0.0000000000000000 0.0011510144726837 0.0000000000000000 0.0004056725610948 0.0000000000000000 - -0.0017406728581050 0.0000000000000000 -0.0039561444256823 0.0000000000000000 0.0031229275970198 0.0000000000000000 + 0.0025040980237161 0.0000000000000000 0.0023164619816234 0.0000000000000000 0.0038518265447298 0.0000000000000000 + -0.0006119532508371 0.0000000000000000 0.0011510144726814 0.0000000000000000 0.0004056725610967 0.0000000000000000 + -0.0017406728581349 0.0000000000000000 -0.0039561444257030 0.0000000000000000 0.0031229275970325 0.0000000000000000 8 7 - -0.0251057439413773 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0569567699834691 0.0000000000000000 -0.0222771411146719 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0058150573711528 0.0000000000000000 -0.2988598772525805 0.0000000000000000 + -0.0251057439413774 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0569567699834669 0.0000000000000000 -0.0222771411146680 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 0.0058150573712115 0.0000000000000000 -0.2988598772525948 0.0000000000000000 8 8 - 0.0352255604087114 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0577498980966774 0.0000000000000000 -0.0004642893512909 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0004642893512909 0.0000000000000000 0.2960907478396945 0.0000000000000000 + 0.0352255604087116 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0577498980966756 0.0000000000000000 -0.0004642893512935 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0004642893512935 0.0000000000000000 0.2960907478396886 0.0000000000000000 8 9 - 0.0037861455182860 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0103751426308790 0.0000000000000000 0.0282119025677916 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0049287602283916 0.0000000000000000 -0.0033792838522586 0.0000000000000000 + 0.0037861455182860 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0103751426308778 0.0000000000000000 0.0282119025677899 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0049287602283372 0.0000000000000000 -0.0033792838522438 0.0000000000000000 8 10 - -0.0149643881777212 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0085647327830304 0.0000000000000000 -0.0044261389355772 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 -0.0009466269410047 0.0000000000000000 0.0064890897647942 0.0000000000000000 + -0.0149643881777223 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0085647327830326 0.0000000000000000 -0.0044261389355786 0.0000000000000000 + -0.0000000000000108 0.0000000000000000 -0.0009466269409857 0.0000000000000000 0.0064890897648090 0.0000000000000000 8 11 - 0.0053960771921639 0.0000000000000000 -0.0027777266316766 0.0000000000000000 0.0010754919735285 0.0000000000000000 - -0.0041883714492635 0.0000000000000000 0.0037383917967296 0.0000000000000000 0.0001605357525130 0.0000000000000000 - -0.0052382113260885 0.0000000000000000 -0.0007249474944318 0.0000000000000000 -0.0008206821613036 0.0000000000000000 + 0.0053960771921648 0.0000000000000000 -0.0027777266316773 0.0000000000000000 0.0010754919735284 0.0000000000000000 + -0.0041883714492628 0.0000000000000000 0.0037383917967314 0.0000000000000000 0.0001605357525138 0.0000000000000000 + -0.0052382113260687 0.0000000000000000 -0.0007249474944456 0.0000000000000000 -0.0008206821613118 0.0000000000000000 8 12 - 0.0053960771921641 0.0000000000000000 0.0027777266316768 0.0000000000000000 -0.0010754919735287 0.0000000000000000 - 0.0041883714492635 0.0000000000000000 0.0037383917967295 0.0000000000000000 0.0001605357525129 0.0000000000000000 - 0.0052382113260880 0.0000000000000000 -0.0007249474944322 0.0000000000000000 -0.0008206821613038 0.0000000000000000 + 0.0053960771921642 0.0000000000000000 0.0027777266316767 0.0000000000000000 -0.0010754919735285 0.0000000000000000 + 0.0041883714492623 0.0000000000000000 0.0037383917967304 0.0000000000000000 0.0001605357525137 0.0000000000000000 + 0.0052382113260785 0.0000000000000000 -0.0007249474944396 0.0000000000000000 -0.0008206821613080 0.0000000000000000 9 1 - -0.0016399265604471 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 -0.0035091911501694 0.0000000000000000 0.0074822204968448 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0021722504817080 0.0000000000000000 0.0003426041600733 0.0000000000000000 + -0.0016399265604470 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 -0.0035091911501685 0.0000000000000000 0.0074822204968905 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0021722504817085 0.0000000000000000 0.0003426041600605 0.0000000000000000 9 2 - -0.0006990068039687 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0007453998223712 0.0000000000000000 0.0005005588826243 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0020862975258868 0.0000000000000000 -0.0034474484778444 0.0000000000000000 + -0.0006990068039685 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0007453998223716 0.0000000000000000 0.0005005588825812 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0020862975258867 0.0000000000000000 -0.0034474484778334 0.0000000000000000 9 3 - 0.0025844652016201 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0002706095090054 0.0000000000000000 -0.0025129031626725 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0025129031626719 0.0000000000000000 -0.0015754786010477 0.0000000000000000 + 0.0025844652016199 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0002706095090058 0.0000000000000000 -0.0025129031626718 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0025129031626730 0.0000000000000000 -0.0015754786010475 0.0000000000000000 9 4 - -0.0001599946965691 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000107 0.0000000000000000 0.0004054668963072 0.0000000000000000 -0.0101430343307420 0.0000000000000000 - 0.0000000000000032 0.0000000000000000 -0.0081775121522238 0.0000000000000000 0.0079899884223495 0.0000000000000000 + -0.0001599946965694 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000094 0.0000000000000000 0.0004054668963166 0.0000000000000000 -0.0101430343307530 0.0000000000000000 + -0.0000000000000021 0.0000000000000000 -0.0081775121522224 0.0000000000000000 0.0079899884223502 0.0000000000000000 9 5 - -0.0004154624427379 0.0000000000000000 0.0012439381262113 0.0000000000000000 -0.0022873936225501 0.0000000000000000 - 0.0127928624961793 0.0000000000000000 -0.0007025897616796 0.0000000000000000 0.0006118410528863 0.0000000000000000 - -0.0050585024151207 0.0000000000000000 0.0031456369018495 0.0000000000000000 -0.0037626256179486 0.0000000000000000 + -0.0004154624427377 0.0000000000000000 0.0012439381262114 0.0000000000000000 -0.0022873936225497 0.0000000000000000 + 0.0127928624961785 0.0000000000000000 -0.0007025897616807 0.0000000000000000 0.0006118410528869 0.0000000000000000 + -0.0050585024151233 0.0000000000000000 0.0031456369018482 0.0000000000000000 -0.0037626256179473 0.0000000000000000 9 6 - -0.0004154624427379 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225502 0.0000000000000000 - -0.0127928624961698 0.0000000000000000 -0.0007025897616736 0.0000000000000000 0.0006118410528826 0.0000000000000000 - 0.0050585024151178 0.0000000000000000 0.0031456369018480 0.0000000000000000 -0.0037626256179476 0.0000000000000000 + -0.0004154624427377 0.0000000000000000 -0.0012439381262109 0.0000000000000000 0.0022873936225504 0.0000000000000000 + -0.0127928624961870 0.0000000000000000 -0.0007025897616859 0.0000000000000000 0.0006118410528900 0.0000000000000000 + 0.0050585024151253 0.0000000000000000 0.0031456369018488 0.0000000000000000 -0.0037626256179481 0.0000000000000000 9 7 - -0.0289738345959182 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.2820802915433079 0.0000000000000000 0.0884826303559113 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0527306161696215 0.0000000000000000 -0.0739447334126136 0.0000000000000000 + -0.0289738345959178 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000012 0.0000000000000000 -0.2820802915433014 0.0000000000000000 0.0884826303559652 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0527306161696210 0.0000000000000000 -0.0739447334126267 0.0000000000000000 9 8 - 0.0037861455182860 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0103751426308790 0.0000000000000000 0.0049287602283916 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0282119025677916 0.0000000000000000 -0.0033792838522586 0.0000000000000000 + 0.0037861455182860 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0103751426308778 0.0000000000000000 0.0049287602283372 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0282119025677899 0.0000000000000000 -0.0033792838522438 0.0000000000000000 9 9 - 0.0365782981378753 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.2729248902175091 0.0000000000000000 -0.0713458205553474 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 -0.0713458205553474 0.0000000000000000 0.0798291225288899 0.0000000000000000 + 0.0365782981378746 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.2729248902174979 0.0000000000000000 -0.0713458205553443 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0713458205553443 0.0000000000000000 0.0798291225288868 0.0000000000000000 9 10 - -0.0193793176120044 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - 0.0000000000000012 0.0000000000000000 0.0128264092257565 0.0000000000000000 -0.0093892601393074 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0108019320579830 0.0000000000000000 -0.0127958810116057 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000004 0.0000000000000000 + 0.0000000000000168 0.0000000000000000 0.0128264092257469 0.0000000000000000 -0.0093892601393149 0.0000000000000000 + -0.0000000000000043 0.0000000000000000 -0.0108019320579828 0.0000000000000000 -0.0127958810116053 0.0000000000000000 9 11 - 0.0043670482201910 0.0000000000000000 0.0062527546419649 0.0000000000000000 -0.0032245610064173 0.0000000000000000 - 0.0073649825438672 0.0000000000000000 -0.0050060184798409 0.0000000000000000 -0.0046134194019425 0.0000000000000000 - -0.0069798143243305 0.0000000000000000 0.0003322634792045 0.0000000000000000 0.0072531804468958 0.0000000000000000 + 0.0043670482201912 0.0000000000000000 0.0062527546419648 0.0000000000000000 -0.0032245610064176 0.0000000000000000 + 0.0073649825438555 0.0000000000000000 -0.0050060184798330 0.0000000000000000 -0.0046134194019374 0.0000000000000000 + -0.0069798143243268 0.0000000000000000 0.0003322634792038 0.0000000000000000 0.0072531804468955 0.0000000000000000 9 12 - 0.0043670482201911 0.0000000000000000 -0.0062527546419648 0.0000000000000000 0.0032245610064173 0.0000000000000000 - -0.0073649825438686 0.0000000000000000 -0.0050060184798417 0.0000000000000000 -0.0046134194019431 0.0000000000000000 - 0.0069798143243309 0.0000000000000000 0.0003322634792048 0.0000000000000000 0.0072531804468959 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 -0.0062527546419644 0.0000000000000000 0.0032245610064169 0.0000000000000000 + -0.0073649825438707 0.0000000000000000 -0.0050060184798421 0.0000000000000000 -0.0046134194019431 0.0000000000000000 + 0.0069798143243305 0.0000000000000000 0.0003322634792066 0.0000000000000000 0.0072531804468967 0.0000000000000000 10 1 - 0.0078082955673487 0.0000000000000000 -0.0000000000000009 0.0000000000000000 0.0000000000000013 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 0.0119074076296486 0.0000000000000000 0.0044778895271588 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0034942738523640 0.0000000000000000 -0.0367974389513956 0.0000000000000000 + 0.0078082955673492 0.0000000000000000 -0.0000000000000098 0.0000000000000000 0.0000000000000062 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0119074076296619 0.0000000000000000 0.0044778895271254 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0034942738523529 0.0000000000000000 -0.0367974389514191 0.0000000000000000 10 2 - -0.0158629633765114 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000013 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0142572303934381 0.0000000000000000 -0.0110402408679937 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0025026894102803 0.0000000000000000 0.0060798140623741 0.0000000000000000 + -0.0158629633765122 0.0000000000000000 0.0000000000000009 0.0000000000000000 -0.0000000000000098 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0142572303934430 0.0000000000000000 -0.0110402408679630 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0025026894102770 0.0000000000000000 0.0060798140623970 0.0000000000000000 10 3 - -0.0001599946965682 0.0000000000000000 0.0000000000000017 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0004054668963155 0.0000000000000000 0.0081775121522179 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0101430343307504 0.0000000000000000 0.0079899884223468 0.0000000000000000 + -0.0001599946965675 0.0000000000000000 0.0000000000000108 0.0000000000000000 0.0000000000000027 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0004054668963032 0.0000000000000000 0.0081775121522188 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0101430343307397 0.0000000000000000 0.0079899884223466 0.0000000000000000 10 4 - 0.0039008143595921 0.0000000000000000 -0.0000000000000011 0.0000000000000000 0.0000000000000018 0.0000000000000000 - 0.0000000000000036 0.0000000000000000 -0.0008485805837898 0.0000000000000000 0.0030686652718395 0.0000000000000000 - 0.0000000000000022 0.0000000000000000 -0.0030686652718417 0.0000000000000000 -0.0082838582595758 0.0000000000000000 + 0.0039008143595916 0.0000000000000000 -0.0000000000000083 0.0000000000000000 0.0000000000000054 0.0000000000000000 + -0.0000000000000061 0.0000000000000000 -0.0008485805837908 0.0000000000000000 0.0030686652718403 0.0000000000000000 + -0.0000000000000035 0.0000000000000000 -0.0030686652718389 0.0000000000000000 -0.0082838582595774 0.0000000000000000 10 5 - 0.0005529569781392 0.0000000000000000 0.0006881224323696 0.0000000000000000 -0.0009938270034991 0.0000000000000000 - -0.0004060563613305 0.0000000000000000 0.0017449768597158 0.0000000000000000 -0.0014852637978356 0.0000000000000000 - 0.0028171359308453 0.0000000000000000 -0.0003308975272935 0.0000000000000000 0.0019808748951309 0.0000000000000000 + 0.0005529569781328 0.0000000000000000 0.0006881224323734 0.0000000000000000 -0.0009938270035016 0.0000000000000000 + -0.0004060563613261 0.0000000000000000 0.0017449768597135 0.0000000000000000 -0.0014852637978343 0.0000000000000000 + 0.0028171359308506 0.0000000000000000 -0.0003308975272962 0.0000000000000000 0.0019808748951331 0.0000000000000000 10 6 - 0.0005529569781416 0.0000000000000000 -0.0006881224323673 0.0000000000000000 0.0009938270034978 0.0000000000000000 - 0.0004060563613270 0.0000000000000000 0.0017449768597137 0.0000000000000000 -0.0014852637978346 0.0000000000000000 - -0.0028171359308475 0.0000000000000000 -0.0003308975272948 0.0000000000000000 0.0019808748951320 0.0000000000000000 + 0.0005529569781477 0.0000000000000000 -0.0006881224323630 0.0000000000000000 0.0009938270034948 0.0000000000000000 + 0.0004060563613318 0.0000000000000000 0.0017449768597169 0.0000000000000000 -0.0014852637978361 0.0000000000000000 + -0.0028171359308472 0.0000000000000000 -0.0003308975272943 0.0000000000000000 0.0019808748951315 0.0000000000000000 10 7 - -0.0373686571560808 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000007 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0336428001202010 0.0000000000000000 0.0044397818519533 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0041894809945677 0.0000000000000000 0.0041303780996524 0.0000000000000000 + -0.0373686571560842 0.0000000000000000 -0.0000000000000166 0.0000000000000000 0.0000000000000164 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0336428001201888 0.0000000000000000 0.0044397818519304 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0041894809945779 0.0000000000000000 0.0041303780996350 0.0000000000000000 10 8 - -0.0149643881777212 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000006 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0085647327830304 0.0000000000000000 -0.0009466269410047 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0044261389355772 0.0000000000000000 0.0064890897647942 0.0000000000000000 + -0.0149643881777223 0.0000000000000000 0.0000000000000008 0.0000000000000000 -0.0000000000000108 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0085647327830325 0.0000000000000000 -0.0009466269409857 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0044261389355786 0.0000000000000000 0.0064890897648090 0.0000000000000000 10 9 - -0.0193793176120044 0.0000000000000000 0.0000000000000012 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0128264092257565 0.0000000000000000 -0.0108019320579830 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0093892601393074 0.0000000000000000 -0.0127958810116057 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 0.0000000000000168 0.0000000000000000 -0.0000000000000043 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0128264092257469 0.0000000000000000 -0.0108019320579828 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0093892601393149 0.0000000000000000 -0.0127958810116053 0.0000000000000000 10 10 - 0.4834443802760763 0.0000000000000000 0.0000000000000016 0.0000000000000000 0.0000000000000013 0.0000000000000000 - 0.0000000000000016 0.0000000000000000 0.2588422264936532 0.0000000000000000 0.1308110718530623 0.0000000000000000 - 0.0000000000000013 0.0000000000000000 0.1308110718530623 0.0000000000000000 0.1639030178691310 0.0000000000000000 + 0.4834443802761175 0.0000000000000000 -0.0000000000000057 0.0000000000000000 -0.0000000000000077 0.0000000000000000 + -0.0000000000000057 0.0000000000000000 0.2588422264936652 0.0000000000000000 0.1308110718530727 0.0000000000000000 + -0.0000000000000077 0.0000000000000000 0.1308110718530727 0.0000000000000000 0.1639030178691395 0.0000000000000000 10 11 - -0.2042620382021526 0.0000000000000000 0.1111612914471928 0.0000000000000000 0.0678004081048895 0.0000000000000000 - 0.0961493426419440 0.0000000000000000 -0.1150790588758461 0.0000000000000000 -0.0626077946132162 0.0000000000000000 - 0.0680988033808408 0.0000000000000000 -0.0633030715249443 0.0000000000000000 -0.0673384314526791 0.0000000000000000 + -0.2042620382021767 0.0000000000000000 0.1111612914472088 0.0000000000000000 0.0678004081048995 0.0000000000000000 + 0.0961493426419468 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0626077946132227 0.0000000000000000 + 0.0680988033808463 0.0000000000000000 -0.0633030715249527 0.0000000000000000 -0.0673384314526849 0.0000000000000000 10 12 - -0.2042620382021536 0.0000000000000000 -0.1111612914471934 0.0000000000000000 -0.0678004081048903 0.0000000000000000 - -0.0961493426419457 0.0000000000000000 -0.1150790588758470 0.0000000000000000 -0.0626077946132170 0.0000000000000000 - -0.0680988033808421 0.0000000000000000 -0.0633030715249447 0.0000000000000000 -0.0673384314526796 0.0000000000000000 + -0.2042620382021664 0.0000000000000000 -0.1111612914472010 0.0000000000000000 -0.0678004081048943 0.0000000000000000 + -0.0961493426419414 0.0000000000000000 -0.1150790588758519 0.0000000000000000 -0.0626077946132206 0.0000000000000000 + -0.0680988033808390 0.0000000000000000 -0.0633030715249484 0.0000000000000000 -0.0673384314526822 0.0000000000000000 11 1 - -0.0014003952261876 0.0000000000000000 -0.0091891495399408 0.0000000000000000 -0.0007217572183677 0.0000000000000000 - 0.0002449744821631 0.0000000000000000 -0.0030108060126835 0.0000000000000000 -0.0035553985811712 0.0000000000000000 - -0.0015206472447120 0.0000000000000000 -0.0014211831836429 0.0000000000000000 -0.0025275585661434 0.0000000000000000 + -0.0014003952261865 0.0000000000000000 -0.0091891495399320 0.0000000000000000 -0.0007217572183904 0.0000000000000000 + 0.0002449744821627 0.0000000000000000 -0.0030108060126923 0.0000000000000000 -0.0035553985811520 0.0000000000000000 + -0.0015206472447127 0.0000000000000000 -0.0014211831836486 0.0000000000000000 -0.0025275585661311 0.0000000000000000 11 2 - 0.0025040980237171 0.0000000000000000 0.0006119532508347 0.0000000000000000 -0.0017406728581402 0.0000000000000000 - -0.0023164619816242 0.0000000000000000 0.0011510144726797 0.0000000000000000 0.0039561444257060 0.0000000000000000 - 0.0038518265447293 0.0000000000000000 -0.0004056725610977 0.0000000000000000 0.0031229275970346 0.0000000000000000 + 0.0025040980237178 0.0000000000000000 0.0006119532508360 0.0000000000000000 -0.0017406728581125 0.0000000000000000 + -0.0023164619816246 0.0000000000000000 0.0011510144726826 0.0000000000000000 0.0039561444256876 0.0000000000000000 + 0.0038518265447292 0.0000000000000000 -0.0004056725610960 0.0000000000000000 0.0031229275970231 0.0000000000000000 11 3 - -0.0004154624427384 0.0000000000000000 0.0127928624961799 0.0000000000000000 0.0050585024151256 0.0000000000000000 - 0.0012439381262115 0.0000000000000000 -0.0007025897616815 0.0000000000000000 -0.0031456369018455 0.0000000000000000 - 0.0022873936225502 0.0000000000000000 -0.0006118410528876 0.0000000000000000 -0.0037626256179457 0.0000000000000000 + -0.0004154624427386 0.0000000000000000 0.0127928624961676 0.0000000000000000 0.0050585024151195 0.0000000000000000 + 0.0012439381262115 0.0000000000000000 -0.0007025897616733 0.0000000000000000 -0.0031456369018457 0.0000000000000000 + 0.0022873936225504 0.0000000000000000 -0.0006118410528820 0.0000000000000000 -0.0037626256179462 0.0000000000000000 11 4 - 0.0005529569781427 0.0000000000000000 -0.0004060563613283 0.0000000000000000 -0.0028171359308493 0.0000000000000000 - 0.0006881224323673 0.0000000000000000 0.0017449768597155 0.0000000000000000 0.0003308975272946 0.0000000000000000 - 0.0009938270034980 0.0000000000000000 0.0014852637978348 0.0000000000000000 0.0019808748951319 0.0000000000000000 + 0.0005529569781352 0.0000000000000000 -0.0004060563613260 0.0000000000000000 -0.0028171359308501 0.0000000000000000 + 0.0006881224323724 0.0000000000000000 0.0017449768597134 0.0000000000000000 0.0003308975272960 0.0000000000000000 + 0.0009938270035009 0.0000000000000000 0.0014852637978343 0.0000000000000000 0.0019808748951330 0.0000000000000000 11 5 - -0.0001947154534084 0.0000000000000000 0.0001055444019349 0.0000000000000000 0.0008285855530526 0.0000000000000000 - 0.0001055444019346 0.0000000000000000 -0.0022624521874647 0.0000000000000000 0.0020902638812482 0.0000000000000000 - -0.0008285855530526 0.0000000000000000 -0.0020902638812477 0.0000000000000000 0.0008479800149238 0.0000000000000000 + -0.0001947154534015 0.0000000000000000 0.0001055444019307 0.0000000000000000 0.0008285855530550 0.0000000000000000 + 0.0001055444019307 0.0000000000000000 -0.0022624521874621 0.0000000000000000 0.0020902638812465 0.0000000000000000 + -0.0008285855530553 0.0000000000000000 -0.0020902638812465 0.0000000000000000 0.0008479800149223 0.0000000000000000 11 6 - -0.0020226399972419 0.0000000000000000 -0.0002383182140796 0.0000000000000000 0.0001011648438943 0.0000000000000000 - 0.0002383182140798 0.0000000000000000 0.0000601515309644 0.0000000000000000 0.0001507007232535 0.0000000000000000 - 0.0001011648438941 0.0000000000000000 -0.0001507007232528 0.0000000000000000 -0.0022331838997253 0.0000000000000000 + -0.0020226399972413 0.0000000000000000 -0.0002383182140795 0.0000000000000000 0.0001011648438943 0.0000000000000000 + 0.0002383182140788 0.0000000000000000 0.0000601515309641 0.0000000000000000 0.0001507007232531 0.0000000000000000 + 0.0001011648438937 0.0000000000000000 -0.0001507007232533 0.0000000000000000 -0.0022331838997253 0.0000000000000000 11 7 - 0.0079739154089300 0.0000000000000000 -0.0100652146645724 0.0000000000000000 0.0036706343437468 0.0000000000000000 - -0.0168418597307738 0.0000000000000000 -0.0099918936929086 0.0000000000000000 0.0005259246072739 0.0000000000000000 - -0.0106690755761894 0.0000000000000000 0.0069122209429022 0.0000000000000000 -0.0156150191112137 0.0000000000000000 + 0.0079739154089322 0.0000000000000000 -0.0100652146645610 0.0000000000000000 0.0036706343437197 0.0000000000000000 + -0.0168418597307750 0.0000000000000000 -0.0099918936929192 0.0000000000000000 0.0005259246072899 0.0000000000000000 + -0.0106690755761902 0.0000000000000000 0.0069122209428956 0.0000000000000000 -0.0156150191112043 0.0000000000000000 11 8 - 0.0053960771921639 0.0000000000000000 -0.0041883714492635 0.0000000000000000 -0.0052382113260885 0.0000000000000000 - -0.0027777266316766 0.0000000000000000 0.0037383917967296 0.0000000000000000 -0.0007249474944318 0.0000000000000000 - 0.0010754919735285 0.0000000000000000 0.0001605357525130 0.0000000000000000 -0.0008206821613036 0.0000000000000000 + 0.0053960771921648 0.0000000000000000 -0.0041883714492628 0.0000000000000000 -0.0052382113260687 0.0000000000000000 + -0.0027777266316773 0.0000000000000000 0.0037383917967314 0.0000000000000000 -0.0007249474944456 0.0000000000000000 + 0.0010754919735284 0.0000000000000000 0.0001605357525138 0.0000000000000000 -0.0008206821613118 0.0000000000000000 11 9 - 0.0043670482201910 0.0000000000000000 0.0073649825438672 0.0000000000000000 -0.0069798143243305 0.0000000000000000 - 0.0062527546419649 0.0000000000000000 -0.0050060184798409 0.0000000000000000 0.0003322634792045 0.0000000000000000 - -0.0032245610064173 0.0000000000000000 -0.0046134194019425 0.0000000000000000 0.0072531804468958 0.0000000000000000 + 0.0043670482201912 0.0000000000000000 0.0073649825438555 0.0000000000000000 -0.0069798143243268 0.0000000000000000 + 0.0062527546419648 0.0000000000000000 -0.0050060184798330 0.0000000000000000 0.0003322634792038 0.0000000000000000 + -0.0032245610064176 0.0000000000000000 -0.0046134194019374 0.0000000000000000 0.0072531804468955 0.0000000000000000 11 10 - -0.2042620382021526 0.0000000000000000 0.0961493426419440 0.0000000000000000 0.0680988033808408 0.0000000000000000 - 0.1111612914471928 0.0000000000000000 -0.1150790588758461 0.0000000000000000 -0.0633030715249443 0.0000000000000000 - 0.0678004081048895 0.0000000000000000 -0.0626077946132162 0.0000000000000000 -0.0673384314526791 0.0000000000000000 + -0.2042620382021767 0.0000000000000000 0.0961493426419468 0.0000000000000000 0.0680988033808463 0.0000000000000000 + 0.1111612914472088 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0633030715249527 0.0000000000000000 + 0.0678004081048995 0.0000000000000000 -0.0626077946132227 0.0000000000000000 -0.0673384314526849 0.0000000000000000 11 11 - 0.2174594979186411 0.0000000000000000 -0.0954682304260313 0.0000000000000000 -0.0600636707989624 0.0000000000000000 - -0.0954682304260313 0.0000000000000000 0.1104252604741455 0.0000000000000000 0.0503426131734423 0.0000000000000000 - -0.0600636707989624 0.0000000000000000 0.0503426131734423 0.0000000000000000 0.0677190190410544 0.0000000000000000 + 0.2174594979186612 0.0000000000000000 -0.0954682304260405 0.0000000000000000 -0.0600636707989678 0.0000000000000000 + -0.0954682304260405 0.0000000000000000 0.1104252604741556 0.0000000000000000 0.0503426131734489 0.0000000000000000 + -0.0600636707989678 0.0000000000000000 0.0503426131734489 0.0000000000000000 0.0677190190410586 0.0000000000000000 11 12 - -0.0299583471230203 0.0000000000000000 0.0025306649736144 0.0000000000000000 -0.0001964280885629 0.0000000000000000 - -0.0025306649736143 0.0000000000000000 0.0189330240079743 0.0000000000000000 0.0130002466230889 0.0000000000000000 - 0.0001964280885632 0.0000000000000000 0.0130002466230887 0.0000000000000000 0.0113735279572449 0.0000000000000000 + -0.0299583471230183 0.0000000000000000 0.0025306649736190 0.0000000000000000 -0.0001964280885598 0.0000000000000000 + -0.0025306649736197 0.0000000000000000 0.0189330240079756 0.0000000000000000 0.0130002466230897 0.0000000000000000 + 0.0001964280885593 0.0000000000000000 0.0130002466230899 0.0000000000000000 0.0113735279572460 0.0000000000000000 12 1 - -0.0014003952261865 0.0000000000000000 0.0091891495399413 0.0000000000000000 0.0007217572183663 0.0000000000000000 - -0.0002449744821626 0.0000000000000000 -0.0030108060126830 0.0000000000000000 -0.0035553985811718 0.0000000000000000 - 0.0015206472447127 0.0000000000000000 -0.0014211831836424 0.0000000000000000 -0.0025275585661437 0.0000000000000000 + -0.0014003952261877 0.0000000000000000 0.0091891495399398 0.0000000000000000 0.0007217572183844 0.0000000000000000 + -0.0002449744821632 0.0000000000000000 -0.0030108060126873 0.0000000000000000 -0.0035553985811554 0.0000000000000000 + 0.0015206472447118 0.0000000000000000 -0.0014211831836459 0.0000000000000000 -0.0025275585661337 0.0000000000000000 12 2 - 0.0025040980237175 0.0000000000000000 -0.0006119532508346 0.0000000000000000 0.0017406728581413 0.0000000000000000 - 0.0023164619816245 0.0000000000000000 0.0011510144726795 0.0000000000000000 0.0039561444257067 0.0000000000000000 - -0.0038518265447295 0.0000000000000000 -0.0004056725610978 0.0000000000000000 0.0031229275970351 0.0000000000000000 + 0.0025040980237174 0.0000000000000000 -0.0006119532508365 0.0000000000000000 0.0017406728581213 0.0000000000000000 + 0.0023164619816242 0.0000000000000000 0.0011510144726818 0.0000000000000000 0.0039561444256929 0.0000000000000000 + -0.0038518265447293 0.0000000000000000 -0.0004056725610958 0.0000000000000000 0.0031229275970264 0.0000000000000000 12 3 - -0.0004154624427382 0.0000000000000000 -0.0127928624961811 0.0000000000000000 -0.0050585024151258 0.0000000000000000 - -0.0012439381262114 0.0000000000000000 -0.0007025897616820 0.0000000000000000 -0.0031456369018459 0.0000000000000000 - -0.0022873936225504 0.0000000000000000 -0.0006118410528880 0.0000000000000000 -0.0037626256179460 0.0000000000000000 + -0.0004154624427386 0.0000000000000000 -0.0127928624961764 0.0000000000000000 -0.0050585024151214 0.0000000000000000 + -0.0012439381262117 0.0000000000000000 -0.0007025897616784 0.0000000000000000 -0.0031456369018474 0.0000000000000000 + -0.0022873936225502 0.0000000000000000 -0.0006118410528855 0.0000000000000000 -0.0037626256179467 0.0000000000000000 12 4 - 0.0005529569781372 0.0000000000000000 0.0004060563613291 0.0000000000000000 0.0028171359308479 0.0000000000000000 - -0.0006881224323707 0.0000000000000000 0.0017449768597162 0.0000000000000000 0.0003308975272938 0.0000000000000000 - -0.0009938270034998 0.0000000000000000 0.0014852637978353 0.0000000000000000 0.0019808748951319 0.0000000000000000 + 0.0005529569781447 0.0000000000000000 0.0004060563613329 0.0000000000000000 0.0028171359308458 0.0000000000000000 + -0.0006881224323656 0.0000000000000000 0.0017449768597176 0.0000000000000000 0.0003308975272935 0.0000000000000000 + -0.0009938270034969 0.0000000000000000 0.0014852637978365 0.0000000000000000 0.0019808748951310 0.0000000000000000 12 5 - -0.0020226399972382 0.0000000000000000 0.0002383182140771 0.0000000000000000 -0.0001011648438929 0.0000000000000000 - -0.0002383182140775 0.0000000000000000 0.0000601515309627 0.0000000000000000 0.0001507007232542 0.0000000000000000 - -0.0001011648438928 0.0000000000000000 -0.0001507007232539 0.0000000000000000 -0.0022331838997248 0.0000000000000000 + -0.0020226399972397 0.0000000000000000 0.0002383182140778 0.0000000000000000 -0.0001011648438931 0.0000000000000000 + -0.0002383182140782 0.0000000000000000 0.0000601515309634 0.0000000000000000 0.0001507007232540 0.0000000000000000 + -0.0001011648438934 0.0000000000000000 -0.0001507007232538 0.0000000000000000 -0.0022331838997249 0.0000000000000000 12 6 - -0.0001947154534065 0.0000000000000000 -0.0001055444019342 0.0000000000000000 -0.0008285855530532 0.0000000000000000 - -0.0001055444019336 0.0000000000000000 -0.0022624521874644 0.0000000000000000 0.0020902638812481 0.0000000000000000 - 0.0008285855530534 0.0000000000000000 -0.0020902638812476 0.0000000000000000 0.0008479800149232 0.0000000000000000 + -0.0001947154534122 0.0000000000000000 -0.0001055444019379 0.0000000000000000 -0.0008285855530506 0.0000000000000000 + -0.0001055444019377 0.0000000000000000 -0.0022624521874667 0.0000000000000000 0.0020902638812493 0.0000000000000000 + 0.0008285855530509 0.0000000000000000 -0.0020902638812491 0.0000000000000000 0.0008479800149247 0.0000000000000000 12 7 - 0.0079739154089307 0.0000000000000000 0.0100652146645733 0.0000000000000000 -0.0036706343437474 0.0000000000000000 - 0.0168418597307742 0.0000000000000000 -0.0099918936929082 0.0000000000000000 0.0005259246072736 0.0000000000000000 - 0.0106690755761898 0.0000000000000000 0.0069122209429026 0.0000000000000000 -0.0156150191112139 0.0000000000000000 + 0.0079739154089311 0.0000000000000000 0.0100652146645760 0.0000000000000000 -0.0036706343437346 0.0000000000000000 + 0.0168418597307739 0.0000000000000000 -0.0099918936929097 0.0000000000000000 0.0005259246072804 0.0000000000000000 + 0.0106690755761901 0.0000000000000000 0.0069122209429013 0.0000000000000000 -0.0156150191112100 0.0000000000000000 12 8 - 0.0053960771921641 0.0000000000000000 0.0041883714492635 0.0000000000000000 0.0052382113260880 0.0000000000000000 - 0.0027777266316768 0.0000000000000000 0.0037383917967295 0.0000000000000000 -0.0007249474944322 0.0000000000000000 - -0.0010754919735287 0.0000000000000000 0.0001605357525129 0.0000000000000000 -0.0008206821613038 0.0000000000000000 + 0.0053960771921642 0.0000000000000000 0.0041883714492623 0.0000000000000000 0.0052382113260785 0.0000000000000000 + 0.0027777266316767 0.0000000000000000 0.0037383917967304 0.0000000000000000 -0.0007249474944396 0.0000000000000000 + -0.0010754919735285 0.0000000000000000 0.0001605357525137 0.0000000000000000 -0.0008206821613080 0.0000000000000000 12 9 - 0.0043670482201911 0.0000000000000000 -0.0073649825438686 0.0000000000000000 0.0069798143243309 0.0000000000000000 - -0.0062527546419648 0.0000000000000000 -0.0050060184798417 0.0000000000000000 0.0003322634792048 0.0000000000000000 - 0.0032245610064173 0.0000000000000000 -0.0046134194019431 0.0000000000000000 0.0072531804468959 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 -0.0073649825438707 0.0000000000000000 0.0069798143243305 0.0000000000000000 + -0.0062527546419644 0.0000000000000000 -0.0050060184798421 0.0000000000000000 0.0003322634792066 0.0000000000000000 + 0.0032245610064169 0.0000000000000000 -0.0046134194019431 0.0000000000000000 0.0072531804468967 0.0000000000000000 12 10 - -0.2042620382021535 0.0000000000000000 -0.0961493426419457 0.0000000000000000 -0.0680988033808421 0.0000000000000000 - -0.1111612914471934 0.0000000000000000 -0.1150790588758470 0.0000000000000000 -0.0633030715249447 0.0000000000000000 - -0.0678004081048903 0.0000000000000000 -0.0626077946132170 0.0000000000000000 -0.0673384314526796 0.0000000000000000 + -0.2042620382021664 0.0000000000000000 -0.0961493426419414 0.0000000000000000 -0.0680988033808390 0.0000000000000000 + -0.1111612914472010 0.0000000000000000 -0.1150790588758519 0.0000000000000000 -0.0633030715249484 0.0000000000000000 + -0.0678004081048943 0.0000000000000000 -0.0626077946132206 0.0000000000000000 -0.0673384314526822 0.0000000000000000 12 11 - -0.0299583471230203 0.0000000000000000 -0.0025306649736143 0.0000000000000000 0.0001964280885632 0.0000000000000000 - 0.0025306649736144 0.0000000000000000 0.0189330240079743 0.0000000000000000 0.0130002466230887 0.0000000000000000 - -0.0001964280885629 0.0000000000000000 0.0130002466230889 0.0000000000000000 0.0113735279572449 0.0000000000000000 + -0.0299583471230183 0.0000000000000000 -0.0025306649736197 0.0000000000000000 0.0001964280885593 0.0000000000000000 + 0.0025306649736190 0.0000000000000000 0.0189330240079755 0.0000000000000000 0.0130002466230899 0.0000000000000000 + -0.0001964280885598 0.0000000000000000 0.0130002466230897 0.0000000000000000 0.0113735279572460 0.0000000000000000 12 12 - 0.2174594979186426 0.0000000000000000 0.0954682304260319 0.0000000000000000 0.0600636707989632 0.0000000000000000 - 0.0954682304260319 0.0000000000000000 0.1104252604741460 0.0000000000000000 0.0503426131734426 0.0000000000000000 - 0.0600636707989632 0.0000000000000000 0.0503426131734426 0.0000000000000000 0.0677190190410547 0.0000000000000000 + 0.2174594979186514 0.0000000000000000 0.0954682304260336 0.0000000000000000 0.0600636707989635 0.0000000000000000 + 0.0954682304260336 0.0000000000000000 0.1104252604741508 0.0000000000000000 0.0503426131734461 0.0000000000000000 + 0.0600636707989635 0.0000000000000000 0.0503426131734461 0.0000000000000000 0.0677190190410570 0.0000000000000000 Diagonalizing the dynamical matrix q = ( 0.000000000000 0.000000000000 0.000000000000 ) *************************************************************************** - freq ( 1) = -0.00000048 [THz] = -0.00001607 [cm-1] -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) -( 0.288675 0.000000 0.000002 0.000000 -0.000002 0.000000 ) - freq ( 2) = -0.00000025 [THz] = -0.00000850 [cm-1] -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262445 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) -( 0.000003 0.000000 -0.262444 0.000000 0.120234 0.000000 ) - freq ( 3) = 0.00000041 [THz] = 0.00001360 [cm-1] -( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120233 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) -( -0.000000 0.000000 -0.120234 0.000000 -0.262445 0.000000 ) + freq ( 1) = -0.00000075 [THz] = -0.00002518 [cm-1] +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) +( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) + freq ( 2) = -0.00000033 [THz] = -0.00001105 [cm-1] +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) +( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) + freq ( 3) = 0.00000032 [THz] = 0.00001064 [cm-1] +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) +( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) freq ( 4) = 1.74178330 [THz] = 58.09962873 [cm-1] -( 0.000000 0.000000 0.300463 0.000000 -0.002787 0.000000 ) -( 0.000000 0.000000 0.166848 0.000000 0.011440 0.000000 ) -( 0.000000 0.000000 0.312940 0.000000 -0.065663 0.000000 ) -( 0.000000 0.000000 0.298008 0.000000 0.002144 0.000000 ) -( 0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) -( -0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) -( -0.000000 0.000000 -0.300463 0.000000 -0.002787 0.000000 ) -( -0.000000 0.000000 -0.166848 0.000000 0.011440 0.000000 ) -( -0.000000 0.000000 -0.312940 0.000000 -0.065663 0.000000 ) -( -0.000000 0.000000 -0.298008 0.000000 0.002144 0.000000 ) -( -0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) -( 0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) +( 0.000000 0.000000 -0.300463 0.000000 0.002787 0.000000 ) +( 0.000000 0.000000 -0.166848 0.000000 -0.011440 0.000000 ) +( 0.000000 0.000000 -0.312940 0.000000 0.065663 0.000000 ) +( 0.000000 0.000000 -0.298008 0.000000 -0.002144 0.000000 ) +( -0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) +( 0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) +( -0.000000 0.000000 0.300463 0.000000 0.002787 0.000000 ) +( -0.000000 0.000000 0.166848 0.000000 -0.011440 0.000000 ) +( -0.000000 0.000000 0.312940 0.000000 0.065663 0.000000 ) +( -0.000000 0.000000 0.298008 0.000000 -0.002144 0.000000 ) +( 0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) +( -0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) freq ( 5) = 1.75809446 [THz] = 58.64371051 [cm-1] -( -0.305440 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.126386 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.338635 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.305440 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.126386 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.338635 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.290653 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.301191 0.000000 0.017342 0.000000 0.069092 0.000000 ) ( -0.301191 0.000000 -0.017342 0.000000 -0.069092 0.000000 ) -( 0.305440 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.126386 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.338635 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.290653 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.305440 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.126386 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.338635 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) ( 0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) freq ( 6) = 4.65916041 [THz] = 155.41284058 [cm-1] -( -0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) -( -0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) -( -0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) -( 0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) -( -0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) -( 0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) -( -0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) -( -0.000000 0.000000 -0.043691 0.000000 -0.347361 0.000000 ) -( -0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) -( -0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) -( -0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) -( 0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) +( -0.000000 0.000000 -0.025422 0.000000 -0.354333 0.000000 ) +( -0.000000 0.000000 0.043691 0.000000 -0.347361 0.000000 ) +( -0.000000 0.000000 -0.098244 0.000000 -0.227269 0.000000 ) +( -0.000000 0.000000 0.034198 0.000000 0.348248 0.000000 ) +( 0.044152 0.000000 -0.042358 0.000000 0.173202 0.000000 ) +( -0.044152 0.000000 -0.042358 0.000000 0.173202 0.000000 ) +( -0.000000 0.000000 -0.025422 0.000000 0.354333 0.000000 ) +( -0.000000 0.000000 0.043691 0.000000 0.347361 0.000000 ) +( 0.000000 0.000000 -0.098244 0.000000 0.227269 0.000000 ) +( 0.000000 0.000000 0.034198 0.000000 -0.348248 0.000000 ) +( 0.044152 0.000000 -0.042358 0.000000 -0.173202 0.000000 ) +( -0.044152 0.000000 -0.042358 0.000000 -0.173202 0.000000 ) freq ( 7) = 6.03591072 [THz] = 201.33628095 [cm-1] ( 0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) @@ -698,47 +698,47 @@ Basis vectors ( 0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) ( 0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) freq ( 8) = 6.15949351 [THz] = 205.45855860 [cm-1] -( 0.000000 0.000000 0.203150 0.000000 0.219537 0.000000 ) -( -0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) -( -0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) -( -0.000000 0.000000 -0.209804 0.000000 -0.243059 0.000000 ) -( 0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) -( -0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) -( 0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) -( 0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) -( 0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) -( -0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) -( -0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) -( 0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) +( 0.000000 0.000000 -0.203150 0.000000 -0.219537 0.000000 ) +( 0.000000 0.000000 -0.278164 0.000000 -0.273652 0.000000 ) +( 0.000000 0.000000 -0.239679 0.000000 -0.256163 0.000000 ) +( -0.000000 0.000000 0.209804 0.000000 0.243059 0.000000 ) +( -0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) +( 0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) +( -0.000000 0.000000 0.203150 0.000000 -0.219537 0.000000 ) +( -0.000000 0.000000 0.278164 0.000000 -0.273652 0.000000 ) +( -0.000000 0.000000 0.239679 0.000000 -0.256163 0.000000 ) +( 0.000000 0.000000 -0.209804 0.000000 0.243059 0.000000 ) +( 0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) +( -0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) freq ( 9) = 6.29096533 [THz] = 209.84398575 [cm-1] -( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.336051 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) -( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) ( -0.358540 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.113174 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.133490 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) +( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) +( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.336051 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.301790 0.000000 -0.122269 0.000000 -0.088986 0.000000 ) ( 0.301790 0.000000 0.122269 0.000000 0.088986 0.000000 ) freq ( 10) = 6.49240646 [THz] = 216.56333753 [cm-1] -( -0.000000 0.000000 -0.011726 0.000000 -0.284473 0.000000 ) -( -0.000000 0.000000 0.002760 0.000000 -0.290652 0.000000 ) -( -0.000000 0.000000 -0.028179 0.000000 -0.250498 0.000000 ) -( 0.000000 0.000000 0.012114 0.000000 -0.301639 0.000000 ) -( -0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) -( 0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) -( -0.000000 0.000000 -0.011726 0.000000 0.284473 0.000000 ) -( -0.000000 0.000000 0.002760 0.000000 0.290652 0.000000 ) -( -0.000000 0.000000 -0.028179 0.000000 0.250498 0.000000 ) -( 0.000000 0.000000 0.012114 0.000000 0.301639 0.000000 ) -( -0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) -( 0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) +( -0.000000 0.000000 0.011726 0.000000 0.284473 0.000000 ) +( -0.000000 0.000000 -0.002760 0.000000 0.290652 0.000000 ) +( -0.000000 0.000000 0.028179 0.000000 0.250498 0.000000 ) +( 0.000000 0.000000 -0.012114 0.000000 0.301639 0.000000 ) +( 0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) +( -0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) +( -0.000000 0.000000 0.011726 0.000000 -0.284473 0.000000 ) +( -0.000000 0.000000 -0.002760 0.000000 -0.290652 0.000000 ) +( -0.000000 0.000000 0.028179 0.000000 -0.250498 0.000000 ) +( 0.000000 0.000000 -0.012114 0.000000 -0.301639 0.000000 ) +( 0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) +( -0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) freq ( 11) = 8.28300944 [THz] = 276.29141531 [cm-1] ( -0.000000 0.000000 0.338439 0.000000 -0.044008 0.000000 ) -( -0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) +( 0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) ( 0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) ( 0.000000 0.000000 -0.345335 0.000000 0.006237 0.000000 ) ( 0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) @@ -751,8 +751,8 @@ Basis vectors ( -0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) freq ( 12) = 8.43189918 [THz] = 281.25784182 [cm-1] ( -0.000000 0.000000 0.229760 0.000000 -0.213402 0.000000 ) -( -0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) -( 0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) +( 0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) +( -0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) ( 0.000000 0.000000 -0.236152 0.000000 0.212913 0.000000 ) ( 0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) ( -0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) @@ -763,135 +763,135 @@ Basis vectors ( -0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) ( 0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) freq ( 13) = 15.52715504 [THz] = 517.93006796 [cm-1] -( 0.003319 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.136710 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.394334 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.009417 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.003319 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.136710 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.394334 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.009417 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.177193 0.000000 0.356157 0.000000 0.067900 0.000000 ) ( 0.177193 0.000000 -0.356157 0.000000 -0.067900 0.000000 ) -( 0.003319 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.136710 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.394334 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.009417 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.003319 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.136710 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.394334 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.009417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.177193 0.000000 0.356157 0.000000 -0.067900 0.000000 ) ( 0.177193 0.000000 -0.356157 0.000000 0.067900 0.000000 ) freq ( 14) = 15.77685603 [THz] = 526.25919529 [cm-1] -( 0.000000 0.000000 0.006657 0.000000 0.008034 0.000000 ) -( 0.000000 0.000000 -0.432968 0.000000 0.015983 0.000000 ) -( -0.000000 0.000000 0.143749 0.000000 -0.426045 0.000000 ) -( 0.000000 0.000000 -0.004900 0.000000 -0.011633 0.000000 ) -( 0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) -( -0.003036 0.000000 0.130661 0.000000 0.194518 0.000000 ) -( -0.000000 0.000000 0.006657 0.000000 -0.008034 0.000000 ) -( -0.000000 0.000000 -0.432968 0.000000 -0.015983 0.000000 ) -( 0.000000 0.000000 0.143749 0.000000 0.426045 0.000000 ) -( 0.000000 0.000000 -0.004900 0.000000 0.011633 0.000000 ) -( 0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) -( -0.003036 0.000000 0.130661 0.000000 -0.194518 0.000000 ) +( 0.000000 0.000000 -0.006657 0.000000 -0.008034 0.000000 ) +( 0.000000 0.000000 0.432968 0.000000 -0.015983 0.000000 ) +( -0.000000 0.000000 -0.143749 0.000000 0.426045 0.000000 ) +( 0.000000 0.000000 0.004900 0.000000 0.011633 0.000000 ) +( -0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) +( 0.003036 0.000000 -0.130661 0.000000 -0.194518 0.000000 ) +( -0.000000 0.000000 -0.006657 0.000000 0.008034 0.000000 ) +( -0.000000 0.000000 0.432968 0.000000 0.015983 0.000000 ) +( 0.000000 0.000000 -0.143749 0.000000 -0.426045 0.000000 ) +( -0.000000 0.000000 0.004900 0.000000 -0.011633 0.000000 ) +( -0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) +( 0.003036 0.000000 -0.130661 0.000000 0.194518 0.000000 ) freq ( 15) = 15.80580280 [THz] = 527.22475550 [cm-1] -( -0.020053 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.114237 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.468968 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.000805 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.020053 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.114237 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.468968 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.000805 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.127463 0.000000 -0.299100 0.000000 -0.166134 0.000000 ) ( -0.127463 0.000000 0.299100 0.000000 0.166134 0.000000 ) -( 0.020053 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.114237 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.468968 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.000805 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.020053 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.114237 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.468968 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.000805 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) ( 0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) freq ( 16) = 16.34770861 [THz] = 545.30078498 [cm-1] ( 0.007401 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.375543 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.009605 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.005927 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.005927 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 -0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 0.380036 0.000000 ) ( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.375543 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.009605 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.005927 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.005927 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) freq ( 17) = 17.38212592 [THz] = 579.80522742 [cm-1] ( 0.000000 0.000000 -0.006663 0.000000 -0.018085 0.000000 ) -( 0.000000 0.000000 0.408134 0.000000 -0.010473 0.000000 ) +( -0.000000 0.000000 0.408134 0.000000 -0.010473 0.000000 ) ( -0.000000 0.000000 -0.163504 0.000000 0.439667 0.000000 ) -( 0.000000 0.000000 0.029278 0.000000 0.015379 0.000000 ) +( -0.000000 0.000000 0.029278 0.000000 0.015379 0.000000 ) ( -0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) ( 0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) -( 0.000000 0.000000 0.006663 0.000000 -0.018085 0.000000 ) +( -0.000000 0.000000 0.006663 0.000000 -0.018085 0.000000 ) ( 0.000000 0.000000 -0.408134 0.000000 -0.010473 0.000000 ) -( -0.000000 0.000000 0.163504 0.000000 0.439667 0.000000 ) +( 0.000000 0.000000 0.163504 0.000000 0.439667 0.000000 ) ( 0.000000 0.000000 -0.029278 0.000000 0.015379 0.000000 ) ( 0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) ( -0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) freq ( 18) = 18.97560951 [THz] = 632.95811128 [cm-1] -( -0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.643317 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.123298 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.015257 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.026207 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.643317 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.123298 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.015257 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) ( -0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) -( 0.026207 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.643317 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.015257 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.026207 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.123298 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.015257 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) ( 0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) freq ( 19) = 21.12523228 [THz] = 704.66179829 [cm-1] -( 0.013094 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.085920 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.044091 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.028235 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.013094 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.085920 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.044091 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.028235 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.234005 0.000000 -0.179515 0.000000 0.397327 0.000000 ) ( -0.234005 0.000000 0.179515 0.000000 -0.397327 0.000000 ) -( -0.013094 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.085920 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.044091 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.028235 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.013094 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.085920 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.044091 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.028235 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.234005 0.000000 0.179515 0.000000 0.397327 0.000000 ) ( 0.234005 0.000000 -0.179515 0.000000 -0.397327 0.000000 ) freq ( 20) = 21.48012875 [THz] = 716.49986854 [cm-1] -( 0.000000 0.000000 -0.023138 0.000000 -0.023077 0.000000 ) -( 0.000000 0.000000 0.258260 0.000000 -0.021831 0.000000 ) -( -0.000000 0.000000 -0.110150 0.000000 0.197757 0.000000 ) -( 0.000000 0.000000 -0.012521 0.000000 -0.033285 0.000000 ) -( 0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) -( -0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) -( -0.000000 0.000000 0.023138 0.000000 -0.023077 0.000000 ) -( -0.000000 0.000000 -0.258260 0.000000 -0.021831 0.000000 ) -( 0.000000 0.000000 0.110150 0.000000 0.197757 0.000000 ) -( -0.000000 0.000000 0.012521 0.000000 -0.033285 0.000000 ) -( -0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) -( 0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) +( 0.000000 0.000000 0.023138 0.000000 0.023077 0.000000 ) +( 0.000000 0.000000 -0.258260 0.000000 0.021831 0.000000 ) +( -0.000000 0.000000 0.110150 0.000000 -0.197757 0.000000 ) +( 0.000000 0.000000 0.012521 0.000000 0.033285 0.000000 ) +( -0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) +( 0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) +( -0.000000 0.000000 -0.023138 0.000000 0.023077 0.000000 ) +( -0.000000 0.000000 0.258260 0.000000 0.021831 0.000000 ) +( 0.000000 0.000000 -0.110150 0.000000 -0.197757 0.000000 ) +( -0.000000 0.000000 -0.012521 0.000000 0.033285 0.000000 ) +( 0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) +( -0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) freq ( 21) = 23.22408051 [THz] = 774.67182954 [cm-1] -( -0.005428 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.451089 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.300552 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.000234 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.005428 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.451089 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.300552 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.000234 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.034054 0.000000 -0.186115 0.000000 -0.259385 0.000000 ) ( -0.034054 0.000000 0.186115 0.000000 0.259385 0.000000 ) -( -0.005428 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.451089 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.300552 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.000234 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.005428 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.451089 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.300552 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.000234 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.034054 0.000000 -0.186115 0.000000 0.259385 0.000000 ) ( -0.034054 0.000000 0.186115 0.000000 -0.259385 0.000000 ) freq ( 22) = 23.36210667 [THz] = 779.27588592 [cm-1] -( -0.000000 0.000000 -0.018519 0.000000 -0.017965 0.000000 ) -( 0.000000 0.000000 0.267387 0.000000 -0.025126 0.000000 ) -( -0.000000 0.000000 -0.103166 0.000000 0.181808 0.000000 ) -( 0.000000 0.000000 -0.024217 0.000000 -0.033709 0.000000 ) -( 0.013518 0.000000 0.257005 0.000000 0.353071 0.000000 ) -( -0.013518 0.000000 0.257005 0.000000 0.353071 0.000000 ) -( 0.000000 0.000000 -0.018519 0.000000 0.017965 0.000000 ) -( 0.000000 0.000000 0.267387 0.000000 0.025126 0.000000 ) -( -0.000000 0.000000 -0.103166 0.000000 -0.181808 0.000000 ) -( 0.000000 0.000000 -0.024217 0.000000 0.033709 0.000000 ) -( 0.013518 0.000000 0.257005 0.000000 -0.353071 0.000000 ) -( -0.013518 0.000000 0.257005 0.000000 -0.353071 0.000000 ) +( -0.000000 0.000000 0.018519 0.000000 0.017965 0.000000 ) +( 0.000000 0.000000 -0.267387 0.000000 0.025126 0.000000 ) +( -0.000000 0.000000 0.103166 0.000000 -0.181808 0.000000 ) +( 0.000000 0.000000 0.024217 0.000000 0.033709 0.000000 ) +( -0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) +( 0.013518 0.000000 -0.257005 0.000000 -0.353071 0.000000 ) +( -0.000000 0.000000 0.018519 0.000000 -0.017965 0.000000 ) +( 0.000000 0.000000 -0.267387 0.000000 -0.025126 0.000000 ) +( -0.000000 0.000000 0.103166 0.000000 0.181808 0.000000 ) +( -0.000000 0.000000 0.024217 0.000000 -0.033709 0.000000 ) +( -0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) +( 0.013518 0.000000 -0.257005 0.000000 0.353071 0.000000 ) freq ( 23) = 23.82111353 [THz] = 794.58670445 [cm-1] ( 0.033391 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.247417 0.000000 0.000000 0.000000 -0.000000 0.000000 ) @@ -920,105 +920,105 @@ Basis vectors ( 0.107892 0.000000 -0.176896 0.000000 -0.114270 0.000000 ) freq ( 25) = 32.09428546 [THz] = 1070.54997601 [cm-1] ( -0.000000 0.000000 0.035654 0.000000 -0.024948 0.000000 ) -( -0.000000 0.000000 -0.496236 0.000000 -0.024837 0.000000 ) +( 0.000000 0.000000 -0.496236 0.000000 -0.024837 0.000000 ) ( 0.000000 0.000000 -0.120098 0.000000 0.436907 0.000000 ) ( -0.000000 0.000000 0.003481 0.000000 -0.011802 0.000000 ) ( -0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) ( 0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) ( -0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) -( -0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) +( 0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) ( 0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) ( -0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) ( 0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) ( -0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) freq ( 26) = 32.55854203 [THz] = 1086.03590588 [cm-1] ( -0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) -( -0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) +( 0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) ( 0.000000 0.000000 -0.103721 0.000000 0.347526 0.000000 ) -( -0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) +( 0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) ( -0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) -( -0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) +( 0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) ( 0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) ( -0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) ( 0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) ( -0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) freq ( 27) = 34.33677276 [THz] = 1145.35128984 [cm-1] ( -0.000000 0.000000 0.023259 0.000000 -0.023011 0.000000 ) -( -0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) +( 0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) ( 0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) -( -0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) +( 0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) -( -0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) -( 0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) +( 0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) +( -0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) ( 0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) -( -0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) +( 0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) freq ( 28) = 34.43427982 [THz] = 1148.60377497 [cm-1] -( -0.000000 0.000000 -0.002777 0.000000 0.003396 0.000000 ) -( -0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) -( -0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) -( -0.000000 0.000000 0.031764 0.000000 -0.019397 0.000000 ) -( -0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) -( 0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) -( -0.000000 0.000000 0.002777 0.000000 0.003396 0.000000 ) -( -0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) -( -0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) -( 0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) -( 0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) -( -0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) +( -0.000000 0.000000 0.002777 0.000000 -0.003396 0.000000 ) +( 0.000000 0.000000 -0.136805 0.000000 -0.007772 0.000000 ) +( 0.000000 0.000000 -0.017157 0.000000 0.165743 0.000000 ) +( -0.000000 0.000000 -0.031764 0.000000 0.019397 0.000000 ) +( 0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) +( -0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) +( -0.000000 0.000000 -0.002777 0.000000 -0.003396 0.000000 ) +( -0.000000 0.000000 0.136805 0.000000 -0.007772 0.000000 ) +( 0.000000 0.000000 0.017157 0.000000 0.165743 0.000000 ) +( 0.000000 0.000000 0.031764 0.000000 0.019397 0.000000 ) +( -0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) +( 0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) freq ( 29) = 58.49309377 [THz] = 1951.11931058 [cm-1] -( 0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) +( -0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) ( 0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) -( 0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) -( -0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) +( -0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) +( 0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) ( 0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) ( -0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) ( 0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) ( 0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) -( -0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) +( 0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) ( -0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) ( -0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) ( 0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) freq ( 30) = 58.64595875 [THz] = 1956.21833687 [cm-1] -( 0.000000 0.000000 0.038621 0.000000 0.009281 0.000000 ) -( 0.000000 0.000000 -0.029768 0.000000 0.049879 0.000000 ) -( 0.000000 0.000000 -0.559468 0.000000 -0.148460 0.000000 ) -( -0.000000 0.000000 0.018040 0.000000 -0.013870 0.000000 ) -( 0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) -( -0.216880 0.000000 -0.154994 0.000000 0.093183 0.000000 ) -( 0.000000 0.000000 0.038621 0.000000 -0.009281 0.000000 ) -( 0.000000 0.000000 -0.029768 0.000000 -0.049879 0.000000 ) -( -0.000000 0.000000 -0.559468 0.000000 0.148460 0.000000 ) -( -0.000000 0.000000 0.018040 0.000000 0.013870 0.000000 ) -( 0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) -( -0.216880 0.000000 -0.154994 0.000000 -0.093183 0.000000 ) +( 0.000000 0.000000 -0.038621 0.000000 -0.009281 0.000000 ) +( 0.000000 0.000000 0.029768 0.000000 -0.049879 0.000000 ) +( 0.000000 0.000000 0.559468 0.000000 0.148460 0.000000 ) +( -0.000000 0.000000 -0.018040 0.000000 0.013870 0.000000 ) +( -0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) +( 0.216880 0.000000 0.154994 0.000000 -0.093183 0.000000 ) +( 0.000000 0.000000 -0.038621 0.000000 0.009281 0.000000 ) +( 0.000000 0.000000 0.029768 0.000000 0.049879 0.000000 ) +( 0.000000 0.000000 0.559468 0.000000 -0.148460 0.000000 ) +( -0.000000 0.000000 -0.018040 0.000000 -0.013870 0.000000 ) +( -0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) +( 0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) freq ( 31) = 59.18441210 [THz] = 1974.17920491 [cm-1] -( -0.003846 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.003416 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.057236 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.003416 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.057236 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) -( -0.003846 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.035138 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.003416 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.057236 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.003846 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.057236 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) freq ( 32) = 59.64579843 [THz] = 1989.56939401 [cm-1] -( 0.004387 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.015191 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.055912 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.055912 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) ( 0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) -( -0.004387 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.012328 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.015191 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.015191 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.055912 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) ( -0.402838 0.000000 -0.249120 0.000000 -0.154587 0.000000 ) @@ -1030,48 +1030,48 @@ Basis vectors ( -0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) ( 0.017848 0.000000 -0.008103 0.000000 0.015175 0.000000 ) ( 0.000000 0.000000 0.043022 0.000000 -0.019555 0.000000 ) -( -0.000000 0.000000 -0.011017 0.000000 0.020659 0.000000 ) +( 0.000000 0.000000 -0.011017 0.000000 0.020659 0.000000 ) ( 0.000000 0.000000 -0.669201 0.000000 0.219427 0.000000 ) ( -0.000000 0.000000 -0.002372 0.000000 0.002514 0.000000 ) ( 0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) ( -0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) freq ( 34) = 63.16500883 [THz] = 2106.95760040 [cm-1] -( -0.000000 0.000000 -0.001416 0.000000 -0.045005 0.000000 ) -( -0.000000 0.000000 0.005022 0.000000 0.703766 0.000000 ) -( -0.000000 0.000000 0.015560 0.000000 0.013643 0.000000 ) -( 0.000000 0.000000 -0.003291 0.000000 0.001095 0.000000 ) -( -0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) -( 0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) -( 0.000000 0.000000 -0.001416 0.000000 0.045005 0.000000 ) -( -0.000000 0.000000 0.005022 0.000000 -0.703766 0.000000 ) -( 0.000000 0.000000 0.015560 0.000000 -0.013643 0.000000 ) -( -0.000000 0.000000 -0.003291 0.000000 -0.001095 0.000000 ) -( -0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) -( 0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) +( -0.000000 0.000000 0.001416 0.000000 0.045005 0.000000 ) +( -0.000000 0.000000 -0.005022 0.000000 -0.703766 0.000000 ) +( -0.000000 0.000000 -0.015560 0.000000 -0.013643 0.000000 ) +( 0.000000 0.000000 0.003291 0.000000 -0.001095 0.000000 ) +( 0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) +( -0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) +( 0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) +( 0.000000 0.000000 -0.005022 0.000000 0.703766 0.000000 ) +( 0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) +( -0.000000 0.000000 0.003291 0.000000 0.001095 0.000000 ) +( 0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) +( -0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) freq ( 35) = 63.58360137 [THz] = 2120.92034271 [cm-1] -( 0.000000 0.000000 -0.000415 0.000000 -0.010914 0.000000 ) -( 0.000000 0.000000 -0.020599 0.000000 0.158729 0.000000 ) -( -0.000000 0.000000 -0.004820 0.000000 0.005043 0.000000 ) -( -0.000000 0.000000 0.030334 0.000000 -0.019763 0.000000 ) -( 0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) -( -0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) -( 0.000000 0.000000 0.000415 0.000000 -0.010914 0.000000 ) -( 0.000000 0.000000 0.020599 0.000000 0.158729 0.000000 ) -( 0.000000 0.000000 0.004820 0.000000 0.005043 0.000000 ) -( -0.000000 0.000000 -0.030334 0.000000 -0.019763 0.000000 ) -( -0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) -( 0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) +( 0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) +( 0.000000 0.000000 0.020599 0.000000 -0.158729 0.000000 ) +( 0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) +( -0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) +( -0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) +( 0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) +( -0.000000 0.000000 -0.000415 0.000000 0.010914 0.000000 ) +( -0.000000 0.000000 -0.020599 0.000000 -0.158729 0.000000 ) +( -0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) +( 0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) +( 0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) +( -0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) freq ( 36) = 65.67178765 [THz] = 2190.57472950 [cm-1] -( -0.000000 0.000000 -0.022668 0.000000 -0.009602 0.000000 ) -( -0.000000 0.000000 -0.012953 0.000000 0.011116 0.000000 ) -( -0.000000 0.000000 0.369990 0.000000 0.144128 0.000000 ) -( 0.000000 0.000000 0.024431 0.000000 -0.017416 0.000000 ) -( 0.338616 0.000000 -0.192504 0.000000 0.136199 0.000000 ) -( -0.338616 0.000000 -0.192504 0.000000 0.136199 0.000000 ) -( -0.000000 0.000000 -0.022668 0.000000 0.009602 0.000000 ) -( -0.000000 0.000000 -0.012953 0.000000 -0.011116 0.000000 ) -( -0.000000 0.000000 0.369990 0.000000 -0.144128 0.000000 ) -( 0.000000 0.000000 0.024431 0.000000 0.017416 0.000000 ) -( 0.338616 0.000000 -0.192504 0.000000 -0.136199 0.000000 ) -( -0.338616 0.000000 -0.192504 0.000000 -0.136199 0.000000 ) +( -0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) +( -0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) +( 0.000000 0.000000 -0.369990 0.000000 -0.144128 0.000000 ) +( 0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) +( -0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) +( 0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) +( -0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) +( -0.000000 0.000000 0.012953 0.000000 0.011116 0.000000 ) +( -0.000000 0.000000 -0.369990 0.000000 0.144128 0.000000 ) +( 0.000000 0.000000 -0.024431 0.000000 -0.017416 0.000000 ) +( -0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) +( 0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) *************************************************************************** diff --git a/tests/TestSupercellDiagonalizeQ/test_diagonalize_supercell_q.py b/tests/TestSupercellDiagonalizeQ/test_diagonalize_supercell_q.py new file mode 100644 index 00000000..3a429d72 --- /dev/null +++ b/tests/TestSupercellDiagonalizeQ/test_diagonalize_supercell_q.py @@ -0,0 +1,49 @@ +import sys, os +import numpy as np +import cellconstructor as CC, cellconstructor.Phonons +import ase, ase.calculators, ase.calculators.emt + +def test_diagonalize_supercell_q(verbose = False): + # Fix the seed to assure reproducibility + np.random.seed(0) + + # Set the current working directory + total_path = os.path.dirname(os.path.abspath(__file__)) + os.chdir(total_path) + + supercell = (4, 4, 4) + # Load gold but build a crazy dynamical matrix just to test a low symmetry group + # R3m (without inversion) + struct = CC.Structure.Structure(2) + a_param = 4 + struct.unit_cell = np.eye(3) * a_param + struct.atoms[0] = "Au" + struct.atoms[1] = "Ag" + struct.coords[1, :] = np.ones(3) * a_param / 2 + 0.2 + struct.build_masses() + + calculator = ase.calculators.emt.EMT() + + # Get a dynamical matrix + dynmat = CC.Phonons.compute_phonons_finite_displacements( + struct, + calculator, + supercell = supercell) + + dynmat.AdjustQStar() + dynmat.Symmetrize() + dynmat.ForcePositiveDefinite() + + # Now test the polarization and frequency diagonalization + w, pols, wq, pq = dynmat.DiagonalizeSupercell(return_qmodes = True) + + nq = len(dynmat.q_tot) + for i in range(nq): + w_test, p_test = dynmat.DyagDinQ(i) + + assert np.allclose(wq[:, i], w_test) + assert np.allclose(pq[:, :, i], p_test) + + +if __name__ == "__main__": + test_diagonalize_supercell_q(verbose = True) \ No newline at end of file From d1c0a77b40e220d5d0cad715c58c9662d7d17da8 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 5 Jul 2023 14:52:41 +0200 Subject: [PATCH 151/204] Moved function --- cellconstructor/Spectral.py | 353 ++++++++++++++++++------------------ 1 file changed, 177 insertions(+), 176 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index c9a482ee..392f6422 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3246,182 +3246,6 @@ def get_perturb_dynamic_correction_along_path(dyn, tensor3, print(" Results printed in "+filename_freq_dyn+'_'+'[smear].dat') print(" ") -#------------------------------------------------------------------------------- -def get_dielectric_function(dyn, k_grid, T, e0 ,e1, de, ie, ismear - , sm0, sm0_id - , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... -# ( tensor3,omega,N,nu,q, d_bubble_cart, ener, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) - - """ - Input data: - epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) - a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() - b = atom b -> Z(b) atomic number of atom b - q : ndarray(size = 3) = The q point at which compute the bubble. <-- this id Gamma so (0,0,0) or np.zeros(3) - tensor3 : Tensor3() = The third order force constant matrix - k_grid : list(len = 3) = The integration grid on the Brillouin zone - T : Temperature - ener : energies - nsm : integer = Number of smearings to consider (default = 1) - e1, de ,e0: float = The list of energies considered (cm-1), from e0 to e1, with interval de - sm0_id, sm1_id : float = Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity - ie, ismear = index of energies and smear, not needed? for ie in range(np.arange(e0,e1,de).shape[0]); for ismear in range(np.arange(sm0_id,sm1_id).shape[0]) - --------- - Z() = Born effective charge ---> Phonon.Phonon.effective_charges() - M() = Atomic masses - e() = polarization vector - omega_nu = resonant frequency - Big_omega = Unit cell Volume - Output: - epsilon = Dielectric function (SI) - """ - #electric_charge = 4.803e-10 #Fr (CGS) - electric_charge = 1.602176462e-19 #C (SI) - q = np.zeros(3) - twopi = 2*np.pi - # Prepare the tensor2 and obtain masses - tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) - tensor2.SetupFromPhonons(dyn) - tensor2.Center() - - tensor3 = CC.ForceTensor.Tensor3(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) - structure = tensor2.unitcell_structure - alat=tensor2.unitcell_structure.unit_cell - # a,b,c volume calculation - # d = np.cross(b,c) - # proj_a = (np.dot(a,d)/np.sqrt(sum(d**2))**2)*d - # Volume = np.linalg.norm(a)*np.linalg.norm(d) - Big_omega = np.abs(np.linalg.det(alat)) # The unit cell volume is the determinant of the matrix defined by the unit cell vectors - M =structure.get_masses_array() - #prepare the dielctric tensor of vacuum and effective charges - Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) - epsilon_inf = Fonon.dielectric_tensor #(3,3) - Z = Fonon.effective_charges #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) - # ======================= Energy & Smearing ========================================== - # energy in input is in cm-1 - # smearing in input is in cm-1 - # converto to Ry - - # list of energies - energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM - ne=energies.shape[0] - # list of smearing - if nsm == 1 : - sm1=sm0 - sm1_id=sm0_id - smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM - smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM - # ========================================================================================== - #---------------------------------------------------------------- - def compute_k(k): - # phi3 in q, k, -q - k - t1 = time.time() - phi3=tensor3.Interpolate(k,-q-k, asr = False) - t2 = time.time() - # phi2 in k - phi2_k = tensor2.Interpolate(k, asr = False) - - # phi2 in -q-k - phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) - - t3 = time.time() - - # dynamical matrices (divide by the masses) - d2_k = phi2_k * mm_inv_mat - d2_mq_mk = phi2_mq_mk * mm_inv_mat - - # Diagonalize the dynamical matrices - w2_k, pols_k = np.linalg.eigh(d2_k) - w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - - is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) - is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - - if is_k_gamma: - w2_k[0:3]=0.0 - if not (w2_k >= 0.0).all(): - print('k= ',k, ' (2pi/A)') - print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') - print('Cannot continue with SSCHA negative frequencies') - exit() - w_k=np.sqrt(w2_k) - - if is_mq_mk_gamma: - w2_mq_mk[0:3]=0.0 - if not (w2_mq_mk >= 0.0).all(): - print('-q-k= ',-q-k, ' (2pi/A)') - print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') - print('Cannot continue with SSCHA negative frequencies') - exit() - w_mq_mk=np.sqrt(w2_mq_mk) - w_q=np.sqrt(w2_q) - # Dividing the phi3 by the sqare root of masses - d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) - - # d3 in mode components - #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) - d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) - d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) - d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) - - t4 = time.time() - - # Fortran duty ==== - # Check if the q point is gamma - is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, - np.array([w_q,w_k,w_mq_mk]).T, - np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), - d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) - - t5 = time.time() - - return tmp_bubble - - - CC.Settings.SetupParallel() - - # Get the integration points - k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() - mm_mat = np.sqrt(np.outer(m, m)) - mm_inv_mat = 1 / mm_mat - # Get the phi2 in q - phi2_q = tensor2.Interpolate(q, asr = False) - d2_q = phi2_q * mm_inv_mat - # Diagonalize the dynamical matrix in q - w2_q, pols_q = np.linalg.eigh(d2_q) - d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") - # divide by the N_k factor - d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) - # the self-energy bubble in cartesian coord, divided by the sqare root of masses - d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) - #---------------------------------------------------------------- - epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) - response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 - response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value - response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value - temp = np.zeros((ne,3,3), dtype = np.double) - for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. - for dielectric_read in range(3): - for a in range(dyn.structure.N_atoms): - for b in range(dyn.structure.N_atoms): - # for i in range(3): - # for j in range(3): - #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) - # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma - response2 += temp - response_function = response1*response2 - - # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? - epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? - - refractive_index = np.sqrt(epsilon) #Cauchy Dispersion formula '**If mu=1** then n=sqrt(epsilon)' - return epsilon #, refractive_index - # ===== ONE-SHOT & PERTURBATIVE CORRECTION TO SSCHA FREQUENCY (SHIFT and LINEWIDTH) ===================== @@ -3836,3 +3660,180 @@ def get_os_perturb_dynamic_correction_along_path(dyn, tensor3, print(" ") print(" Results printed in "+filename_freq_dyn+'_'+'[smear].os/pert.dat') print(" ") + + +#------------------------------------------------------------------------------- +def get_dielectric_function(dyn, k_grid, T, e0 ,e1, de, ie, ismear + , sm0, sm0_id + , diag_approx=False, nsm=1, static_limit=False): #skeleton function for TESTING... +# ( tensor3,omega,N,nu,q, d_bubble_cart, ener, epsilon_inf,atom_a, atom_b, ne,frequency,dielectric_tensor,tensor2,effective_charges,energies,spectralf,N,Big_omega) + + """ + Input data: + epsilon_inf = dielctric constant of vacuum ---> Phonon.Phonon.dielectric_tensor(3x3) + a = atom a -> M(a) mass of atom a ---> tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn_gemnerate_supwercell(dyn.GetSupercell()),dyn_GetSupercell()); tensor2.SetupFromPhonons(dyn); tensor2.center() ---> structure = tensor2.unitcell_structure ---> structure.get_masses_array() + b = atom b -> Z(b) atomic number of atom b + q : ndarray(size = 3) = The q point at which compute the bubble. <-- this id Gamma so (0,0,0) or np.zeros(3) + tensor3 : Tensor3() = The third order force constant matrix + k_grid : list(len = 3) = The integration grid on the Brillouin zone + T : Temperature + ener : energies + nsm : integer = Number of smearings to consider (default = 1) + e1, de ,e0: float = The list of energies considered (cm-1), from e0 to e1, with interval de + sm0_id, sm1_id : float = Minimum and maximum value of the smearing (cm-1) for the term of the Green function proportional to the identity + ie, ismear = index of energies and smear, not needed? for ie in range(np.arange(e0,e1,de).shape[0]); for ismear in range(np.arange(sm0_id,sm1_id).shape[0]) + --------- + Z() = Born effective charge ---> Phonon.Phonon.effective_charges() + M() = Atomic masses + e() = polarization vector + omega_nu = resonant frequency + Big_omega = Unit cell Volume + Output: + epsilon = Dielectric function (SI) + """ + #electric_charge = 4.803e-10 #Fr (CGS) + electric_charge = 1.602176462e-19 #C (SI) + q = np.zeros(3) + twopi = 2*np.pi + # Prepare the tensor2 and obtain masses + tensor2 = CC.ForceTensor.Tensor2(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + tensor2.SetupFromPhonons(dyn) + tensor2.Center() + + tensor3 = CC.ForceTensor.Tensor3(dyn.structure, dyn.structure.generate_supercell(dyn.GetSupercell()), dyn.GetSupercell()) + structure = tensor2.unitcell_structure + alat=tensor2.unitcell_structure.unit_cell + # a,b,c volume calculation + # d = np.cross(b,c) + # proj_a = (np.dot(a,d)/np.sqrt(sum(d**2))**2)*d + # Volume = np.linalg.norm(a)*np.linalg.norm(d) + Big_omega = np.abs(np.linalg.det(alat)) # The unit cell volume is the determinant of the matrix defined by the unit cell vectors + M =structure.get_masses_array() + #prepare the dielctric tensor of vacuum and effective charges + Fonon = Phonons.Phonons(dyn.structure) #('harmonic_dyn', NQIRR) + epsilon_inf = Fonon.dielectric_tensor #(3,3) + Z = Fonon.effective_charges #(Natoms, pol electric field, atomic coords) = (nat, 3, 3) + # ======================= Energy & Smearing ========================================== + # energy in input is in cm-1 + # smearing in input is in cm-1 + # converto to Ry + + # list of energies + energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM + ne=energies.shape[0] + # list of smearing + if nsm == 1 : + sm1=sm0 + sm1_id=sm0_id + smear=np.linspace(sm0,sm1,nsm)/CC.Units.RY_TO_CM + smear_id=np.linspace(sm0_id,sm1_id,nsm)/CC.Units.RY_TO_CM + # ========================================================================================== + #---------------------------------------------------------------- + def compute_k(k): + # phi3 in q, k, -q - k + t1 = time.time() + phi3=tensor3.Interpolate(k,-q-k, asr = False) + t2 = time.time() + # phi2 in k + phi2_k = tensor2.Interpolate(k, asr = False) + + # phi2 in -q-k + phi2_mq_mk = tensor2.Interpolate(-q -k, asr = False) + + t3 = time.time() + + # dynamical matrices (divide by the masses) + d2_k = phi2_k * mm_inv_mat + d2_mq_mk = phi2_mq_mk * mm_inv_mat + + # Diagonalize the dynamical matrices + w2_k, pols_k = np.linalg.eigh(d2_k) + w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) + + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) + is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) + + if is_k_gamma: + w2_k[0:3]=0.0 + if not (w2_k >= 0.0).all(): + print('k= ',k, ' (2pi/A)') + print('w(k)= ',np.sign(w2_k)*np.sqrt(np.abs(w2_k))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_k=np.sqrt(w2_k) + + if is_mq_mk_gamma: + w2_mq_mk[0:3]=0.0 + if not (w2_mq_mk >= 0.0).all(): + print('-q-k= ',-q-k, ' (2pi/A)') + print('w(-q-k)= ',np.sign(w2_mq_mk)*np.sqrt(np.abs(w2_mq_mk))*CC.Units.RY_TO_CM,' (cm-1)') + print('Cannot continue with SSCHA negative frequencies') + exit() + w_mq_mk=np.sqrt(w2_mq_mk) + w_q=np.sqrt(w2_q) + # Dividing the phi3 by the sqare root of masses + d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) + + # d3 in mode components + #d3_pols = np.einsum("abc, ai, bj, ck -> ijk", d3, pols_mq, pols_k, pols_q_mk) + d3_pols = np.einsum("abc, ai -> ibc", d3, pols_q) + d3_pols = np.einsum("abc, bi -> aic", d3_pols, pols_k) + d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) + + t4 = time.time() + + # Fortran duty ==== + # Check if the q point is gamma + is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) + tmp_bubble = thirdorder.third_order_bubble.compute_dynamic_bubble(energies,smear,static_limit,T, + np.array([w_q,w_k,w_mq_mk]).T, + np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), + d3_pols,diag_approx,ne,nsm,n_mod=3*structure.N_atoms) + + t5 = time.time() + + return tmp_bubble + + + CC.Settings.SetupParallel() + + # Get the integration points + k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) + # dynamical matrix in q + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + mm_mat = np.sqrt(np.outer(m, m)) + mm_inv_mat = 1 / mm_mat + # Get the phi2 in q + phi2_q = tensor2.Interpolate(q, asr = False) + d2_q = phi2_q * mm_inv_mat + # Diagonalize the dynamical matrix in q + w2_q, pols_q = np.linalg.eigh(d2_q) + d_bubble_mod = CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") + # divide by the N_k factor + d_bubble_mod /= len(k_points) # (ne,nsmear,3nat,3nat) + # the self-energy bubble in cartesian coord, divided by the sqare root of masses + d_bubble_cart = np.einsum("pqab, ia, jb -> pqij", d_bubble_mod, pols_q, np.conj(pols_q)) + #---------------------------------------------------------------- + epsilon = np.zeros((ne,3,3), dtype = np.double) #np.zeros((3,3)) + response1 = -(dyn.structure.N_atoms/Big_omega) * electric_charge**2 + response2 = np.zeros((ne,3,3), dtype = np.double) #init the response2 value + response_function = np.zeros((ne,3,3), dtype = np.double) #init the response_function value + temp = np.zeros((ne,3,3), dtype = np.double) + for ie in range(ne): #<-- The dispersion function is now in energies instead of frequencies. + for dielectric_read in range(3): + for a in range(dyn.structure.N_atoms): + for b in range(dyn.structure.N_atoms): + # for i in range(3): + # for j in range(3): + #temp = ((Z[a,:,:]*Z[b,:,:])/np.sqrt(M[a]*M[b]))*G(a,b,omega,nu,mu) #<-- Usar 'd_bubble_cart' => G(n,m)=-d_bubble_cart(ie,ismear,a,b) + # temp = ((Z[a,i,j]*Z[b,i,j])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*ener(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + temp[ie,ismear,dielectric_read,:] = ((Z[a,dielectric_read,:]*Z[b,dielectric_read,:])/np.sqrt(M[a]*M[b]))*(2*d_bubble_cart(ie,ismear,a,b)*energies(ie)/twopi) #<-- Hay que hacer el cálculo en Gamma + response2 += temp + response_function = response1*response2 + + # epsilon[dielectric_read,:]=epsilon_inf[dielectric_read,:]+4*np.pi*response_function[dielectric_read,:] #<-- epsilon(ne,nsmear,3,3) ?? + epsilon=epsilon_inf+4*np.pi*response_function #<-- epsilon(ne,nsmear,3,3) ; epsilon_inf(3,3)?? + + refractive_index = np.sqrt(epsilon) #Cauchy Dispersion formula '**If mu=1** then n=sqrt(epsilon)' + return epsilon #, refractive_index From a429535d431617ac5afd15bd6718eab5f8c0b53c Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 5 Jul 2023 15:08:59 +0200 Subject: [PATCH 152/204] Fix multiprocessing --- cellconstructor/Spectral.py | 66 ++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 392f6422..67a0600a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1067,8 +1067,8 @@ def get_full_dynamic_correction_along_path_multiprocessing(dyn, tensor3, k_grid, e1, de, e0, - sm1, sm0, - sm1_id, sm0_id, + sm1=1.0, sm0=1.0, + sm1_id=None, sm0_id=None, nsm=1, T=0, q_path=[0.0,0.0,0.0], @@ -1145,7 +1145,7 @@ def get_full_dynamic_correction_along_path_multiprocessing(dyn, corresponding function) (default : False) filename_sp : string - filename_sp_[id_smear]_[smear].dat + filename_sp_[id_smear].dat is the file where the result is written. Format: length of the path (in 2pi/Alat), energy (cm-1),spectral function (1/cm-1) @@ -1202,6 +1202,13 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): print(" ") print(" - The static limit is considered - ") print(" ") + else: + print(" ") + print(" Smearing values: ") + print(" ") + for sm in np.linspace(sm0,sm1,nsm): + print(" sm= {:>6.2f} cm-1".format(sm)) + print(" ") if diag_approx : print(" ") print(" - The off-diagonal terms of the self-energy are discarded - ") @@ -1250,7 +1257,12 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): # energy in input is in cm-1 # smearing in input is in cm-1 # converto to Ry - + if sm1_id != None and sm0_id != None: + for sm in np.linspace(sm0_id,sm1_id,nsm): + print(" sm_id= {:>6.2f} cm-1".format(sm)) + else: + sm1_id=de*2.0 + sm0_id=de*2.0 # list of energies energies=np.arange(e0,e1,de)/CC.Units.RY_TO_CM ne=energies.shape[0] @@ -1339,26 +1351,58 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 # ================================================================================== - # print the result - for ism in range(nsm): - # - name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + # + if static_limit : # - filename_new=filename_sp+'_'+name+'.dat' + filename_new=filename_sp+'_static.dat' if iq == 0: with open(filename_new,'w') as f: f.write(" # ------------------------------------------------------------- \n") f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") f.write(" # ------------------------------------------------------------- \n") for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,0])) f.write("\n") else: with open(filename_new,'a') as f: for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,0])) f.write("\n") + # + else: + # + for ism in range(nsm): + # + #name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + name="{:6.1f}".format(smear_cm[ism]).strip() + # + filename_new=filename_sp+'_'+name+'.dat' + if iq == 0: + with open(filename_new,'w') as f: + f.write(" # ------------------------------------------------------------- \n") + f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") + f.write(" # ------------------------------------------------------------- \n") + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + + + if static_limit : + print(" ") + print(" Results printed in "+filename_sp+'_static.dat') + print(" ") + else: + print(" ") + print(" Results printed in "+filename_sp+'_[smear].dat') + print(" ") + + return 0 From 94112bc6b12cd67c86beed25339973f6442cfeb9 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 5 Jul 2023 15:20:10 +0200 Subject: [PATCH 153/204] Fix if...else --- cellconstructor/Spectral.py | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 67a0600a..023ebd0e 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1370,27 +1370,27 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,0])) f.write("\n") # - else: + else: + # + for ism in range(nsm): # - for ism in range(nsm): - # - #name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() - name="{:6.1f}".format(smear_cm[ism]).strip() - # - filename_new=filename_sp+'_'+name+'.dat' - if iq == 0: - with open(filename_new,'w') as f: - f.write(" # ------------------------------------------------------------- \n") - f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") - f.write(" # ------------------------------------------------------------- \n") - for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) - f.write("\n") - else: - with open(filename_new,'a') as f: - for ie, ene in enumerate(energies_cm): - f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) - f.write("\n") + #name="{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + name="{:6.1f}".format(smear_cm[ism]).strip() + # + filename_new=filename_sp+'_'+name+'.dat' + if iq == 0: + with open(filename_new,'w') as f: + f.write(" # ------------------------------------------------------------- \n") + f.write(" # len (2pi/Angstrom), energy (cm-1), spectral function (1/cm-1) \n") + f.write(" # ------------------------------------------------------------- \n") + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") + else: + with open(filename_new,'a') as f: + for ie, ene in enumerate(energies_cm): + f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) + f.write("\n") if static_limit : From 593bee4d6ef8d9a5b08f96e8d9c436f3e5f02dc7 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 5 Jul 2023 15:25:58 +0200 Subject: [PATCH 154/204] Fix print location --- cellconstructor/Spectral.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 023ebd0e..45e38d3d 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1329,11 +1329,19 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): - print(" ") - print(" Results printed in "+filename_sp+'_[id_smear]_[smear].dat') - print(" ") + if static_limit : + print(" ") + print(" Results printed in "+filename_sp+'_static.dat') + print(" ") + else: + print(" ") + print(" Results printed in "+filename_sp+'_[smear].dat') + print(" ") output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + + + def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3,k_grid,smear_id, smear, energies, energies_cm, T,static_limit, notransl , diag_approx,nsm,smear_id_cm,smear_cm,filename_sp , @@ -1393,15 +1401,6 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 f.write("\n") - if static_limit : - print(" ") - print(" Results printed in "+filename_sp+'_static.dat') - print(" ") - else: - print(" ") - print(" Results printed in "+filename_sp+'_[smear].dat') - print(" ") - return 0 From 5c9f745e7f31bf2730a0228c937193534c299ce5 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 5 Jul 2023 15:26:17 +0200 Subject: [PATCH 155/204] Clean a bit --- cellconstructor/Spectral.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 45e38d3d..9297dff7 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1399,9 +1399,6 @@ def work_full_dynamic_correction_along_path_multiprocessing(iq,q,tensor2,tensor3 for ie, ene in enumerate(energies_cm): f.write("{:>10.6f}\t{:>11.7f}\t{:>11.7f}\n".format(x_length[iq],ene,spectralf[ie,ism])) f.write("\n") - - - return 0 From 7050cac4bcb762a27c0a7fb9b4ac87cdb0677d6c Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 5 Jul 2023 16:45:40 +0200 Subject: [PATCH 156/204] Update the version to 1.4 Introduce the possibility to get w_q and pols_q within the same DiagonalizeSupercell function --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e564478f..2d0fdbd7 100644 --- a/setup.py +++ b/setup.py @@ -72,7 +72,7 @@ setup( name = "CellConstructor", - version = "1.3.2", + version = "1.4.0", description = "Python utilities that is interfaced with ASE for atomic crystal analysis", author = "Lorenzo Monacelli", url = "https://github.com/mesonepigreco/CellConstructor", From 0c4c077d938b0d64b3ff298b47cfb32314e717af Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 6 Jul 2023 14:28:21 +0200 Subject: [PATCH 157/204] Converting from compact phonopy 3rd order FC to SSCHA should work now --- cellconstructor/Methods.py | 86 ++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index ccfe7a8f..60a11878 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -31,6 +31,7 @@ __PHONOPY=False try: import phonopy + import phono3py from phono3py.phonon3.fc3 import set_permutation_symmetry_compact_fc3, set_permutation_symmetry_fc3, set_translational_invariance_compact_fc3, set_translational_invariance_fc3, cutoff_fc3_by_zero, distribute_fc3 from phono3py.phonon3.dataset import get_displacements_and_forces_fc3 from phonopy.harmonic.force_constants import compact_fc_to_full_fc @@ -1906,24 +1907,24 @@ def gradient(x): raise ValueError("Error, the minimization problem was not solved correctly") return None - # Check if two vectors are same if we account for periodic boundary conditions - def same_vectors(vec1, vec2, cell): - rvec1 = np.dot(vec1, cell) - rvec2 = np.dot(vec2, cell) - if(np.linalg.norm(rvec1 - rvec2) < 1.0-6): - return True - else: - same = False - for ix in range(-1,2): - if(not same): - for iy in range(-1,2): - if(not same): - for iz in range(-1,2): - rvec3 = rvec2 + np.array([ix,iy,iz]) - if(np.linalg.norm(rvec1 - rvec3) < 1.0-6): - same = True - break - return same +# Check if two vectors are same if we account for periodic boundary conditions +def same_vectors(vec1, vec2, cell): + rvec1 = np.dot(vec1, cell) + rvec2 = np.dot(vec2, cell) + if(np.linalg.norm(rvec1 - rvec2) < 1.0-6): + return True + else: + same = False + for ix in range(-1,2): + if(not same): + for iy in range(-1,2): + if(not same): + for iz in range(-1,2): + rvec3 = rvec2 + np.array([ix,iy,iz]) + if(np.linalg.norm(rvec1 - rvec3) < 1.0-6): + same = True + break + return same # Rewrite phonopy force constants to a format identical to CC.ForceTensor one # Better use sscha_phonons_from_phonopy ! @@ -2039,6 +2040,35 @@ def sscha_phonons_from_phonopy(phonon): return dyn +def compact_fc3_to_full_fc3_phonopy(tc): + + dymmy_fc3 = tc.fc3.copy() + tc.generate_displacements() + supercells = tc.supercells_with_displacements + #fcart_dummy = [] + #for isup in range(len(supercells)): + # fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) + #tc.forces = fcart_dummy + #disps, _ = get_displacements_and_forces_fc3(tc.dataset) + first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) + s2p_map = tc.primitive.s2p_map + p2s_map = tc.primitive.p2s_map + p2p_map = tc.primitive.p2p_map + s2compact = np.arange(len(s2p_map), dtype=int) + for i in first_disp_atoms: + assert i in p2s_map + #target_atoms = [i for i in p2s_map if i not in first_disp_atoms] + rotations = tc.symmetry.symmetry_operations["rotations"] + permutations = tc.symmetry.atomic_permutations + shape = list(np.shape(tc.fc3)) + shape[0] = shape[1] + tc.fc3 = np.zeros(shape, dtype = float) + for iat in range(len(dymmy_fc3)): + tc.fc3[p2s_map[iat]] = dymmy_fc3[iat] + target_atoms = np.arange(len(s2p_map), dtype=int).tolist() + for i in range(len(p2s_map)): + target_atoms.remove(p2s_map[i]) + distribute_fc3(tc.fc3, p2s_map, target_atoms, tc.supercell.cell.T, rotations, permutations, s2compact, verbose=True) # Get ForceTensor.Tensor3 from Phono3py object def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): @@ -2051,25 +2081,7 @@ def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): sc_nat = supercell.N_atoms if(uc_nat in tc.fc3.shape[0:3]): print('Compact forceconstants.') - tc.generate_displacements() - supercells = tc.supercells_with_displacements - tc.fc3 = force_constants_3rd_order - fcart_dummy = [] - for isup in range(len(supercells)): - fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) - tc.forces = fcart_dummy - disps, _ = get_displacements_and_forces_fc3(tc.dataset) - first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) - s2p_map = tc.primitive.s2p_map - p2s_map = tc.primitive.p2s_map - p2p_map = tc.primitive.p2p_map - s2compact = np.array([p2p_map[i] for i in s2p_map], dtype="int_") - for i in first_disp_atoms: - assert i in p2s_map - target_atoms = [i for i in p2s_map if i not in first_disp_atoms] - rotations = tc.symmetry.symmetry_operations["rotations"] - permutations = tc.symmetry.atomic_permutations - distribute_fc3(tc.fc3, first_disp_atoms, target_atoms, phonon.supercell.cell.T, rotations, permutations, s2compact, verbose=False) + compact_fc3_to_full_fc3_phonopy(tc) supercell_matrix = (np.diag(tc.supercell_matrix).astype(int)).tolist() supercell_structure = unitcell.generate_supercell(supercell_matrix) From 3b4954d2312280c4bf3f2230a6df6edda128fbf3 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 6 Jul 2023 14:37:02 +0200 Subject: [PATCH 158/204] Converting from compact phonopy 3rd order FC to SSCHA should work now --- cellconstructor/Methods.py | 93 ++++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 29 deletions(-) diff --git a/cellconstructor/Methods.py b/cellconstructor/Methods.py index 60a11878..ec02c724 100644 --- a/cellconstructor/Methods.py +++ b/cellconstructor/Methods.py @@ -2006,6 +2006,11 @@ def get_sscha_structure_from_phonopy(phatoms): # Get Cellconstructor.Phonons from Phonopy object def sscha_phonons_from_phonopy(phonon): + """ + Get Phonons object from phonopy object. + + """ + if(not __PHONOPY): raise RuntimeError('Phonopy and phono3py are needed for this routine!') sscha_structure = get_sscha_structure_from_phonopy(phonon.primitive) # get structure @@ -2042,36 +2047,48 @@ def sscha_phonons_from_phonopy(phonon): def compact_fc3_to_full_fc3_phonopy(tc): - dymmy_fc3 = tc.fc3.copy() - tc.generate_displacements() - supercells = tc.supercells_with_displacements - #fcart_dummy = [] - #for isup in range(len(supercells)): - # fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) - #tc.forces = fcart_dummy - #disps, _ = get_displacements_and_forces_fc3(tc.dataset) - first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) - s2p_map = tc.primitive.s2p_map - p2s_map = tc.primitive.p2s_map - p2p_map = tc.primitive.p2p_map - s2compact = np.arange(len(s2p_map), dtype=int) - for i in first_disp_atoms: - assert i in p2s_map - #target_atoms = [i for i in p2s_map if i not in first_disp_atoms] - rotations = tc.symmetry.symmetry_operations["rotations"] - permutations = tc.symmetry.atomic_permutations - shape = list(np.shape(tc.fc3)) - shape[0] = shape[1] - tc.fc3 = np.zeros(shape, dtype = float) - for iat in range(len(dymmy_fc3)): - tc.fc3[p2s_map[iat]] = dymmy_fc3[iat] - target_atoms = np.arange(len(s2p_map), dtype=int).tolist() - for i in range(len(p2s_map)): - target_atoms.remove(p2s_map[i]) - distribute_fc3(tc.fc3, p2s_map, target_atoms, tc.supercell.cell.T, rotations, permutations, s2compact, verbose=True) - -# Get ForceTensor.Tensor3 from Phono3py object + """ + + Convert from compact to full format of phono3py 3rd force constants + + """ + + dymmy_fc3 = tc.fc3.copy() + tc.generate_displacements() + supercells = tc.supercells_with_displacements + #fcart_dummy = [] + #for isup in range(len(supercells)): + # fcart_dummy.append(np.zeros_like(supercells[isup].scaled_positions)) + #tc.forces = fcart_dummy + #disps, _ = get_displacements_and_forces_fc3(tc.dataset) + first_disp_atoms = np.unique([x["number"] for x in tc.dataset["first_atoms"]]) + s2p_map = tc.primitive.s2p_map + p2s_map = tc.primitive.p2s_map + p2p_map = tc.primitive.p2p_map + s2compact = np.arange(len(s2p_map), dtype=int) + for i in first_disp_atoms: + assert i in p2s_map + #target_atoms = [i for i in p2s_map if i not in first_disp_atoms] + rotations = tc.symmetry.symmetry_operations["rotations"] + permutations = tc.symmetry.atomic_permutations + shape = list(np.shape(tc.fc3)) + shape[0] = shape[1] + tc.fc3 = np.zeros(shape, dtype = float) + for iat in range(len(dymmy_fc3)): + tc.fc3[p2s_map[iat]] = dymmy_fc3[iat] + target_atoms = np.arange(len(s2p_map), dtype=int).tolist() + for i in range(len(p2s_map)): + target_atoms.remove(p2s_map[i]) + distribute_fc3(tc.fc3, p2s_map, target_atoms, tc.supercell.cell.T, rotations, permutations, s2compact, verbose=True) + def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): + + """ + Get 3rd order force constants in SSCHA format from phono3py object. + + tc : Phono3py object which contains 3rd order force constants + + """ if(not __PHONOPY): raise RuntimeError('Phonopy and phono3py are needed for this routine!') @@ -2128,6 +2145,15 @@ def phonopy_fc3_to_tensor3(tc, apply_symmetries = True): def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): + """ + + Generate 2nd order forceconstants in phono3py format from SSCHA ForceTensor2 object. + + SSCHA_tensor : SSCHA Tensor2 object + phonon : Phonopy object that provides structure and additional routines (should have the same supercell as the one used in generating SSCHA tensor) + + """ + if(not __PHONOPY): raise RuntimeError('Phonopy and phono3py are needed for this routine!') SSCHA_force_constants = np.array(SSCHA_tensor.tensor.copy()) @@ -2163,6 +2189,15 @@ def tensor2_to_phonopy_fc2(SSCHA_tensor, phonon): def tensor3_to_phonopy_fc3(SSCHA_tensor, phonon): + """ + + Generate 3rd order forceconstants in phono3py format from SSCHA ForceTensor3 object. + + SSCHA_tensor : SSCHA Tensor3 object + phonon : Phonopy object that provides structure and additional routines (should have the same supercell as the one used in generating SSCHA tensor) + + """ + if(not __PHONOPY): raise RuntimeError('Phonopy and phono3py are needed for this routine!') From d3594bf0c08c79820f4bf8e840f42101cb541a99 Mon Sep 17 00:00:00 2001 From: bastonero Date: Thu, 13 Jul 2023 12:58:22 +0000 Subject: [PATCH 159/204] `Settings`: fix compatibility bug with python 3.x The function `inspect.getargspec` was deprecated from python v3.x, making the test to fail; see [here](https://github.com/pytorch/pytorch/issues/15344) for a more complete description. A `.gitignore` file is also added to help development. --- .gitignore | 117 +++++++++++++++++++++++++++++++++++- cellconstructor/Settings.py | 12 +++- 2 files changed, 126 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 761dad5b..f5e7fae2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,116 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +tmp_dyn* + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ build/ -files.txt -install.log +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Dev +.vscode +.history/ + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# dotenv +.env + +# virtualenv +.venv +venv/ +ENV/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +*~ +.DS_Store +.idea +submit_test/ +# Autogenerated API docs +docs/* +tox.ini diff --git a/cellconstructor/Settings.py b/cellconstructor/Settings.py index 929cb210..e7d05aed 100644 --- a/cellconstructor/Settings.py +++ b/cellconstructor/Settings.py @@ -5,6 +5,8 @@ import numpy as np import time import inspect +import sys + # The parallelization setup __PARALLEL_TYPE__ = "serial" @@ -230,7 +232,15 @@ def GoParallel(function, list_of_inputs, reduce_op = None, timer=None): kwargs = {} # Check if function accepts a timer cmp_timer = None - if "timer" in inspect.getargspec(function).args and timer is not None: + + major_version = sys.version_info.major + minor_version = sys.version_info.minor + if major_version == 2: + func = inspect.getargspec + if major_version == 3: + func = inspect.getfullargspec + + if "timer" in func(function).args and timer is not None: cmp_timer = timer.spawn_child() kwargs["timer"] = cmp_timer From 18d45e780ef4d5f077a1b70264b9c9a5b39508e3 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Mon, 24 Jul 2023 12:02:21 +0200 Subject: [PATCH 160/204] Added a new function to split the ensemble --- cellconstructor/Settings.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/cellconstructor/Settings.py b/cellconstructor/Settings.py index 929cb210..65a69a66 100644 --- a/cellconstructor/Settings.py +++ b/cellconstructor/Settings.py @@ -155,6 +155,37 @@ def GetNProc(): return mpi4py.MPI.COMM_WORLD.Get_size() return __NPROC__ + +def split_configurations(n_configs): + """ + Return the range of configurations that each process must be compute. + The argument returned can directly go in the GoParallel function. + + Parameters + ---------- + n_configs : int + The total number of configurations to be computed + + Returns + ------- + list_of_inputs : list + A list of tuples (start, end) that specify the range of configurations + """ + + nproc = GetNProc() + list_of_inputs = [] + index = 0 + for i in range(nproc): + start_config = index + index += self.N // nproc + if i < self.N % nproc: + index += 1 + end_config = index + + list_of_inputs.append( (start_config, end_config) ) + + return list_of_inputs + def GoParallel(function, list_of_inputs, reduce_op = None, timer=None): """ From d58c173c5ce4f176e1fa58ad8377f67eb3182748 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Mon, 24 Jul 2023 12:26:51 +0200 Subject: [PATCH 161/204] Fixed a small bug in the split configurations --- cellconstructor/Settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/Settings.py b/cellconstructor/Settings.py index 65a69a66..4553ed41 100644 --- a/cellconstructor/Settings.py +++ b/cellconstructor/Settings.py @@ -177,8 +177,8 @@ def split_configurations(n_configs): index = 0 for i in range(nproc): start_config = index - index += self.N // nproc - if i < self.N % nproc: + index += n_configs // nproc + if i < n_configs % nproc: index += 1 end_config = index From 10b50307b7368a2908792b9ad5a81271c94a822f Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 24 Jul 2023 12:35:19 +0200 Subject: [PATCH 162/204] Added dipole-dipole corrections for phonon frequencies. Added AC conductivity calculation. --- FModules/eff_charge_interp.f90 | 315 ++++++++++++++++++++++--- FModules/get_lf.f90 | 71 ++++-- cellconstructor/ThermalConductivity.py | 212 ++++++++++++++++- 3 files changed, 531 insertions(+), 67 deletions(-) diff --git a/FModules/eff_charge_interp.f90 b/FModules/eff_charge_interp.f90 index 7d001c66..8b6631c1 100644 --- a/FModules/eff_charge_interp.f90 +++ b/FModules/eff_charge_interp.f90 @@ -45,39 +45,39 @@ subroutine rgd_blk (nr1,nr2,nr3,nat,dyn,q,tau,epsil,zeu,bg,omega,alat,loto_2d,si alph= 1.0d0 geg = gmax*alph*4.0d0 - ! print *, "" - ! print *, "[RGD_BLK] Q = ", q - ! print *, "[RGD_BLK] NAT:", nat - ! print *, "[RGD_BLK] OMEGA:", omega - ! print *, "[RGD_BLK] ZEU:" - ! do i = 1, nat - ! do j = 1, 3 - ! print *, zeu(:, j, i) - ! enddo - ! end do - ! print *, "[RGD_BLK] ALAT:", alat - ! print *, "[RGD_BLK] BG:" - ! do i = 1, 3 - ! print *, bg(:, i) - ! end do - ! print *, "[RGD_BLK] TAU:" - ! do i = 1, nat - ! print *, tau(:, i) - ! end do - - ! print *, "[RGD_BLK] EPSIL:" - ! do i = 1, 3 - ! print *, epsil(:, i) - ! end do + !print *, "" + !print *, "[RGD_BLK] Q = ", q + !print *, "[RGD_BLK] NAT:", nat + !print *, "[RGD_BLK] OMEGA:", omega + !print *, "[RGD_BLK] ZEU:" + !do i = 1, nat + ! do j = 1, 3 + ! print *, zeu(:, j, i) + ! enddo + !end do + !print *, "[RGD_BLK] ALAT:", alat + !print *, "[RGD_BLK] BG:" + !do i = 1, 3 + ! print *, bg(:, i) + !end do + !print *, "[RGD_BLK] TAU:" + !do i = 1, nat + ! print *, tau(:, i) + !end do + + !print *, "[RGD_BLK] EPSIL:" + !do i = 1, 3 + ! print *, epsil(:, i) + !end do - ! print *, "[RGD_BLK] DYN:" - ! do na = 1, nat - ! do nb = 1, nat - ! do i = 1, 3 - ! print *, dyn(:, i, na, nb) - ! end do - ! end do - ! end do + !print *, "[RGD_BLK] DYN:" + !do na = 1, nat + ! do nb = 1, nat + ! do i = 1, 3 + ! print *, dyn(:, i, na, nb) + ! end do + ! end do + !end do ! Silicon alat_new = 10.0d0 @@ -249,6 +249,255 @@ subroutine rgd_blk (nr1,nr2,nr3,nat,dyn,q,tau,epsil,zeu,bg,omega,alat,loto_2d,si end subroutine rgd_blk +subroutine rgd_blk_diff_phase_conv (nr1,nr2,nr3,nat,dyn,q,tau,epsil,zeu,bg,omega,alat,loto_2d,sign) + !----------------------------------------------------------------------- + ! compute the rigid-ion (long-range) term for q + ! The long-range term used here, to be added to or subtracted from the + ! dynamical matrices, is exactly the same of the formula introduced in: + ! X. Gonze et al, PRB 50. 13035 (1994) . Only the G-space term is + ! implemented: the Ewald parameter alpha must be large enough to + ! have negligible r-space contribution + ! + use kinds, only: dp + use constants, only: pi,tpi, fpi, e2 + implicit none + integer :: nr1, nr2, nr3 ! FFT grid + integer :: nat ! number of atoms + complex(DP) :: dyn(3,3,nat,nat) ! dynamical matrix + real(DP) & + q(3), &! q-vector + tau(3,nat), &! atomic positions + epsil(3,3), &! dielectric constant tensor + zeu(3,3,nat), &! effective charges tensor + at(3,3), &! direct lattice basis vectors + bg(3,3), &! reciprocal lattice basis vectors + omega, &! unit cell volume + alat, &! cell dimension units + sign ! sign=+/-1.0 ==> add/subtract rigid-ion term + logical :: loto_2d ! 2D LOTO correction + ! + ! local variables + ! + real(DP):: geg, gp2, r ! , For 2d loto: gp2, r + integer :: na,nb, i,j, m1, m2, m3 + integer :: nr1x, nr2x, nr3x + real(DP) :: alph, fac,g1,g2,g3, facgd, arg, gmax, alat_new + real(DP) :: zag(3),zbg(3),zcg(3), fnat(3), reff(2,2) + real :: time1, time2 + complex(dp) :: facg + ! + ! alph is the Ewald parameter, geg is an estimate of G^2 + ! such that the G-space sum is convergent for that alph + ! very rough estimate: geg/4/alph > gmax = 14 + ! (exp (-14) = 10^-6) + ! + call cpu_time(time1) + gmax= 14.d0 + alph= 1.0d0 + geg = gmax*alph*4.0d0 + + !print *, "" + !print *, "[RGD_BLK] Q = ", q + !print *, "[RGD_BLK] NAT:", nat + !print *, "[RGD_BLK] OMEGA:", omega + !print *, "[RGD_BLK] ZEU:" + !do i = 1, nat + ! do j = 1, 3 + ! print *, zeu(:, j, i) + ! enddo + !end do + !print *, "[RGD_BLK] ALAT:", alat + !print *, "[RGD_BLK] BG:" + !do i = 1, 3 + ! print *, bg(:, i) + !end do + !print *, "[RGD_BLK] TAU:" + !do i = 1, nat + ! print *, tau(:, i) + !end do + + !print *, "[RGD_BLK] EPSIL:" + !do i = 1, 3 + ! print *, epsil(:, i) + !end do + + !print *, "[RGD_BLK] DYN:" + !do na = 1, nat + ! do nb = 1, nat + ! do i = 1, 3 + ! print *, dyn(:, i, na, nb) + ! end do + ! end do + !end do + + ! Silicon + alat_new = 10.0d0 + + + ! Estimate of nr1x,nr2x,nr3x generating all vectors up to G^2 < geg + ! Only for dimensions where periodicity is present, e.g. if nr1=1 + ! and nr2=1, then the G-vectors run along nr3 only. + ! (useful if system is in vacuum, e.g. 1D or 2D) + ! + if (nr1 == 1) then + nr1x=0 + else + nr1x = int ( sqrt (geg) / & + (sqrt (bg (1, 1) **2 + bg (2, 1) **2 + bg (3, 1) **2) )) + 1 + endif + if (nr2 == 1) then + nr2x=0 + else + nr2x = int ( sqrt (geg) / & + ( sqrt (bg (1, 2) **2 + bg (2, 2) **2 + bg (3, 2) **2) )) + 1 + endif + if (nr3 == 1) then + nr3x=0 + else + nr3x = int ( sqrt (geg) / & + (sqrt (bg (1, 3) **2 + bg (2, 3) **2 + bg (3, 3) **2) )) + 1 + endif + ! + + !print *, "[RGD_BLK] integration grid:", nr1x, nr2x, nr3x + if (abs(sign) /= 1.0_DP) & + call errore ('rgd_blk',' wrong value for sign ',1) + ! + IF (loto_2d) THEN + fac = sign*e2*fpi/omega*0.5d0*alat/bg(3,3) + reff=0.0d0 + DO i=1,2 + DO j=1,2 + reff(i,j)=epsil(i,j)*0.5d0*tpi/bg(3,3) ! (eps)*c/2 in 2pi/a units + ENDDO + ENDDO + DO i=1,2 + reff(i,i)=reff(i,i)-0.5d0*tpi/bg(3,3) ! (-1)*c/2 in 2pi/a units + ENDDO + ELSE + fac = sign*e2*fpi/omega + ENDIF + do m1 = -nr1x,nr1x + do m2 = -nr2x,nr2x + do m3 = -nr3x,nr3x + ! + g1 = m1*bg(1,1) + m2*bg(1,2) + m3*bg(1,3) + g2 = m1*bg(2,1) + m2*bg(2,2) + m3*bg(2,3) + g3 = m1*bg(3,1) + m2*bg(3,2) + m3*bg(3,3) + ! + IF (loto_2d) THEN + geg = g1**2 + g2**2 + g3**2 + r=0.0d0 + gp2=g1**2+g2**2 + IF (gp2>1.0d-8) THEN + r=g1*reff(1,1)*g1+g1*reff(1,2)*g2+g2*reff(2,1)*g1+g2*reff(2,2)*g2 + r=r/gp2 + ENDIF + ELSE + geg = (g1*(epsil(1,1)*g1+epsil(1,2)*g2+epsil(1,3)*g3)+ & + g2*(epsil(2,1)*g1+epsil(2,2)*g2+epsil(2,3)*g3)+ & + g3*(epsil(3,1)*g1+epsil(3,2)*g2+epsil(3,3)*g3)) + ENDIF + ! + if (geg > 0.0_DP .and. geg/alph/4.0_DP < gmax ) then + ! + IF (loto_2d) THEN + facgd = fac*exp(-geg/alph/4.0d0)/SQRT(geg)/(1.0+r*SQRT(geg)) + ELSE + facgd = fac*exp(-geg/alph/4.0d0)/geg + ENDIF + ! + do na = 1,nat + zag(:)=g1*zeu(1,:,na)+g2*zeu(2,:,na)+g3*zeu(3,:,na) + fnat(:) = 0.d0 + do nb = 1,nat + arg = -2.d0*pi* (g1 * (tau(1,na)-tau(1,nb))+ & + g2 * (tau(2,na)-tau(2,nb))+ & + g3 * (tau(3,na)-tau(3,nb))) + zcg(:) = g1*zeu(1,:,nb) + g2*zeu(2,:,nb) + g3*zeu(3,:,nb) + fnat(:) = fnat(:) + zcg(:)*cos(arg) + end do + do j=1,3 + do i=1,3 + dyn(i,j,na,na) = dyn(i,j,na,na) - facgd * & + zag(i) * fnat(j) + end do + end do + end do + end if + ! + g1 = g1 +q(1) + g2 = g2 +q(2) + g3 = g3 +q(3) + ! + IF (loto_2d) THEN + geg = g1**2+g2**2+g3**2 + r=0.0d0 + gp2=g1**2+g2**2 + IF (gp2>1.0d-8) THEN + r=g1*reff(1,1)*g1+g1*reff(1,2)*g2+g2*reff(2,1)*g1+g2*reff(2,2)*g2 + r=r/gp2 + ENDIF + ELSE + geg = (g1*(epsil(1,1)*g1+epsil(1,2)*g2+epsil(1,3)*g3)+ & + g2*(epsil(2,1)*g1+epsil(2,2)*g2+epsil(2,3)*g3)+ & + g3*(epsil(3,1)*g1+epsil(3,2)*g2+epsil(3,3)*g3)) + ENDIF + ! + if (geg > 0.0_DP .and. geg/alph/4.0_DP < gmax ) then + ! + IF (loto_2d) THEN + facgd = fac*exp(-geg/alph/4.0d0)/SQRT(geg)/(1.0+r*SQRT(geg)) + ELSE + facgd = fac*exp(-geg/alph/4.0d0)/geg + ENDIF + ! + do nb = 1,nat + zbg(:)=g1*zeu(1,:,nb)+g2*zeu(2,:,nb)+g3*zeu(3,:,nb) + do na = 1,nat + zag(:)=g1*zeu(1,:,na)+g2*zeu(2,:,na)+g3*zeu(3,:,na) + arg = -2.d0*pi* ((g1 - q(1)) * (tau(1,na)-tau(1,nb))+ & + (g2 - q(2)) * (tau(2,na)-tau(2,nb))+ & + (g3 - q(3)) * (tau(3,na)-tau(3,nb))) + ! + facg = facgd * CMPLX(cos(arg),sin(arg),kind=DP) + do j=1,3 + do i=1,3 + dyn(i,j,na,nb) = dyn(i,j,na,nb) + facg * & + zag(i) * zbg(j) + end do + end do + end do + end do + end if + end do + end do + end do + +! call cpu_time(time2) +! print *, "Elapsed time in rgd_blk: ", time2 - time1 + + +! print *, "" +! print *, "[RGD_BLK] DYN FINAL:" +! do na = 1, nat +! do nb = 1, nat +! do i = 1, 3 +! print *, dyn(:, i, na, nb) +! end do +! end do +! end do + +! print *, "" +! print *, "" +! print *, "----------------------------------------------------" + + + + ! + return + ! + end subroutine rgd_blk_diff_phase_conv ! subroutine rgd_blk (nr1,nr2,nr3,nat,dyn,q,tau,epsil,zeu,bg,omega,alat,loto_2d,sign) ! !----------------------------------------------------------------------- @@ -598,4 +847,4 @@ SUBROUTINE trasl( phid, phiq, nq, nr1, nr2, nr3, nat, m1, m2, m3 ) ! RETURN END SUBROUTINE trasl - \ No newline at end of file + diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index cc8055a7..35364227 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -886,7 +886,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc complex(kind=DP), dimension(3*nat) :: selfnrg complex(kind=DP), dimension(3*nat,3*nat) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 ! complex(kind=DP), dimension(3*nat, 3*nat, 3*nat) :: ifc3, d3, d3_pols - complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols, intermediate logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas @@ -906,13 +906,14 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc !$OMP PARALLEL DO IF(parallelize) DEFAULT(NONE) & !$OMP PRIVATE(i,j,k,i1,j1,k1, jqpt, ifc3, d3, d3_pols, kpt, mkpt, mkpt_r, is_k_gamma, is_mk_mq_gamma, w2_k, w2_mk_mq, & !$OMP w_k, w_mk_mq, pols_k, pols_mk_mq, pols_k2, pols_mk_mq2, iat, jat, kat, freqs_array, if_gammas, & - !$OMP is_k_neg, is_mk_mq_neg, selfnrg) & + !$OMP is_k_neg, is_mk_mq_neg, selfnrg, intermediate) & !$OMP SHARED(nqpt, nat, fc3, r3_2, r3_3, pos, nfc2, nfc3, masses, fc2, smear, T, weights, qgrid, qpt, kprim, is_q_gamma, & !$OMP r2_2, w_q, pols_q, mass_array, gaussian, classical, ikprim) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt ! print*, jqpt allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) + allocate(intermediate(3*nat, 3*nat, 3*nat)) is_k_neg = .False. is_mk_mq_neg = .False. ifc3(:,:,:) = complex(0.0_DP, 0.0_DP) @@ -954,11 +955,19 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc d3 = ifc3*mass_array - do i = 1, 3*nat - do i1 = 1, 3*nat - d3_pols(:,:,i) = d3_pols(:,:,i) + & - matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !do i = 1, 3*nat + !do i1 = 1, 3*nat + ! d3_pols(:,:,i) = d3_pols(:,:,i) + & + ! matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !enddo + !enddo + intermediate = complex(0.0_DP, 0.0_DP) + do i=1,3*nat + intermediate(:,:,i) = matmul(matmul(transpose(pols_q), d3(:,:,i)), pols_k) enddo + + do i1=1,3*nat + d3_pols(:,i1,:) = matmul(intermediate(:,i1,:), pols_mk_mq) enddo freqs_array(:, 1) = w_q @@ -974,7 +983,7 @@ subroutine calculate_self_energy_LA(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc freqs_array, if_gammas, d3_pols, 3*nat, gaussian, classical, selfnrg) self_energy = self_energy + selfnrg*dble(weights(jqpt)) endif - deallocate(ifc3, d3, d3_pols) + deallocate(ifc3, d3, d3_pols, intermediate) enddo !$OMP END PARALLEL DO @@ -1018,7 +1027,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 !complex(kind=DP), dimension(ne, 3*nat) :: selfnrg complex(kind=DP), allocatable, dimension(:, :) :: selfnrg complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 - complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols, intermediate logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas @@ -1039,7 +1048,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, pols_k2, w2_mk_mq, pols_mk_mq, pols_mk_mq2,& - !$OMP is_k_gamma, is_mk_mq_gamma, & + !$OMP is_k_gamma, is_mk_mq_gamma, intermediate, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & @@ -1047,6 +1056,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 do jqpt = 1, nqpt ! print*, jqpt allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) + allocate(intermediate(3*nat, 3*nat, 3*nat)) allocate(selfnrg(ne, 3*nat)) allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) allocate(pols_k2(3*nat,3*nat), pols_mk_mq2(3*nat,3*nat)) @@ -1108,12 +1118,22 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 enddo enddo - do i = 1, 3*nat - do i1 = 1, 3*nat - d3_pols(:,:,i) = d3_pols(:,:,i) + & - matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !do i = 1, 3*nat + !do i1 = 1, 3*nat + ! d3_pols(:,:,i) = d3_pols(:,:,i) + & + ! matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !enddo + !enddo + + intermediate = complex(0.0_DP, 0.0_DP) + do i=1,3*nat + intermediate(:,:,i) = matmul(matmul(transpose(pols_q), d3(:,:,i)), pols_k) enddo + + do i1=1,3*nat + d3_pols(:,i1,:) = matmul(intermediate(:,i1,:), pols_mk_mq) enddo + ! print*, 'Got d3pols' freqs_array(:, 1) = w_q @@ -1133,7 +1153,7 @@ subroutine calculate_self_energy_P(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, nfc2 print*, 'NaN for jqpt', jqpt endif deallocate(ifc3, d3, d3_pols, selfnrg) - deallocate(pols_k, pols_mk_mq) + deallocate(pols_k, pols_mk_mq, intermediate) deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) @@ -1184,7 +1204,7 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n real(kind=DP), allocatable, dimension(:, :, :) :: mass_array complex(kind=DP), allocatable, dimension(:, :, :) :: selfnrg complex(kind=DP), allocatable,dimension(:,:) :: pols_k, pols_mk_mq, pols_k2, pols_mk_mq2 - complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols + complex(kind=DP), allocatable, dimension(:, :, :) :: ifc3, d3, d3_pols, intermediate logical :: is_k_gamma, is_mk_mq_gamma, is_k_neg, is_mk_mq_neg logical, dimension(3) :: if_gammas @@ -1194,13 +1214,14 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n !$OMP PARALLEL DO IF(parallelize) & !$OMP DEFAULT(NONE) & !$OMP PRIVATE(jqpt, ifc3, d3, d3_pols, kpt, mkpt, w2_k, pols_k, pols_k2, w2_mk_mq, pols_mk_mq, pols_mk_mq2,& - !$OMP is_k_gamma, is_mk_mq_gamma, & + !$OMP is_k_gamma, is_mk_mq_gamma, intermediate, & !$OMP is_k_neg, is_mk_mq_neg, w_k, w_mk_mq, i,j,k,i1,j1,k1,iat,jat,kat, freqs_array, if_gammas, selfnrg) & !$OMP SHARED(nqpt, qgrid, fc3, r3_2, r3_3, pos, qpt, nfc3, nat, nfc2, fc2, r2_2, masses, is_q_gamma, smear, & !$OMP T, energies, ne, w_q, pols_q,weights, kprim, gaussian, classical) & !$OMP REDUCTION(+:self_energy) do jqpt = 1, nqpt !print*, jqpt + allocate(intermediate(3*nat, 3*nat, 3*nat)) allocate(ifc3(3*nat, 3*nat, 3*nat), d3(3*nat, 3*nat, 3*nat), d3_pols(3*nat, 3*nat, 3*nat)) allocate(selfnrg(ne, 3*nat, 3*nat)) allocate(pols_k(3*nat,3*nat), pols_mk_mq(3*nat,3*nat)) @@ -1263,11 +1284,19 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n enddo enddo - do i = 1, 3*nat - do i1 = 1, 3*nat - d3_pols(:,:,i) = d3_pols(:,:,i) + & - matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !do i = 1, 3*nat + !do i1 = 1, 3*nat + ! d3_pols(:,:,i) = d3_pols(:,:,i) + & + ! matmul(matmul(transpose(pols_q), d3(:,:,i1)), pols_k)*pols_mk_mq(i1,i) + !enddo + !enddo + intermediate = complex(0.0_DP, 0.0_DP) + do i=1,3*nat + intermediate(:,:,i) = matmul(matmul(transpose(pols_q), d3(:,:,i)), pols_k) enddo + + do i1=1,3*nat + d3_pols(:,i1,:) = matmul(intermediate(:,i1,:), pols_mk_mq) enddo freqs_array(:, 1) = w_q @@ -1287,7 +1316,7 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n print*, 'NaN for jqpt', jqpt endif deallocate(ifc3, d3, d3_pols, selfnrg) - deallocate(pols_k, pols_mk_mq) + deallocate(pols_k, pols_mk_mq, intermediate) deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 1f20b0cc..a20b97a4 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -489,6 +489,8 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.scattering_grid = np.array(scattering_grid).astype(int) else: self.scattering_grid = self.kpoint_grid.copy() + if(smearing_scale == None): + smearing_scale = 1.0 self.smearing_scale = smearing_scale self.unitcell = self.dyn.structure.unit_cell #print('Primitive cell: ') @@ -1062,6 +1064,42 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(3*' ' + format(kappa[2][0], '.12e')) kappa_file.write('\n') self.kappa[tc_key] = kappa + elif(mode == 'AC'): + self.delta_omega = np.amax(self.freqs)*2.0/float(ne) + energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega + if(self.off_diag): + kappa, kappa_nondiag = self.calculate_kappa_gk_AC(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) + kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa[icart][icart][0], '.12e')) + kappa_file.write(3*' ' + format(kappa[0][1][0], '.12e')) + kappa_file.write(3*' ' + format(kappa[1][2][0], '.12e')) + kappa_file.write(3*' ' + format(kappa[2][0][0], '.12e')) + for icart in range(3): + kappa_file.write(3*' ' + format(kappa_nondiag[icart][icart][0], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[0][1][0], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[1][2][0], '.12e')) + kappa_file.write(3*' ' + format(kappa_nondiag[2][0][0], '.12e')) + kappa_file.write('\n') + self.kappa[tc_key] = kappa + with open('AC_thermal_conductivity_' + format(temperatures[itemp], '.1f'), 'w+') as outfile: + outfile.write('# Temperature = ' + format(temperatures[itemp], '.1f') + '\n') + for ien in range(np.shape(kappa)[-1]): + if(ien == 0): + outfile.write(3*' ' + format(0.0, '.12e')) + else: + outfile.write(3*' ' + format(energies[ien - 1]*SSCHA_TO_THZ, '.12e')) + for icart in range(3): + outfile.write(3*' ' + format(kappa[icart][icart][ien], '.12e')) + outfile.write(3*' ' + format(kappa[0][1][ien], '.12e')) + outfile.write(3*' ' + format(kappa[1][2][ien], '.12e')) + outfile.write(3*' ' + format(kappa[2][0][ien], '.12e')) + for icart in range(3): + outfile.write(3*' ' + format(kappa_nondiag[icart][icart][ien], '.12e')) + outfile.write(3*' ' + format(kappa_nondiag[0][1][ien], '.12e')) + outfile.write(3*' ' + format(kappa_nondiag[1][2][ien], '.12e')) + outfile.write(3*' ' + format(kappa_nondiag[2][0][ien], '.12e')) + outfile.write('\n') else: print('Can not recognize this method of calculating kappa! ') print(mode) @@ -1259,8 +1297,9 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) gvel_sum += np.outer(gvel.conj(), gvel) gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) - kappa_nondiag += integrals*self.freqs[iqpt,iband]**2*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ - gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 + #kappa_nondiag += integrals*self.freqs[iqpt,iband]**2*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ + # gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 + kappa_nondiag += integrals*self.freqs[iqpt,iband]*self.freqs[iqpt,jband]*gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 elif(self.freqs[iqpt, jband] != 0.0 and iband == jband): gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) gvel_sum = np.zeros_like(kappa_diag, dtype=complex) @@ -1286,6 +1325,104 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga ################################################################################################################################# + def calculate_kappa_gk_AC(self, temperature, write_lineshapes, energies, gauss_smearing = False): + + """ + Calculation of lattice thermal conductivity using Green-Kubo method if both diagonal and off-diagonal group velocities are available. + + temperature : temperature at which kappa should be calculated. + write_lineshapes : Boolean noting should we write phonon lineshapes on a file + energies : frequency points at which phonon lineshapes should be calculated + + """ + + ls_key = format(temperature, '.1f') + if(ls_key in self.lineshapes.keys()): + print('Lineshapes for this temperature have already been calculated. Continuing ...') + else: + self.get_lineshapes(temperature, write_lineshapes, energies, method = 'fortran', gauss_smearing = gauss_smearing) + + ne = len(energies) + exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + + kappa_diag = np.zeros((3,3, ne + 1)) + kappa_diag1 = np.zeros((3,3)) + kappa_nondiag = np.zeros_like(kappa_diag) + for istar in self.qstar: + for iqpt in istar: + for iband in range(self.nband): + if(self.freqs[iqpt, iband] != 0.0): + for jband in range(self.nband): + if(self.group_velocity_mode == 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + if(self.freqs[iqpt, jband] != 0.0 and iband != jband): + i1 = np.append(np.append(np.flip(self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)), np.zeros(1, dtype=float)), self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)) + i2 = np.append(np.append(np.flip(self.lineshapes[ls_key][iqpt, iband]/(exponents_minus - 1.0)), np.zeros(1, dtype=float)), self.lineshapes[ls_key][iqpt, iband]/(exponents_plus - 1.0)) + integrals = np.correlate(i2, i1, mode = 'full')[len(i1) - 1:len(i1) + ne ]*self.delta_omega + i3 = np.append(np.append(np.flip(energies), np.zeros(1, dtype=float)), energies) + i4 = np.divide(i2, i3, out=np.zeros_like(i2), where=i3!=0.0) + integrals += np.append(np.zeros(1, dtype=float), energies)*np.correlate(i2, i1, mode = 'full')[len(i1) - 1:len(i1) + ne ]*self.delta_omega*0.5 + #if(np.abs(np.sum(i1*i2)*self.delta_omega - integrals[0]) > np.abs(np.sum(i1*i2)*self.delta_omega)*1.0e-6): + # print(np.sum(i1*i2)*self.delta_omega, integrals[0]) + # raise RuntimeError() + #integrands_plus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 + #integrands_minus = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 + #integrals1 = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega + #if(np.abs(integrals1 - integrals[0]) > np.abs(np.sum(i1*i2)*self.delta_omega)*1.0e-6): + # print(integrals1, integrals[0]) + # raise RuntimeError() + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros_like(kappa_diag[:,:,0], dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + #kappa_nondiag += integrals*self.freqs[iqpt,iband]*self.freqs[iqpt,jband]*gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 + kappa_nondiag += np.einsum('ij,k->ijk', gvel_sum, integrals)*self.freqs[iqpt,iband]*self.freqs[iqpt,jband]*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 + elif(self.freqs[iqpt, jband] != 0.0 and iband == jband): + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros_like(kappa_diag[:,:,0], dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + i1 = np.append(np.append(np.flip(self.lineshapes[ls_key][iqpt, iband]*exponents_minus/(exponents_minus - 1.0)), np.zeros(1, dtype=float)), self.lineshapes[ls_key][iqpt, iband]*exponents_plus/(exponents_plus - 1.0)) + i2 = np.append(np.append(np.flip(self.lineshapes[ls_key][iqpt, iband]/(exponents_minus - 1.0)), np.zeros(1, dtype=float)), self.lineshapes[ls_key][iqpt, iband]/(exponents_plus - 1.0)) + integrals = np.correlate(i2, i1, mode = 'full')[len(i1)-1:len(i1) + ne]*self.delta_omega + i3 = np.append(np.append(np.flip(energies), np.zeros(1, dtype=float)), energies) + i4 = np.divide(i2, i3, out=np.zeros_like(i2), where=i3!=0.0) + integrals += np.append(np.zeros(1, dtype=float), energies)*np.correlate(i2, i1, mode = 'full')[len(i1) - 1:len(i1) + ne ]*self.delta_omega*0.5 + #integrands_plus = self.lineshapes[ls_key][iqpt, iband]**2*exponents_plus/(exponents_plus - 1.0)**2 + #integrands_minus = self.lineshapes[ls_key][iqpt, iband]**2*exponents_minus/(exponents_minus - 1.0)**2 + #integrals1 = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega + #if(np.abs(integrals1 - integrals[0]) > np.abs(integrals1)*1.0e-6): + # print(integrals1, integrals[0]) + # raise RuntimeError('1389') + #kappa_diag1 += gvel_sum*integrals1*self.freqs[iqpt][iband]**2*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 + kappa_diag += np.einsum('ij,k->ijk', gvel_sum, integrals)*self.freqs[iqpt][iband]**2*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 + #if(np.any(np.abs(kappa_diag[:,:,0] - kappa_diag1) > np.abs(kappa_diag1)*1.0e-6)): + # print(kappa_diag1, kappa_diag[:,:,0]) + # raise RuntimeError('1394') + # Here freqs[iqpt,iband] is squared instead of power of 4 because imag self-energy in SSCHA is defined as 2*freqs[iqpt,iband]*Gamma[iqpt, iband] + # Factor of 1/2 comes from the fact that we multiplied the lineshapes with 2.0 after we calculated them! + for ie in range(np.shape(kappa_diag)[-1]): + kappa_diag[:,:,ie] += kappa_diag[:,:,ie].T + kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + + for ie in range(np.shape(kappa_nondiag)[-1]): + kappa_nondiag[:,:,ie] += kappa_nondiag[:,:,ie].T + kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + + return kappa_diag, kappa_nondiag + + ################################################################################################################################# + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', mode_mixing = 'no', gauss_smearing = False): """ @@ -2374,7 +2511,7 @@ def get_group_velocity(self, q, freqs, eigvecs): for iuc in range(len(self.force_constants)): for iat in range(len(uc_positions)): for jat in range(len(uc_positions)): - ruc = -self.ruc[iuc] + uc_positions[iat] - uc_positions[jat] + ruc = -self.ruc[iuc] #+ uc_positions[iat] - uc_positions[jat] phase = np.dot(ruc, q)*2.0*np.pi auxfc[3*iat:3*(iat+1),3*jat:3*(jat+1)] += complex(0.0,1.0)*ruc[icart]*self.force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) ddynmat.append(auxfc * mm_inv_mat) @@ -2675,19 +2812,19 @@ def get_frequency_at_q(self, q): for iband in range(self.nband): if(w2_q[iband] < np.amax(w2_q)*1.0e-6): w2_q[iband] = 0.0 - if(np.any(w2_q < 0.0)): - print('At q: ') - print(q) - print(w2_q) - raise RuntimeError('SSCHA frequency imaginary. Stopping now.') - else: - w_q = np.sqrt(w2_q) + #if(np.any(w2_q < 0.0)): + # print('At q: ') + # print(q) + # print(w2_q) + # raise RuntimeError('SSCHA frequency imaginary. Stopping now.') + #else: + w_q = np.sqrt(w2_q) return w_q, pols_q ################################################################################################################################### - def get_dynamical_matrix(self, q): + def get_dynamical_matrix(self, q, q_direct = None, lo_to_splitting = True): """ @@ -2697,9 +2834,9 @@ def get_dynamical_matrix(self, q): """ + + uc_positions = self.dyn.structure.coords.copy() - #for ruc in uc_positions: - # ruc = find_minimum_vector(ruc, self.unitcell) m = np.tile(self.dyn.structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1.0 / mm_mat @@ -2710,6 +2847,12 @@ def get_dynamical_matrix(self, q): r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] phase = np.dot(r, q)*2.0*np.pi dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) + dynmat = dynmat#*mm_inv_mat + #dynmat = (dynmat + dynmat.conj().T)/2.0 + + if self.fc2.effective_charges is not None: + self.add_long_range(dynmat, q, q_direct, lo_to_splitting) + dynmat = dynmat*mm_inv_mat dynmat = (dynmat + dynmat.conj().T)/2.0 @@ -2717,6 +2860,49 @@ def get_dynamical_matrix(self, q): #################################################################################################################################### + def add_long_range(self, dynmat, q, q_direct, lo_to_splitting): + + """ + + Add long-range dipole-dipole dispersion to short-range force constant (dynmat) at wave vector (q (2.0*pi/A)). + + """ + + dynq = np.zeros((3,3,self.fc2.nat, self.fc2.nat), dtype = np.complex128, order = "F") + for i in range(self.fc2.nat): + for j in range(self.fc2.nat): + dynq[:,:, i, j] = dynmat[3*i : 3*i+3, 3*j:3*j+3] + + # Add the nonanalitic part back + QE_q = q * self.fc2.QE_alat / A_TO_BOHR + symph.rgd_blk_diff_phase_conv(0, 0, 0, dynq, QE_q, self.fc2.QE_tau, self.fc2.dielectric_tensor, self.fc2.QE_zeu, self.fc2.QE_bg, self.fc2.QE_omega, self.fc2.QE_alat, 0, +1.0, self.fc2.nat) + + # Check if the vector is gamma + if np.max(np.abs(q)) < 1e-12: + q_vect = np.zeros(3, dtype = np.double) + compute_nonanal = lo_to_splitting + if q_direct is not None: + # the - to take into account the difference between QE convension and our + if np.linalg.norm(q_direct) < 1e-8: + compute_nonanal = False + else: + q_vect[:] = -q_direct / np.sqrt(q_direct.dot(q_direct)) + else: + q_vect[:] = np.random.normal(size = 3) + q_vect /= np.sqrt(q_vect.dot(q_vect)) + + # Apply the nonanal contribution at gamma + if compute_nonanal: + QE_itau = np.arange(self.fc2.nat) + 1 + symph.nonanal(QE_itau, self.fc2.dielectric_tensor, q_vect, self.fc2.QE_zeu, self.fc2.QE_omega, dynq, self.fc2.nat, self.fc2.nat) + + # Copy in the final fc the result + for i in range(self.fc2.nat): + for j in range(self.fc2.nat): + dynmat[3*i : 3*i+3, 3*j:3*j+3] = dynq[:,:, i, j] + + #################################################################################################################################### + def get_dos(self, de = 0.1): """ From c8d6f180e255e3057b8c1ec44365192a37d0b553 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Mon, 24 Jul 2023 13:18:51 +0200 Subject: [PATCH 163/204] Now the test should also benchmark the timer module --- tests/TestFiniteDisplacementPhonons/test_au_phonons.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py index 44c49f71..342e1ce0 100644 --- a/tests/TestFiniteDisplacementPhonons/test_au_phonons.py +++ b/tests/TestFiniteDisplacementPhonons/test_au_phonons.py @@ -14,9 +14,7 @@ @pytest.mark.parametrize("supercell", [(2,2,2), (3,3,3)]) def test_phonons_finite_displacements(supercell, debug=False): """Test the phonons using finite displacements""" - timer=None - if debug: - timer = CC.Timer.Timer(active=True) + timer = CC.Timer.Timer(active=True) # Build a MgO structure using ASE atoms = ase.build.bulk('Cu', 'fcc', a=3.6) From 36d7ebaa168c1a616a712b6a28a3860fab624a05 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 24 Jul 2023 16:30:41 +0200 Subject: [PATCH 164/204] Small bug in group velocities --- cellconstructor/ThermalConductivity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index a20b97a4..a897d42b 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -2511,7 +2511,7 @@ def get_group_velocity(self, q, freqs, eigvecs): for iuc in range(len(self.force_constants)): for iat in range(len(uc_positions)): for jat in range(len(uc_positions)): - ruc = -self.ruc[iuc] #+ uc_positions[iat] - uc_positions[jat] + ruc = -self.ruc[iuc] + uc_positions[iat] - uc_positions[jat] phase = np.dot(ruc, q)*2.0*np.pi auxfc[3*iat:3*(iat+1),3*jat:3*(jat+1)] += complex(0.0,1.0)*ruc[icart]*self.force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) ddynmat.append(auxfc * mm_inv_mat) From 4d0af44db2c882ab79126514d292b139bc45cb73 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 27 Jul 2023 14:32:04 +0200 Subject: [PATCH 165/204] Fix a bug in saving the dynamical matrix complex part --- cellconstructor/Phonons.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 46606b49..ffe34ecb 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -1245,7 +1245,7 @@ def save_qe(self, filename, full_name = False): fp.write("( %10.6f%10.6f %10.6f%10.6f %10.6f%10.6f )\n" % (np.real(atomic_disp[3*i, mu]), np.imag(atomic_disp[3*i,mu]), np.real(atomic_disp[3*i+1, mu]), np.imag(atomic_disp[3*i+1,mu]), - np.real(atomic_disp[3*i+2, mu]), np.imag(atomic_disp[3*i+1,mu]))) + np.real(atomic_disp[3*i+2, mu]), np.imag(atomic_disp[3*i+2,mu]))) fp.write("*" * 75 + "\n") fp.close() From 813114eb92db64fb8db2aece24173e32fd0997ba Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 1 Aug 2023 15:34:47 +0200 Subject: [PATCH 166/204] Fix typo --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 9297dff7..29031c3a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -3469,7 +3469,7 @@ def get_os_perturb_dynamic_correction_along_path(dyn, tensor3, q_path : list of triplets Path of the q-points of the Brillouin Zone, in 2pi/Anstrom units, where the caculation is performed - (defualt: [0.0,0.0,0.0]) + (default: [0.0,0.0,0.0]) q_path_file : string Name of the file where the q_path can be read. Format: column of triples, q points in 2pi/Angstrom From 78afc81c3118560eb5f55fceff31167a4cf849de Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 4 Aug 2023 14:36:48 +0200 Subject: [PATCH 167/204] Cleaning spectral_kappa --- cellconstructor/ThermalConductivity.py | 75 +++++++++++++++++--------- 1 file changed, 50 insertions(+), 25 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index a897d42b..a5d95d87 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -27,12 +27,12 @@ import time -__SEEKPATH=False +__SEEKPATH__ = False try: import seekpath - __SEEKPATH=True + __SEEKPATH__ = True except: - __SEEKPATH=False + __SEEKPATH__ = False try: from mpi4py import MPI @@ -298,7 +298,7 @@ def get_kpoints_in_path(path, nkpts, kprim): else: distance.append(distance[-1]) start_dist = distance[-1] - nkpts1 = np.int(np.floor(length/dl)) + nkpts1 = int(np.floor(length/dl)) for j in range(nkpts1): newqpt = qpt2 + (qpt1 - qpt2)/float(nkpts1)*float(j + 1) kpoints.append(newqpt) @@ -853,11 +853,12 @@ def calc_spectral_kappa_gk_diag(self, temperature): ls_key = format(temperature, '.1f') spec_kappa = np.zeros((3,3,self.lineshapes[ls_key].shape[-1])) + spec_kappa_off = np.zeros((3,3,self.lineshapes[ls_key].shape[-1])) energies = np.arange(spec_kappa.shape[-1], dtype=float)*self.delta_omega + self.delta_omega - exponents = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_plus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 - exponents = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) - integrands_minus = self.lineshapes[ls_key]**2*exponents/(exponents - 1.0)**2 + exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_plus = self.lineshapes[ls_key]**2*exponents_plus/(exponents_plus - 1.0)**2 + exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + integrands_minus = self.lineshapes[ls_key]**2*exponents_minus/(exponents_minus - 1.0)**2 integrands = (integrands_plus + integrands_minus) for istar in self.qstar: @@ -865,14 +866,32 @@ def calc_spectral_kappa_gk_diag(self, temperature): for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): if(self.off_diag): - gvel = np.zeros_like(self.gvels[iqpt, iband, iband]) - gvel_sum = np.zeros((3,3), dtype=complex) - for r in self.rotations: - rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) - gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) - gvel_sum += np.outer(gvel.conj(), gvel) - gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) - spec_kappa += np.einsum('ij,k->ijk',gvel_sum,integrands[iqpt, iband])*self.freqs[iqpt, iband]**2 + for jband in range(self.nband): + if(self.freqs[iqpt, jband] != 0.0): + if(self.group_velocity_mode != 'wigner'): + vel_fact = 1.0 + else: + vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al + if(iband == jband): + gvel = np.zeros_like(self.gvels[iqpt, iband, iband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, iband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) + spec_kappa += np.einsum('ij,k->ijk',gvel_sum,integrands[iqpt, iband])*self.freqs[iqpt, iband]**2 + else: + integrands_plus1 = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_plus/(exponents_plus - 1.0)**2 + integrands_minus1 = self.lineshapes[ls_key][iqpt, iband]*self.lineshapes[ls_key][iqpt, jband]*exponents_minus/(exponents_minus - 1.0)**2 + gvel = np.zeros_like(self.gvels[iqpt, iband, jband]) + gvel_sum = np.zeros((3,3), dtype=complex) + for r in self.rotations: + rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) + gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) + gvel_sum += np.outer(gvel.conj(), gvel) + gvel_sum = gvel_sum.real/vel_fact**2/float(len(self.rotations)) + spec_kappa_off += np.einsum('ij,k->ijk',gvel_sum,integrands_plus1 + integrands_minus1)*self.freqs[iqpt,iband]*self.freqs[iqpt,jband]*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 else: gvel = np.zeros_like(self.gvels[iqpt, iband]) gvel_sum = np.zeros((3,3), dtype=complex) @@ -882,11 +901,18 @@ def calc_spectral_kappa_gk_diag(self, temperature): gvel_sum += np.outer(gvel.conj(), gvel) gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) spec_kappa += np.einsum('ij,k->ijk',gvel_sum,integrands[iqpt, iband])*self.freqs[iqpt, iband]**2 + for ie in range(np.shape(spec_kappa)[-1]): + spec_kappa[:,:,ie] += spec_kappa[:,:,ie].T + spec_kappa[:,:,ie] /= 2.0 + spec_kappa_off[:,:,ie] += spec_kappa_off[:,:,ie].T + spec_kappa_off[:,:,ie] /= 2.0 + spec_kappa = spec_kappa*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi*(SSCHA_TO_THZ*2.0*np.pi)*1.0e12/2.0 - tot_kappa = np.sum(spec_kappa, axis = len(spec_kappa) - 1)*self.delta_omega + spec_kappa_off = spec_kappa_off*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + tot_kappa = np.sum(spec_kappa + spec_kappa_off, axis = len(spec_kappa) - 1)*self.delta_omega print('Total kappa is: ', np.diag(tot_kappa)) - return energies*SSCHA_TO_THZ, spec_kappa/SSCHA_TO_THZ + return energies*SSCHA_TO_THZ, spec_kappa/SSCHA_TO_THZ, spec_kappa_off/SSCHA_TO_THZ ################################################################################################################################## @@ -1191,7 +1217,7 @@ def calculate_kappa_gk_offdiag_mode_mixing(self, temperature, write_lineshapes, if(self.freqs[iqpt, kband] != 0.0): for lband in range(self.nband): if(self.freqs[iqpt, lband] != 0.0): - if(self.group_velocity_mode == 'wigner'): + if(self.group_velocity_mode != 'wigner'): vel_fact = 1.0 else: vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al @@ -1213,7 +1239,7 @@ def calculate_kappa_gk_offdiag_mode_mixing(self, temperature, write_lineshapes, gvel1 = np.dot(rot_q, self.gvels[iqpt, iband, jband]) gvel2 = np.dot(rot_q, self.gvels[iqpt, kband, lband]) gvel_sum += np.outer(gvel1.conj(), gvel2) - gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + gvel_sum = gvel_sum.real/vel_fact**2/float(len(self.rotations)) if(iband == jband and iband == kband and kband == lband): kappa_diag += integrals*np.sqrt(self.freqs[iqpt,iband]*self.freqs[iqpt, kband]*self.freqs[iqpt,jband]*self.freqs[iqpt, lband])*\ gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 @@ -1282,7 +1308,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): for jband in range(self.nband): - if(self.group_velocity_mode == 'wigner'): + if(self.group_velocity_mode != 'wigner'): vel_fact = 1.0 else: vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al @@ -1296,7 +1322,7 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga rot_q = np.dot(self.reciprocal_lattice.T, np.dot(r.T, np.linalg.inv(self.reciprocal_lattice.T))) gvel = np.dot(rot_q, self.gvels[iqpt, iband, jband]) gvel_sum += np.outer(gvel.conj(), gvel) - gvel_sum = gvel_sum.real*vel_fact**2/float(len(self.rotations)) + gvel_sum = gvel_sum.real/vel_fact**2/float(len(self.rotations)) #kappa_nondiag += integrals*self.freqs[iqpt,iband]**2*(self.freqs[iqpt, iband]**2 + self.freqs[iqpt, jband]**2)/self.freqs[iqpt][jband]/self.freqs[iqpt][iband]*\ # gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 kappa_nondiag += integrals*self.freqs[iqpt,iband]*self.freqs[iqpt,jband]*gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 @@ -1312,7 +1338,6 @@ def calculate_kappa_gk_offdiag(self, temperature, write_lineshapes, energies, ga integrands_minus = self.lineshapes[ls_key][iqpt, iband]**2*exponents_minus/(exponents_minus - 1.0)**2 integrals = (np.sum(integrands_plus, axis = len(integrands_plus.shape) - 1) + np.sum(integrands_minus, axis = len(integrands_plus.shape) - 1))*self.delta_omega kappa_diag += gvel_sum*integrals*self.freqs[iqpt][iband]**2*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/2.0 - # Here freqs[iqpt,iband] is squared instead of power of 4 because imag self-energy in SSCHA is defined as 2*freqs[iqpt,iband]*Gamma[iqpt, iband] # Factor of 1/2 comes from the fact that we multiplied the lineshapes with 2.0 after we calculated them! kappa_diag += kappa_diag.T @@ -1354,7 +1379,7 @@ def calculate_kappa_gk_AC(self, temperature, write_lineshapes, energies, gauss_s for iband in range(self.nband): if(self.freqs[iqpt, iband] != 0.0): for jband in range(self.nband): - if(self.group_velocity_mode == 'wigner'): + if(self.group_velocity_mode != 'wigner'): vel_fact = 1.0 else: vel_fact = 2.0*np.sqrt(self.freqs[iqpt, jband]*self.freqs[iqpt, iband])/(self.freqs[iqpt, jband] + self.freqs[iqpt, iband]) # as per Eq.34 in Caldarelli et al @@ -1650,7 +1675,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec """ - if(not __SEEKPATH and kpoints is None): + if(not __SEEKPATH__ and kpoints is None): raise RuntimeError('To automatically generated a line in reciprocal space one need seekpath. First do "pip install seekpath"!') start_time = time.time() From 57d35e223282f710e1618ef5ad3bc48b4bb010fa Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Fri, 4 Aug 2023 15:32:24 +0200 Subject: [PATCH 168/204] Fix bug --- cellconstructor/Phonons.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index 46606b49..e28641d3 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -1245,7 +1245,7 @@ def save_qe(self, filename, full_name = False): fp.write("( %10.6f%10.6f %10.6f%10.6f %10.6f%10.6f )\n" % (np.real(atomic_disp[3*i, mu]), np.imag(atomic_disp[3*i,mu]), np.real(atomic_disp[3*i+1, mu]), np.imag(atomic_disp[3*i+1,mu]), - np.real(atomic_disp[3*i+2, mu]), np.imag(atomic_disp[3*i+1,mu]))) + np.real(atomic_disp[3*i+2, mu]), np.imag(atomic_disp[3*i+2,mu]))) fp.write("*" * 75 + "\n") fp.close() @@ -1254,7 +1254,7 @@ def save_phononpy(self, *args, **kwargs): warnings.warn("[DEPRECATION WARNING] save_phononpy is deprecated: use save_phonopy instead.") self.save_phonopy(*args, **kwargs) - def save_phonopy(self, path = ".", supercell_size = None, units_ev_ang2 = True, + def save_phonopy(self, path = ".", supercell_size = None, units_ev_ang2 = True, write_poscar = True, write_unitcell = False): """ EXPORT THE DYN IN THE PHONONPY FORMAT @@ -1262,7 +1262,7 @@ def save_phonopy(self, path = ".", supercell_size = None, units_ev_ang2 = True, This tool export the dynamical matrix into the PHONONPY plain text format. If units_ev_ang2 is True (default) the dynamical matrix is written in eV/A^2 - Otherwise we use the Ry/bohr^2, as the quantum espresso format. + Otherwise we use the Ry/bohr^2, as the quantum espresso format. Please, remember this when using Phononpy for the conversion factors. It will create a file called FORCE_CONSTANTS, one called unitcell.in @@ -1276,13 +1276,13 @@ def save_phonopy(self, path = ".", supercell_size = None, units_ev_ang2 = True, The supercell that defines the dynamical matrix, note phononpy works in the supercell. If none, it is inferred from the q points units_ev_ang2 : bool - If True (default) convert the units in eV / A^2 + If True (default) convert the units in eV / A^2 write_poscar : bool If True produce also the POSCAR file with the structure for phonopy. It requires ASE to be installed. write_unitcell : bool - If true, produce a unitcell.in for phonopy. + If true, produce a unitcell.in for phonopy. """ @@ -3494,7 +3494,7 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmode DYAGONALIZE THE DYNAMICAL MATRIX IN THE SUPERCELL ================================================= - This method dyagonalizes the dynamical matrix in q space + This method dyagonalizes the dynamical matrix in q space and returns the frequencies and the polarization vectors in the supercell, without having to generate the force constant in real space. @@ -4450,7 +4450,7 @@ def get_dyn_from_ase_phonons(ase_ph, adjust_qstar = True): -def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0.05, +def compute_phonons_finite_displacements(structure, ase_calculator, epsilon = 0.05, supercell = (1,1,1), progress = -1, progress_bar = False, use_symmetries = True, debug=False): """ @@ -4588,11 +4588,11 @@ def compute_force(indices): -def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon=0.05, +def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon=0.05, supercell=(1,1,1), progress=-1, progress_bar=False, - debug=False, + debug=False, timer=None): """ COMPUTE THE FORCE CONSTANT MATRIX EXPLOITING SYMMETRIES @@ -4668,7 +4668,7 @@ def compute_phonons_finite_displacements_sym(structure, ase_calculator, epsilon= # Get irt from the symmetries (atomic corrispondance after the application of symmetry) if debug: print("Getting symmetry equivalent atoms") - + if timer is not None: irts = timer.execute_timed_function(symmetries.get_symmetry_equivalent_atoms, symm, super_structure) else: @@ -4749,7 +4749,7 @@ def compute_force(indices): # Define the force constant matrix in the basis of the auxiliary vectors fc_aux_basis = np.zeros((nat3, nat3), dtype = np.double) - + # Compute the auxiliary force basis # This could exploit parallelization to speedup the calculation for index, gen in enumerate(generators): @@ -4766,7 +4766,7 @@ def compute_force(indices): force_sym = timer.execute_timed_function(symmetries.ApplySymmetryToVector,current_sym, force, super_structure.unit_cell, current_irt) else: force_sym = symmetries.ApplySymmetryToVector(current_sym, force, super_structure.unit_cell, current_irt) - + fc_aux_basis[index, :] = force_sym.ravel() @@ -4802,7 +4802,7 @@ def compute_force(indices): # if coeffs is None: # disp_basis.append(v.ravel()) - # counter_index += 1 + # counter_index += 1 # fc_aux_basis[counter_index, :] = force_sym[i_sym, :, :].ravel() #np.savetxt("OriginalFC.dat", fc, fmt="%10.6f") @@ -4835,7 +4835,7 @@ def compute_force(indices): correct_dyn = Phonons(structure, nqirr = np.prod(supercell)) q_tot = symmetries.GetQGrid(structure.unit_cell, supercell) if timer is not None: - dynq = timer.execute_timed_function(GetDynQFromFCSupercell, + dynq = timer.execute_timed_function(GetDynQFromFCSupercell, final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) else: dynq = GetDynQFromFCSupercell(final_dyn.dynmats[0], np.array(q_tot), structure, super_structure) From 791ab276086f5abe751c9e4fad608b3dde34e58e Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 9 Aug 2023 08:05:49 +0200 Subject: [PATCH 169/204] Added isotopes --- cellconstructor/ThermalConductivity.py | 224 ++++++++++++++----------- 1 file changed, 126 insertions(+), 98 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 1f20b0cc..92de54ca 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from __future__ import print_function -from __future__ import division +from __future__ import division import numpy as np import os, sys @@ -16,8 +16,8 @@ import thermal_conductivity import cellconstructor as CC -import cellconstructor.Phonons as Phonons -import cellconstructor.Methods as Methods +import cellconstructor.Phonons as Phonons +import cellconstructor.Methods as Methods import cellconstructor.symmetries as symmetries import cellconstructor.Spectral from cellconstructor.Units import A_TO_BOHR, BOHR_TO_ANGSTROM, RY_TO_CM, ELECTRON_MASS_UMA, MASS_RY_TO_UMA, HBAR, K_B, RY_TO_EV @@ -29,7 +29,7 @@ __SEEKPATH=False try: - import seekpath + import seekpath __SEEKPATH=True except: __SEEKPATH=False @@ -39,14 +39,14 @@ __MPI__ = True except: __MPI__ = False - + try: import spglib __SPGLIB__ = True except: __SPGLIB__ = False -__EPSILON__ = 1e-5 +__EPSILON__ = 1e-5 __EPSILON_W__ = 3e-9 HBAR_JS = 1.054571817e-34 HPLANCK = HBAR_JS*2.0*np.pi @@ -55,7 +55,7 @@ AU = 1.66053906660e-27 EV_TO_J = 1.602176634e-19 RY_TO_THZ = RY_TO_CM/0.0299792458 -SSCHA_TO_THZ = np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM/100.0/2.0/np.pi +SSCHA_TO_THZ = np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM/100.0/2.0/np.pi SSCHA_TO_MS = np.sqrt(RY_TO_J/AU/MASS_RY_TO_UMA)/BOHR_TO_ANGSTROM KB = 1.380649e-23 STR_FMT = '<15' @@ -114,7 +114,37 @@ 'Sn':[[0.0097, 111.9048], [0.0066, 113.9028], [0.0034, 114.9033], [0.1454, 115.9017], [0.0768, 116.9029], [0.2422, 117.9016], [0.0859, 118.9033], [0.3258, 119.9022], [0.0463, 121.9034], [0.0579, 123.9053]],\ 'Sb':[[0.5721, 120.9038], [0.4279, 122.9042]],\ 'Te':[[0.0009, 119.9040], [0.0255, 121.9030], [0.0089, 122.9042], [0.0474, 123.9028], [0.0707, 124.9044], [0.1884, 125.9033], [0.3174, 127.9045], [0.3408, 129.9062]],\ - 'I' :[[1.0000, 126.9045]],} + 'I' :[[1.0000, 126.9045]],\ + 'Xe':[[0.0009,123.905896], [0.0009,125.904269], [0.0192, 127.903530], [0.2644,128.904779], [0.0408,129.903508], [0.2118,130.905082], [0.2689,131.904154], [0.1044,133.905395], [0.0887,135.907220]],\ + 'Cs':[[1.0000,132.905447]],\ + 'Ba':[[0.00106,129.906310], [0.00101,131.905056], [0.02417,133.904503], [0.06592,134.905683], [0.07854,135.904570], [0.11232,136.905821], [0.71698,137.905241]],\ + 'La':[[0.00090,137.907107], [0.99910,138.906348]],\ + 'Ce':[[0.00185,135.907144], [0.00251,137.905986], [0.88450,139.905434], [0.11114,141.909240]],\ + 'Pr':[[1.0000,140.907648]],\ + 'Nd':[[0.272,141.907719], [0.122,142.909810], [0.238,143.910083], [0.083,144.912569], [0.172,145.913112], [0.057,147.916889], [0.056,149.920887]],\ + 'Pm':[[1.000,144.912744]],\ + 'Sm':[[0.0307,143.911995], [0.1499,146.914893], [0.1124,147.914818], [0.1382,148.917180], [0.0738,149.917271], [0.2675,151.919728], [0.2275,153.922205]],\ + 'Eu':[[0.4781,150.919846], [0.5219,152.921226]],\ + 'Gd':[[0.0020,151.919788], [0.0218,153.920862], [0.1480,154.922619], [0.2047,155.922120], [0.1565,156.923957], [0.2484,157.924101], [0.2186,159.927051]],\ + 'Tb':[[1.0000,158.925343]],\ + 'Dy':[[0.0006,155.924278], [0.0010,157.924405], [0.0234,159.925194], [0.1891,160.926930], [0.2551,161.926795], [0.2490,162.928728], [0.2818,163.929171]],\ + 'Ho':[[1.0000,164.930319]],\ + 'Er':[[0.0014,161.928775], [0.0161,163.929197], [0.3361,165.930290], [0.2293,166.932045], [0.2678,167.932368], [0.1493,169.935460]],\ + 'Tm':[[1.0000,168.934211]],\ + 'Yb':[[0.0013,167.933894], [0.0304,169.934759], [0.1428,170.936322], [0.2183,171.936378], [0.1613,172.938207], [0.3183,173.938858], [0.1276,175.942568]],\ + 'Lu':[[0.9741,174.940768], [0.0259,175.942682]],\ + 'Hf':[[0.0016,173.940040], [0.0526,175.941402], [0.1860,176.943220], [0.2728,177.943698], [0.1362,178.945815], [0.3508,179.946549]],\ + 'Ta':[[0.00012,179.947466], [0.99988,180.947996]],\ + 'W' :[[0.0012,179.946706], [0.2650,181.948206], [0.1431,182.950224], [0.3064,183.950933], [0.2843,185.954362]],\ + 'Re':[[0.3740,184.952956], [0.6260,186.955751]],\ + 'Os':[[0.0002,183.952491], [0.0159,185.953838], [0.0196,186.955748], [0.1324,187.955836], [0.1615,188.958145], [0.2626,189.958445], [0.4078,191.961479]],\ + 'Ir':[[0.373,190.960591], [0.627,192.962924]],\ + 'Pt':[[0.00014,189.959930], [0.00782,191.961035], [0.32967,193.962664], [0.33832,194.964774], [0.25242,195.964935], [0.07163,197.967876]],\ + 'Au':[[1.0000,196.966552]],\ + 'Hg':[[0.0015,195.965815], [0.0997,197.966752], [0.1687,198.968262], [0.2310,199.968309], [0.1318,200.970285], [0.2986,201.970626], [0.0687,203.973476]],\ + 'Tl':[[0.29524,202.972329], [0.70476, 204.974412]],\ + 'Pb':[[0.014,203.973029],[0.241,205.974449], [0.221,206.975881], [0.524,207.976636]],\ + 'Bi':[[1.0000,208.980383]],} # This should be continued! def get_spglib_cell(dyn): @@ -197,9 +227,9 @@ def heat_capacity(freqs, temperature, hbar1, kb1, cp_mode = 'quantum'): return 0.0 elif(cp_mode == 'classical'): return kb1 - + #################################################################################################################################### - + def bose_einstein(freqs, temperature, hbar1, kb1, cp_mode = 'quantum'): if(cp_mode == 'quantum'): @@ -256,7 +286,7 @@ def check_degeneracy(x, tol): Simple check if there are degenerate phonon modes for a given k - point. x - frequencies at the given k - point - tol - tolerance to be satisfied + tol - tolerance to be satisfied """ @@ -272,7 +302,7 @@ def check_degeneracy(x, tol): curr_degs.append(j) degs.append(curr_degs) return degs - + def get_kpoints_in_path(path, nkpts, kprim): segments = path['path'] coords = path['point_coords'] @@ -371,7 +401,7 @@ def apply_asr(tensor3, tol = 1.0e-10): print('Applying ASR!') natom = tensor3.unitcell_structure.N_atoms - fc3 = thermal_conductivity.third_order_cond_centering.apply_asr(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) + fc3 = thermal_conductivity.third_order_cond_centering.apply_asr(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) tensor3.tensor = fc3 permutation = thermal_conductivity.third_order_cond_centering.check_permutation_symmetry(tensor3.tensor, tensor3.r_vector2.T, tensor3.r_vector3.T, tensor3.n_R, natom) if(not permutation): @@ -437,7 +467,7 @@ def rotate_eigenvectors(ddm, eigs): _, eigvecs = np.linalg.eigh(np.dot(eigs.conj().T, np.dot(ddm, eigs))) rot_eigvecs = np.dot(eigvecs, eigs) - + return rot_eigvecs def load_thermal_conductivity(filename = 'tc.pkl'): @@ -462,7 +492,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari Necesary: - dyn : SSCHA dynamical matrix object + dyn : SSCHA dynamical matrix object tensor3 : SSCHA 3rd order force constants kpoint_grid : Initializes the grid for Brillouin zone integration. It is used in the calculation of lattice thermal conductivity and @@ -472,7 +502,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari smearing_type : Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). cp_mode : Flag determining how phonon occupation factors are calculated (quantum/classical), default is quantum group_velocity_mode : How to calculate group velocities. 'analytical', 'finite_difference', 'wigner' - off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. + off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. """ @@ -500,11 +530,11 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.cp_mode = cp_mode self.off_diag = off_diag self.volume = self.dyn.structure.get_volume() - + self.reciprocal_lattice = np.linalg.inv(self.unitcell).T self.force_constants = [] self.ruc = [] - self.set_force_constants(dyn) + self.set_force_constants(dyn) self.nuc = len(self.ruc) self.symmetry = symmetries.QE_Symmetry(self.dyn.structure) @@ -538,7 +568,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari ################################################################################################################### def save_pickle(self, filename = 'tc.pkl'): - + import pickle with open(filename, 'wb') as outfile: @@ -548,7 +578,7 @@ def save_pickle(self, filename = 'tc.pkl'): def set_kpoints_spglib(self): - cell = get_spglib_cell(self.dyn) + cell = get_spglib_cell(self.dyn) mapping, grid = spglib.get_ir_reciprocal_mesh(self.kpoint_grid, cell, is_shift=[0, 0, 0]) rotations = spglib.get_symmetry_dataset(cell)['rotations'] @@ -678,7 +708,7 @@ def set_scattering_grids_fortran(self): rotations.append(tot_r[i]) rotations = np.asfortranarray(rotations) nsym = len(rotations) - + irrgrid = [] for iqpt in range(self.nirrkpt): irrgrid.append(self.qpoints[self.qstar[iqpt][0]]) @@ -704,7 +734,7 @@ def set_scattering_grids_fortran(self): print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') self.set_up_scattering_grids = True print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') - + ################################################################################################################################### def set_scattering_grids_simple(self): @@ -727,7 +757,7 @@ def set_scattering_grids_simple(self): print('Number of scattering events for ' + str(iqpt + 1) + '. q point in irr zone is ' + str(len(self.scattering_grids[iqpt])) + '!') self.set_up_scattering_grids = True print('Set up scattering grids in ' + format(time.time() - start_time, '.1f') + ' seconds.') - + #################################################################################################################################### @@ -748,7 +778,7 @@ def set_force_constants(self, dyn): self.force_constants = self.fc2.tensor.copy() self.ruc = self.fc2.r_vector2.T invcell = np.linalg.inv(self.supercell) - + ################################################################################################################################### @@ -759,7 +789,7 @@ def setup_smearings(self, smearing_value = 0.00005): if type == adaptive : smearing for each phonon mode is unique and depends on the group velocity of the mode and the k point density. For modes with zero velocity, take value 10 times smaller than the average smearing. - if type == constant : smearing is same for all of the modes + if type == constant : smearing is same for all of the modes smearing_value : value of the smearing in case type == "constant" @@ -950,7 +980,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = ne : Number of frequency points to calculate phonon lineshapes on in case of GK. \ Number of frequency points to solve self-consistent equation on in case of SRTA. \ Less anharmonic materials and lower temperatures will need more points (in case of GK). - mode_mixing : Calculate full self energy matrix + mode_mixing : Calculate full self energy matrix kappa_filename : Name of the file to write the results to. """ @@ -986,7 +1016,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(' ' + format('Kappa_offdiag yz (W/mK)', STR_FMT)) kappa_file.write(' ' + format('Kappa_offdiag zx (W/mK)', STR_FMT)) kappa_file.write('\n') - + for itemp in range(ntemp): tc_key = format(temperatures[itemp], '.1f') if(mode == 'SRTA'): @@ -1020,7 +1050,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(3*' ' + format(kappa_nondiag[1][2], '.12e')) kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) kappa_file.write('\n') - self.kappa[tc_key] = kappa_diag + kappa_nondiag + self.kappa[tc_key] = kappa_diag + kappa_nondiag elif(mode == 'GK' and not mode_mixing): self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega @@ -1048,7 +1078,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = kappa_file.write(3*' ' + format(kappa_nondiag[1][2], '.12e')) kappa_file.write(3*' ' + format(kappa_nondiag[2][0], '.12e')) kappa_file.write('\n') - self.kappa[tc_key] = kappa_diag + kappa_nondiag + self.kappa[tc_key] = kappa_diag + kappa_nondiag elif(mode == 'GK' and mode_mixing): self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega @@ -1114,7 +1144,7 @@ def calculate_kappa_gk_diag(self, temperature, write_lineshapes, energies, gauss gvel_sum += np.outer(gvel.conj(), gvel) gvel_sum = gvel_sum.real*SSCHA_TO_MS**2/float(len(self.rotations)) kappa += gvel_sum*integrals[iqpt][iband]*self.freqs[iqpt][iband]**2 - + kappa += kappa.T kappa = kappa/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi @@ -1182,7 +1212,7 @@ def calculate_kappa_gk_offdiag_mode_mixing(self, temperature, write_lineshapes, else: kappa_nondiag += integrals*np.sqrt(self.freqs[iqpt,iband]*self.freqs[iqpt, kband]*self.freqs[iqpt,jband]*self.freqs[iqpt, lband])*\ gvel_sum*SSCHA_TO_MS**2*(SSCHA_TO_THZ)*1.0e12*2.0*np.pi/4.0 - + kappa_diag += kappa_diag.T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi kappa_nondiag += kappa_nondiag.T @@ -1512,10 +1542,10 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec smear : Smearing used for energy conservation. """ - + if(not __SEEKPATH and kpoints is None): raise RuntimeError('To automatically generated a line in reciprocal space one need seekpath. First do "pip install seekpath"!') - + start_time = time.time() tics = [] @@ -1722,7 +1752,7 @@ def write_lineshape(self, filename, curr_ls, jkpt, energies, mode_mixing): filename : title of the file at which lineshape is to be written. curr_ls : lineshape to be written jkpt : the index of the k point for which lineshapes are to be written - energies : frequencies at which lineshapes have been calculated + energies : frequencies at which lineshapes have been calculated mode_mixing : Defines the shape of input curr_ls. if true curr_ls = (nband, nband, ne) """ @@ -1807,7 +1837,7 @@ def calculate_kappa_srta_diag(self, temperature, ne, write_lifetimes, gauss_smea if(write_lifetimes): self.write_transport_properties_to_file(temperature, isotope_scattering) - + kappa = np.zeros((3,3)) for istar in self.qstar: for iqpt in istar: @@ -1980,12 +2010,12 @@ def calculate_kappa_srta_offdiag_isaeva(self, temperature, ne, write_lifetimes, #################################################################################################################################### def get_frequencies(self): - + """ Get frequencies on a grid which is used for Brillouin zone integration (in THz). - + """ - + return self.freqs*SSCHA_TO_THZ #################################################################################################################################### @@ -2021,7 +2051,7 @@ def get_scattering_rates_isotope(self, isotopes = None): for i in range(len(isotopes)): for j in range(len(isotopes[i])): g_factor[i] += isotopes[i][j][0]*(1.0 - isotopes[i][j][1]/av_mass[i])**2 - print('G factor of ' + self.dyn.structure.atoms[i] + ' is ' + format(g_factor[i], '.4f') + '.') + print('G factor of ' + self.dyn.structure.atoms[i] + ' is ' + format(g_factor[i], '.4f') + '.') for ikpt in range(self.nirrkpt): jkpt = self.qstar[ikpt][0] @@ -2032,7 +2062,7 @@ def get_scattering_rates_isotope(self, isotopes = None): self.got_scattering_rates_isotopes = True print('Calculated scattering rates due to the isotope scattering in ' + format(time.time() - start_time, '.2e'), ' seconds!') - + #################################################################################################################################### def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): @@ -2051,9 +2081,9 @@ def get_scattering_rates_isotope_at_q(self, iqpt, g_factor, av_mass): raise RuntimeError('NAN!') scatt_rate[iband] = np.pi*scatt_rate[iband]/2.0/float(self.nkpt)*self.freqs[iqpt, iband]**2 return scatt_rate - + #################################################################################################################################### - + def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scattering = True, isotopes = None, method = 'fortran-LA'): """ @@ -2065,10 +2095,10 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter isotopes : The relative concentration and masses of isotopes method : Method by which phonon lifetimes are to be calculated. fortran/python : practically means only how many times fortran routine is being called. "fortran" much faster. - LA/P : Approximation used for the lifetimes. + LA/P : Approximation used for the lifetimes. LA means one shot approximation defined in J. Phys.: Condens. Matter 33 363001 . Default value. P means perturbative approximation. The one used by most other codes! - SC : Solve for lifetimes and frequency shifts self-consistently! + SC : Solve for lifetimes and frequency shifts self-consistently! """ if(not self.set_up_scattering_grids): @@ -2223,7 +2253,7 @@ def get_lifetimes(self, temperature, ne, gauss_smearing = False, isotope_scatter elif(method == 'SC'): self.get_lifetimes_selfconsistently(temperature, ne, gauss_smearing = gauss_smearing) - + else: print('Unrecognized method! Exit!') raise RuntimeError('No such method for calculating phonon lifetimes!') @@ -2450,7 +2480,7 @@ def get_group_velocity_wigner(self, q): gvel = np.zeros_like(tmp_gvel) for i in range(3): gvel[:,:,i] = (tmp_gvel[:,:,i].conj().T + tmp_gvel[:,:,i])/2.0 - + return gvel, np.array(ddynmat).transpose((1,2,0)) ################################################################################################################################## @@ -2684,7 +2714,7 @@ def get_frequency_at_q(self, q): w_q = np.sqrt(w2_q) return w_q, pols_q - + ################################################################################################################################### def get_dynamical_matrix(self, q): @@ -2707,12 +2737,12 @@ def get_dynamical_matrix(self, q): for ir in range(len(self.ruc)): for iat in range(len(uc_positions)): for jat in range(len(uc_positions)): - r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] + r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] phase = np.dot(r, q)*2.0*np.pi dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) dynmat = dynmat*mm_inv_mat dynmat = (dynmat + dynmat.conj().T)/2.0 - + return dynmat #################################################################################################################################### @@ -2778,7 +2808,7 @@ def get_dos_from_lineshapes(self, temperature, de = 0.1): dos_smoothed[ien] += gaussian(energies_smoothed[ien], energies[jen], de/2.0)*dos[jen] int_dos = np.sum(dos_smoothed)*de dos_smoothed = dos_smoothed/int_dos*np.sum(dos)*self.delta_omega - + return energies*SSCHA_TO_THZ, dos/SSCHA_TO_THZ, energies_smoothed*SSCHA_TO_THZ, dos_smoothed/SSCHA_TO_THZ ######################################################################################################################################## @@ -2815,9 +2845,9 @@ def get_mean_square_displacement_from_lineshapes(self, temperature = 300.0): print('Lineshapes not calculated for this temperature! Can not calculate mean square displacements! ') dos = 0 energies = 0 - + #################################################################################################################################### - + def write_harmonic_properties_to_file(self, filename = 'Phonon_harmonic_properties'): """ @@ -2887,29 +2917,29 @@ def get_lifetimes_at_q(self, k_grid, q, smear, T): """ - + structure = self.fc2.unitcell_structure - - # Get the integration points + + # Get the integration points k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = self.fc2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -2917,14 +2947,14 @@ def get_lifetimes_at_q(self, k_grid, q, smear, T): print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) + w_q=np.sqrt(w2_q) def compute_k(k): # phi3 in q, k, -q - k phi3=self.fc3.Interpolate(k,-q-k, asr = False) #print(phi3) # phi2 in k - phi2_k = self.fc2.Interpolate(k, asr = False) + phi2_k = self.fc2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) @@ -2932,15 +2962,15 @@ def compute_k(k): # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - + if is_k_gamma: w2_k[0:3]=0.0 if not (w2_k >= 0.0).all(): @@ -2958,7 +2988,7 @@ def compute_k(k): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) #print(d3) @@ -2969,23 +2999,23 @@ def compute_k(k): d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) #print(d3_pols) - n_mod=3*structure.N_atoms + n_mod=3*structure.N_atoms # Fortran duty ==== - + selfnrg = thermal_conductivity.third_order_cond.compute_perturb_selfnrg_single(smear,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), d3_pols,n_mod) - return selfnrg - + return selfnrg + CC.Settings.SetupParallel() selfnrg =CC.Settings.GoParallel(compute_k, k_points, reduce_op = "+") # divide by the N_k factor selfnrg /= len(k_points) # (n_mod,nsigma) - + #w_q_ext=w_q[...,None] - + shift=np.divide(selfnrg.real, 2*w_q, out=np.zeros_like(selfnrg.real), where=w_q!=0) hwhm=np.divide(-selfnrg.imag, 2*w_q, out=np.zeros_like(selfnrg.imag), where=w_q!=0) @@ -3242,29 +3272,29 @@ def get_lifetimes_at_q_smaller_grid(self, k_grid, weights, q, smear, T): """ - + structure = self.fc2.unitcell_structure - - # Get the integration points + + # Get the integration points #k_points = CC.symmetries.GetQGrid(structure.unit_cell, k_grid) - - + + # Get the phi2 in q phi2_q = self.fc2.Interpolate(q, asr = False) # dynamical matrix in q - m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() + m = np.tile(structure.get_masses_array(), (3,1)).T.ravel() mm_mat = np.sqrt(np.outer(m, m)) mm_inv_mat = 1 / mm_mat # d2_q = phi2_q * mm_inv_mat - + # Diagonalize the dynamical matrix in q w2_q, pols_q = np.linalg.eigh(d2_q) - + # Check if the q point is gamma is_q_gamma = CC.Methods.is_gamma(structure.unit_cell, q) - + if is_q_gamma: w2_q[0:3]=0.0 if not (w2_q >= 0.0).all(): @@ -3272,7 +3302,7 @@ def get_lifetimes_at_q_smaller_grid(self, k_grid, weights, q, smear, T): print('w(q)= ',np.sign(w2_q)*np.sqrt(np.abs(w2_q))*CC.Units.RY_TO_CM,' (cm-1)') print('Cannot continue with SSCHA negative frequencies') exit() - w_q=np.sqrt(w2_q) + w_q=np.sqrt(w2_q) def compute_k(inputs): k = inputs[0] @@ -3281,7 +3311,7 @@ def compute_k(inputs): phi3=self.fc3.Interpolate(k,-q-k, asr = False) #print(phi3) # phi2 in k - phi2_k = self.fc2.Interpolate(k, asr = False) + phi2_k = self.fc2.Interpolate(k, asr = False) # phi2 in -q-k phi2_mq_mk = self.fc2.Interpolate(-q -k, asr = False) @@ -3289,15 +3319,15 @@ def compute_k(inputs): # dynamical matrices (divide by the masses) d2_k = phi2_k * mm_inv_mat d2_mq_mk = phi2_mq_mk * mm_inv_mat - + # Diagonalize the dynamical matrices w2_k, pols_k = np.linalg.eigh(d2_k) w2_mq_mk, pols_mq_mk = np.linalg.eigh(d2_mq_mk) - - + + is_k_gamma = CC.Methods.is_gamma(structure.unit_cell, k) is_mq_mk_gamma = CC.Methods.is_gamma(structure.unit_cell, -q-k) - + if is_k_gamma: w2_k[0:3]=0.0 if not (w2_k >= 0.0).all(): @@ -3315,7 +3345,7 @@ def compute_k(inputs): print('Cannot continue with SSCHA negative frequencies') exit() w_mq_mk=np.sqrt(w2_mq_mk) - + # Dividing the phi3 by the sqare root of masses d3 = np.einsum("abc, a, b, c -> abc", phi3, 1/np.sqrt(m), 1/np.sqrt(m), 1/np.sqrt(m)) #print(d3) @@ -3326,15 +3356,15 @@ def compute_k(inputs): d3_pols = np.einsum("abc, ci -> abi", d3_pols, pols_mq_mk) #print(d3_pols) - n_mod=3*structure.N_atoms + n_mod=3*structure.N_atoms # Fortran duty ==== - + selfnrg = thermal_conductivity.third_order_cond.compute_perturb_selfnrg_single(smear,T, np.array([w_q,w_k,w_mq_mk]).T, np.array([is_q_gamma,is_k_gamma,is_mq_mk_gamma]), d3_pols,n_mod) - return selfnrg*float(weight) - + return selfnrg*float(weight) + CC.Settings.SetupParallel() input_list = [] @@ -3343,9 +3373,9 @@ def compute_k(inputs): selfnrg =CC.Settings.GoParallel(compute_k, input_list, reduce_op = "+") # divide by the N_k factor selfnrg /= float(sum(weights)) # (n_mod,nsigma) - + #w_q_ext=w_q[...,None] - + shift=np.divide(selfnrg.real, 2*w_q, out=np.zeros_like(selfnrg.real), where=w_q!=0) hwhm=np.divide(-selfnrg.imag, 2*w_q, out=np.zeros_like(selfnrg.imag), where=w_q!=0) @@ -3502,5 +3532,3 @@ def calculate_vibrational_part_of_bulk_modulus(self, temperatures): outfile.write(3*' ' + format(temperatures[itemp], '.12e')) outfile.write(3*' ' + format(bulk[itemp], '.12e')) outfile.write('\n') - - From e4c38c401ec019260c0ec752ee79dc0679be2af3 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 21 Aug 2023 12:50:15 +0200 Subject: [PATCH 170/204] Quickfix from issue --- cellconstructor/Spectral.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 29031c3a..6626f74e 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -242,6 +242,8 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): # Add all the new computed dynamical matrix for iq in range(len(q_tot)): + if (iq==0): + new_dyn.dynmats[iq] = dynq[iq, :, :] new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars From 123779662bf6bad09a75594066a530b01b70ccf7 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 21 Aug 2023 12:50:39 +0200 Subject: [PATCH 171/204] Quickfix --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 6626f74e..ec305701 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -244,7 +244,8 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): for iq in range(len(q_tot)): if (iq==0): new_dyn.dynmats[iq] = dynq[iq, :, :] - new_dyn.dynmats.append(dynq[iq, :, :]) + else: + new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From d74b24c08794093534a220ad6a2bd5df2f8ae114 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Mon, 21 Aug 2023 12:58:29 +0200 Subject: [PATCH 172/204] Not a fix? --- cellconstructor/Spectral.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ec305701..29031c3a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -242,10 +242,7 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): # Add all the new computed dynamical matrix for iq in range(len(q_tot)): - if (iq==0): - new_dyn.dynmats[iq] = dynq[iq, :, :] - else: - new_dyn.dynmats.append(dynq[iq, :, :]) + new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From aafeadd3ac1b57a392c74aed869c634c893de333 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 22 Aug 2023 09:58:15 +0200 Subject: [PATCH 173/204] Fix to test a bug when interpolating the static respose function on a path in some systems. --- cellconstructor/Spectral.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 29031c3a..ba87f525 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -242,7 +242,10 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): # Add all the new computed dynamical matrix for iq in range(len(q_tot)): - new_dyn.dynmats.append(dynq[iq, :, :]) + if (iq==0): + new_dyn.dynmats[iq] = dynq[iq, :, :] + else: + new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From 1efffef89b98b31e6334d3c0168f9531912c9e37 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Thu, 24 Aug 2023 07:40:09 +0200 Subject: [PATCH 174/204] Better like this? --- cellconstructor/Spectral.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index ba87f525..d396a680 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -241,11 +241,13 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): dynq = get_static_correction(dyn, tensor3, k_grid, q_tot, T) # Add all the new computed dynamical matrix + new_dyn.dynmats[iq] = [] for iq in range(len(q_tot)): - if (iq==0): - new_dyn.dynmats[iq] = dynq[iq, :, :] - else: - new_dyn.dynmats.append(dynq[iq, :, :]) + new_dyn.dynmats.append(dynq[iq, :, :]) + # if (iq==0): + # new_dyn.dynmats[iq] = dynq[iq, :, :] + # else: + # new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From 24c8546b531b02f98d5ba9dc8f88b2796689a982 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 24 Aug 2023 08:13:06 +0200 Subject: [PATCH 175/204] Adding symmetrizetion of group velocities --- cellconstructor/ThermalConductivity.py | 78 ++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 6 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index a5d95d87..721b13fe 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1438,16 +1438,68 @@ def calculate_kappa_gk_AC(self, temperature, write_lineshapes, energies, gauss_s for ie in range(np.shape(kappa_diag)[-1]): kappa_diag[:,:,ie] += kappa_diag[:,:,ie].T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi - + kappa_diag *= (np.exp(energies*HBAR_RY*2.0*np.pi/KB/temperature) - 1.0)/(energies*HBAR_RY*2.0*np.pi/KB/temperature) for ie in range(np.shape(kappa_nondiag)[-1]): kappa_nondiag[:,:,ie] += kappa_nondiag[:,:,ie].T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi + kappa_nondiag *= (np.exp(energies*HBAR_RY*2.0*np.pi/KB/temperature) - 1.0)/(energies*HBAR_RY*2.0*np.pi/KB/temperature) return kappa_diag, kappa_nondiag ################################################################################################################################# + def get_self_energy_at_q(self, iqpt, temperature, energies, mode_mixing = 'no', gauss_smearing = False, write_self_energy = False): + + if(self.delta_omega == 0.0 and energies is not None): + self.delta_omega = energies[1] - energies[0] + + if(not self.set_up_scattering_grids): + self.set_scattering_grids_simple() + + is_q_gamma = CC.Methods.is_gamma(self.fc2.unitcell_structure.unit_cell, self.k_points[iqpt]) + + if(mode_mixing == 'mode_mixing'): + self_energy = thermal_conductivity.get_lf.calculate_self_energy_full(self.freqs[iqpt], self.k_points[iqpt], self.eigvecs[iqpt], is_q_gamma, \ + self.scattering_grids[iqpt].T, self.scattering_weights[iqpt], self.fc2.tensor, self.fc3.tensor, self.fc2.r_vector2, self.fc3.r_vector2, \ + self.fc3.r_vector3, self.dyn.structure.coords.T, self.reciprocal_lattice, self.dyn.structure.get_masses_array(), self.sigmas[iqpt], \ + temperature, energies, True, gauss_smearing, False, len(self.scattering_grids[iqpt]), self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), len(energies)) + elif(mode_mixing == 'no'): + self_energy = thermal_conductivity.get_lf.calculate_self_energy_p(self.freqs[iqpt], self.k_points[iqpt], self.eigvecs[iqpt], is_q_gamma, \ + self.scattering_grids[iqpt].T, self.scattering_weights[iqpt], self.fc2.tensor, self.fc3.tensor, self.fc2.r_vector2, self.fc3.r_vector2, \ + self.fc3.r_vector3, self.dyn.structure.coords.T, self.reciprocal_lattice, self.dyn.structure.get_masses_array(), self.sigmas[iqpt], \ + temperature, energies, True, gauss_smearing, False, len(self.scattering_grids[iqpt]), self.dyn.structure.N_atoms, len(self.fc2.tensor), len(self.fc3.tensor), len(energies)) + else: + raise RuntimeError('The chosen option for mode_mixing(' + mode_mixing + ') does not exist!') + if(gauss_smearing): + from scipy.signal import hilbert + real_part = hilbert(self_energy.imag) + self_energy.real = -1.0*real_part.imag + + if(write_self_energy): + with open('Self_energy_' + str(iqpt + 1), 'w+') as outfile: + outfile.write('# ' + format('Energy (THz)', STR_FMT)) + for iband in range(self.nband): + if(mode_mixing == 'mode_mixing'): + for jband in range(self.nband): + outfile.write(' ' + format('Self energy ' + str(iband) + ' - ' + str(jband) + ' (THz)', STR_FMT)) + else: + outfile.write(' ' + format('Self energy ' + str(iband) +' (THz)', STR_FMT)) + outfile.write('\n') + for ie in range(len(energies)): + outfile.write(3*' ' + format(energies[ie]*SSCHA_TO_THZ, '.12e')) + for iband in range(self.nband): + if(mode_mixing == 'mode_mixing'): + for jband in range(self.nband): + outfile.write(3*' ' + format(self_energy[ie, iband, jband].real*SSCHA_TO_THZ, '.12e') + ' ' + format(self_energy[ie, iband, jband].imag*SSCHA_TO_THZ, '.12e')) + else: + outfile.write(3*' ' + format(self_energy[ie, iband].real*SSCHA_TO_THZ, '.12e') + ' ' + format(self_energy[ie, iband].imag*SSCHA_TO_THZ, '.12e')) + outfile.write('\n') + + return self_energy + + ################################################################################################################################# + def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fortran', mode_mixing = 'no', gauss_smearing = False): """ @@ -2406,7 +2458,7 @@ def set_lifetimes(self, temperatures, lifetimes, freqs_shifts): #################################################################################################################################### - def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = False): + def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = True): """ @@ -2428,8 +2480,8 @@ def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = False if(symmetrize): self.gvels[ikpt] = self.symmetrize_group_velocity_by_index(self.gvels[ikpt], ikpt) - if(symmetrize): - self.symmetrize_group_velocities_over_star() + #if(symmetrize): + # self.symmetrize_group_velocities_over_star() #self.check_group_velocities() #self.check_frequencies() self.setup_smearings(smearing_value) @@ -2540,14 +2592,22 @@ def get_group_velocity(self, q, freqs, eigvecs): phase = np.dot(ruc, q)*2.0*np.pi auxfc[3*iat:3*(iat+1),3*jat:3*(jat+1)] += complex(0.0,1.0)*ruc[icart]*self.force_constants[iuc,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) ddynmat.append(auxfc * mm_inv_mat) + ddynmat[-1] += ddynmat[-1].conj().T + ddynmat[-1] /= 2.0 if(icart == 0): dirdynmat = ddynmat.copy() + + new_eigvecs = np.zeros_like(eigvecs) + for deg in degs: + _, eigvecs1 = np.linalg.eigh(np.dot(eigvecs[:,deg].T.conj(), np.dot(np.sum(ddynmat,axis=0)/3.0, eigvecs[:,deg]))) + new_eigvecs[:,deg] = np.dot(eigvecs[:,deg], eigvecs1) + ddynmat = np.array(ddynmat) tmp_gvel = [] freqs_matrix = np.einsum('i,j->ij', freqs, freqs) freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) for icart in range(3): - tmp_gvel.append(np.dot(eigvecs.T.conj(), np.dot(ddynmat[icart], eigvecs))/2.0*np.sqrt(freqs_matrix)) + tmp_gvel.append(np.dot(new_eigvecs.T.conj(), np.dot(ddynmat[icart], new_eigvecs))/2.0*np.sqrt(freqs_matrix)) tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) if(not self.off_diag): @@ -2675,11 +2735,17 @@ def get_group_velocity_finite_difference(self, q, freqs, eigvecs): if(icart == 0): dirdynmat = ddynmat[0].copy() ddynmat = np.array(ddynmat) + + new_eigvecs = np.zeros_like(eigvecs) + for deg in degs: + _, eigvecs1 = np.linalg.eigh(np.dot(eigvecs[:,deg].T.conj(), np.dot(np.sum(ddynmat,axis=0)/3.0, eigvecs[:,deg]))) + new_eigvecs[:,deg] = np.dot(eigvecs[:,deg], eigvecs1) + tmp_gvel = [] freqs_matrix = np.einsum('i,j->ij', freqs, freqs) freqs_matrix = np.divide(np.ones_like(freqs_matrix), freqs_matrix, out=np.zeros_like(freqs_matrix), where=freqs_matrix!=0.0) for icart in range(3): - tmp_gvel.append(np.dot(eigvecs.T.conj(), np.dot(ddynmat[icart], eigvecs))/2.0*np.sqrt(freqs_matrix)) + tmp_gvel.append(np.dot(new_eigvecs.T.conj(), np.dot(ddynmat[icart], new_eigvecs))/2.0*np.sqrt(freqs_matrix)) tmp_gvel = np.array(tmp_gvel).transpose((1,2,0)) if(not self.off_diag): From 65e01acb98b7900c72b0f7523d7b27fbd88dd02e Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 5 Sep 2023 08:48:31 +0200 Subject: [PATCH 176/204] Added optional phase factor --- FModules/get_lf.f90 | 2 +- cellconstructor/ThermalConductivity.py | 55 ++++++++++++++++++++------ 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 35364227..d51c179b 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -345,7 +345,7 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events print*, 'Negative eigenvalue of dynamical matrix!' w_neg_freqs = .True. endif - print*, 'Interpolate frequency' +! print*, 'Interpolate frequency' if(.not. w_neg_freqs) then w_q = sqrt(w2_q) self_energy(:,:,:) = complex(0.0_DP, 0.0_DP) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 721b13fe..d80c7b73 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -452,7 +452,7 @@ def load_thermal_conductivity(filename = 'tc.pkl'): class ThermalConductivity: - def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', group_velocity_mode = 'analytical', off_diag = False): + def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smearing_scale = 1.0, smearing_type = 'adaptive', cp_mode = 'quantum', group_velocity_mode = 'analytical', off_diag = False, phase_conv = 'smooth'): """ @@ -472,7 +472,8 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari smearing_type : Type of smearing used. Could be constant (same for all phonon modes) or adaptive (scaled by the phonon group velocity and the q point density). cp_mode : Flag determining how phonon occupation factors are calculated (quantum/classical), default is quantum group_velocity_mode : How to calculate group velocities. 'analytical', 'finite_difference', 'wigner' - off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. + off_diag : Boolean parameter for the calculation of the off-diagonal elements of group velocity. + phase_conv : Phase convention for Fourier interpolation. Smooth (wrt atomic positions) or step (wrt to lattice vectors) """ @@ -498,6 +499,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.supercell = self.dyn.structure.generate_supercell(dyn.GetSupercell()).unit_cell #print('Supercell: ') #print(self.supercell) + self.phase_conv = phase_conv self.smearing_type = smearing_type self.cp_mode = cp_mode self.off_diag = off_diag @@ -1094,7 +1096,7 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = self.delta_omega = np.amax(self.freqs)*2.0/float(ne) energies = np.arange(ne, dtype=float)*self.delta_omega + self.delta_omega if(self.off_diag): - kappa, kappa_nondiag = self.calculate_kappa_gk_AC(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) + kappa, kappa_nondiag, im_kappa, im_kappa_nondiag = self.calculate_kappa_gk_AC(temperatures[itemp], write_lineshapes, energies, gauss_smearing = gauss_smearing) kappa_file.write(3*' ' + format(temperatures[itemp], '.12e')) for icart in range(3): kappa_file.write(3*' ' + format(kappa[icart][icart][0], '.12e')) @@ -1125,6 +1127,16 @@ def calculate_kappa(self, temperatures = [300.0], write_lifetimes = True, mode = outfile.write(3*' ' + format(kappa_nondiag[0][1][ien], '.12e')) outfile.write(3*' ' + format(kappa_nondiag[1][2][ien], '.12e')) outfile.write(3*' ' + format(kappa_nondiag[2][0][ien], '.12e')) + for icart in range(3): + outfile.write(3*' ' + format(im_kappa[icart][icart][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa[0][1][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa[1][2][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa[2][0][ien], '.12e')) + for icart in range(3): + outfile.write(3*' ' + format(im_kappa_nondiag[icart][icart][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa_nondiag[0][1][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa_nondiag[1][2][ien], '.12e')) + outfile.write(3*' ' + format(im_kappa_nondiag[2][0][ien], '.12e')) outfile.write('\n') else: print('Can not recognize this method of calculating kappa! ') @@ -1370,6 +1382,9 @@ def calculate_kappa_gk_AC(self, temperature, write_lineshapes, energies, gauss_s ne = len(energies) exponents_plus = np.exp(energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) exponents_minus = np.exp(-1.0*energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature) + x = energies*SSCHA_TO_THZ*1.0e12*HPLANCK/KB/temperature + scale = (np.exp(x) - 1.0)/x + scale = np.insert(scale, 0, 1.0) kappa_diag = np.zeros((3,3, ne + 1)) kappa_diag1 = np.zeros((3,3)) @@ -1438,14 +1453,26 @@ def calculate_kappa_gk_AC(self, temperature, write_lineshapes, energies, gauss_s for ie in range(np.shape(kappa_diag)[-1]): kappa_diag[:,:,ie] += kappa_diag[:,:,ie].T kappa_diag = kappa_diag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi - kappa_diag *= (np.exp(energies*HBAR_RY*2.0*np.pi/KB/temperature) - 1.0)/(energies*HBAR_RY*2.0*np.pi/KB/temperature) for ie in range(np.shape(kappa_nondiag)[-1]): kappa_nondiag[:,:,ie] += kappa_nondiag[:,:,ie].T kappa_nondiag = kappa_nondiag/2.0*HBAR_JS**2/KB/temperature**2/self.volume/float(self.nkpt)*1.0e30*np.pi - kappa_nondiag *= (np.exp(energies*HBAR_RY*2.0*np.pi/KB/temperature) - 1.0)/(energies*HBAR_RY*2.0*np.pi/KB/temperature) - return kappa_diag, kappa_nondiag + for i in range(3): + for j in range(3): + kappa_diag[i,j] *= scale + kappa_nondiag[i,j] *= scale + + from scipy.signal import hilbert + im_kappa_diag = np.zeros_like(kappa_diag) + im_kappa_nondiag = np.zeros_like(kappa_nondiag) + for i in range(3): + for j in range(3): + im_kappa_diag[i,j] = hilbert(kappa_diag[i,j]).imag + im_kappa_nondiag[i,j] = hilbert(kappa_nondiag[i,j]).imag + + + return kappa_diag, kappa_nondiag, im_kappa_diag, im_kappa_nondiag ################################################################################################################################# @@ -2933,11 +2960,17 @@ def get_dynamical_matrix(self, q, q_direct = None, lo_to_splitting = True): mm_inv_mat = 1.0 / mm_mat dynmat = np.zeros_like(self.force_constants[0], dtype = complex) for ir in range(len(self.ruc)): - for iat in range(len(uc_positions)): - for jat in range(len(uc_positions)): - r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] - phase = np.dot(r, q)*2.0*np.pi - dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) + if(self.phase_conv == 'smooth'): + for iat in range(len(uc_positions)): + for jat in range(len(uc_positions)): + r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] + phase = np.dot(r, q)*2.0*np.pi + dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) + else: + r = -1.0*self.ruc[ir] + phase = np.dot(r, q)*2.0*np.pi + dynmat += self.force_constants[ir]*np.exp(1j*phase) + dynmat = dynmat#*mm_inv_mat #dynmat = (dynmat + dynmat.conj().T)/2.0 From 905f9053071f33373e5d656961377ac54ea91e00 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 25 Sep 2023 11:56:34 +0200 Subject: [PATCH 177/204] Added functions to symmetrize dynamical matrices --- FModules/get_lf.f90 | 2 +- cellconstructor/ThermalConductivity.py | 244 +++++++++++++++++++++++-- 2 files changed, 233 insertions(+), 13 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index d51c179b..4d8facdb 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -361,7 +361,7 @@ subroutine calculate_lineshapes_cartesian(irrqgrid, qgrid, weights, scatt_events curr_grid(:,jqpt) = qgrid(:,prev_events + jqpt) curr_w(jqpt) = weights(prev_events + jqpt) enddo - print*, 'Got grids' +! print*, 'Got grids' call calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, scatt_events(iqpt), nat, nfc2, & nfc3, ne, curr_grid, curr_w, fc2, fc3, r2_2, r3_2, r3_3, pos, kprim, masses, smear(:,iqpt), T, & energies, .not. parallelize, gaussian, classical, self_energy) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index d80c7b73..2a4ceb85 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -131,7 +131,7 @@ def get_spglib_cell(dyn): for iat in range(len(dyn.structure.atoms)): for jat in range(len(symbols_unique)): if(dyn.structure.atoms[iat] == symbols_unique[jat]): - numbers[iat] == jat + numbers[iat] = jat return (dyn.structure.unit_cell, pos, numbers) ######################################################################################################################################## @@ -449,6 +449,71 @@ def load_thermal_conductivity(filename = 'tc.pkl'): infile.close() return tc +def get_mapping_of_q_points(star, points, rotations): + + mapping = [] + for istar in range(len(star)): + star_mapping = [] + iqpt1 = star[istar][0] + qpt1 = points[iqpt1] + for iqpt in range(len(star[istar])): + found = False + qpt_mapping = [] + iqpt2 = star[istar][iqpt] + qpt2 = points[iqpt2] + if(np.linalg.norm(qpt2 + qpt1 - np.rint(qpt2 + qpt1)) < 1.0e-6): + qpt_mapping.append((-1, True)) + found = True + else: + for irot in range(len(rotations)): + qpt21 = np.dot(rotations[irot].T, qpt1) + diffq = qpt21 - qpt2 + addq = qpt21 + qpt2 + if(np.linalg.norm(diffq - np.rint(diffq)) < 1.0e-6): + qpt_mapping.append((irot, False)) + found = True + elif(np.linalg.norm(addq - np.rint(addq)) < 1.0e-6): + qpt_mapping.append((irot, True)) + found = True + if(found): + star_mapping.append(qpt_mapping) + else: + print('QPT1: ', qpt1) + print('QPT2: ', qpt2) + raise RuntimeError('Could not find any mapping between qpoints!') + mapping.append(star_mapping) + + return mapping + +def construct_symmetry_matrix(rotation, translation, qvec, pos, atom_map, cell): + matrix = np.zeros((len(pos)*3, len(pos)*3), dtype=complex) + rx1 = [] + for iat in range(len(pos)): + for jat in range(len(pos)): + if(iat == atom_map[jat]): + r = np.zeros_like(pos[iat]) + phase = 0.0 + r = pos[iat] - np.dot(rotation, pos[jat]) - translation + rx = np.dot(r, np.linalg.inv(cell)) + rx1.append(rx) + if(np.linalg.norm(rx - np.rint(rx))>1.0e-6): + raise RuntimeError('The atom is translated different than the translation vector!') + #else: + # print(rx) + #phase = np.dot(qvec, r)*2.0*np.pi + phase = -1.0*np.dot(qvec, r)*2.0*np.pi + #matrix[3*jat:3*(jat+1), 3*iat:3*(iat+1)] = rotation*np.exp(complex(0.0, phase)) + matrix[3*iat:3*(iat+1), 3*jat:3*(jat+1)] = rotation*np.exp(complex(0.0, phase)) + try: + imatrix = np.linalg.inv(matrix) + #print('Gamma is invertible!') + if(not np.linalg.norm(imatrix - matrix.conj().T)/np.linalg.norm(matrix) < 1.0e-5): + raise RuntimeError('The transformation matrix is not unitary!') + except: + print(np.matmul(matrix, matrix.conj().T)) + raise RuntimeError('Gamma is not invertible!') + return matrix#, rx1, np.exp(complex(0.0, phase)), phase, qvec, np.dot(qvec, r) + class ThermalConductivity: @@ -524,6 +589,7 @@ def __init__(self, dyn, tensor3, kpoint_grid = 2, scattering_grid = None, smeari self.freqs = np.zeros((self.nkpt, self.nband)) self.gruneisen = np.zeros((self.nkpt, self.nband)) self.eigvecs = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) + self.dynmats = np.zeros((self.nkpt, self.nband, self.nband), dtype=complex) if(self.off_diag): self.gvels = np.zeros((self.nkpt, self.nband, self.nband, 3), dtype = complex) else: @@ -554,13 +620,34 @@ def set_kpoints_spglib(self): cell = get_spglib_cell(self.dyn) mapping, grid = spglib.get_ir_reciprocal_mesh(self.kpoint_grid, cell, is_shift=[0, 0, 0]) - rotations = spglib.get_symmetry_dataset(cell)['rotations'] + symmetry_dataset = spglib.get_symmetry_dataset(cell, symprec=1e-5, angle_tolerance=-1.0, hall_number=0) + rotations = symmetry_dataset['rotations'] + translations = symmetry_dataset['translations'] + print(cell) + print('Spacegroup: ' + symmetry_dataset['international'] + str(symmetry_dataset['number'])) + self.atom_map = np.zeros((len(rotations), len(cell[1])), dtype=int) + nrot = len(rotations) + for irot in range(nrot): + found = [False for jat in range(len(cell[1]))] + new_pos = np.einsum('ij,jk->ik', cell[1], rotations[irot].T) + translations[irot] + for iat in range(len(cell[1])): + for jat in range(len(cell[1])): + diff = cell[1][jat] - new_pos[iat] + if(np.linalg.norm(diff - np.rint(diff)) < 1.0e-5): + self.atom_map[irot, iat] = jat + if(not found[iat]): + found[iat] = True + else: + print('Again found mapping to this atom!') + if(not all(found)): + raise RuntimeError('Could not find atom mapping for spacegroup symmetry: ' + str(irot + 1)) self.irr_k_points = np.array(grid[np.unique(mapping)] / np.array(self.kpoint_grid, dtype=float)) self.irr_k_points = np.dot(self.irr_k_points, self.reciprocal_lattice) self.qpoints = grid / np.array(self.kpoint_grid, dtype=float) self.k_points = np.dot(self.qpoints, self.reciprocal_lattice) self.rotations = np.array(rotations).copy() + self.translations = np.array(translations).copy() self.qstar = [] for i in np.unique(mapping): @@ -581,8 +668,8 @@ def set_kpoints_spglib(self): if(np.linalg.norm(diffq) < 1.0e-6): curr_little_group.append(irot) self.little_group[iqpt].extend(curr_little_group) - if(len(istar) * len(self.little_group[iqpt]) != len(rotations)): - raise RuntimeError('Number of symmetry operation wrong!', len(istar), len(self.little_group[iqpt]), len(rotations)) + #if(len(istar) * len(self.little_group[iqpt]) != len(rotations)): + # raise RuntimeError('Number of symmetry operation wrong!', len(istar), len(self.little_group[iqpt]), len(rotations)) mapping1, grid1 = spglib.get_ir_reciprocal_mesh(self.scattering_grid, cell, is_shift=[0, 0, 0]) self.scattering_qpoints = np.array(grid1 / np.array(self.scattering_grid, dtype=float)) @@ -1629,7 +1716,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort else: print('Selected mode_mixing approach: ', mode_mixing) raise RuntimeError('Do not recognize the selected mode_mixing approach!') - + scaled_positions = np.dot(self.dyn.structure.coords, np.linalg.inv(self.unitcell)) for ikpt in range(self.nirrkpt): jkpt = self.qstar[ikpt][0] if(mode_mixing == 'no'): @@ -1640,11 +1727,49 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort for iqpt in range(len(self.qstar[ikpt])): jqpt = self.qstar[ikpt][iqpt] + found = False if(mode_mixing != 'no'): #for iband in range(self.nband): # for jband in range(self.nband): # curr_ls[ikpt, iband,jband,:] = curr_ls[ikpt, iband,jband,:]/np.sum(curr_ls[ikpt,iband,jband,:])/(energies[1]-energies[0]) # Forcing the normalization. Not sure if the best option! - lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:] + if(iqpt == 0): + lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:] + found = True + else: + qpt1 = self.qpoints[self.qstar[ikpt][0]] + qpt2 = self.qpoints[jqpt] + if(np.linalg.norm(qpt2 + qpt1 - np.rint(qpt2 + qpt1)) < 1.0e-6): + lineshapes[jqpt,:,:,:] = 2.0*curr_ls[ikpt,:,:,:].conj() + found = True + else: + found = False + for irot in range(len(self.rotations)): + qpt21 = np.dot(self.rotations[irot].T, qpt1) + kpt21 = np.dot(qpt21, self.reciprocal_lattice) + diffq = qpt21 - qpt2 + addq = qpt21 + qpt2 + if(np.linalg.norm(diffq - np.rint(diffq)) < 1.0e-6): + rotation = self.rotations[irot] + translation = self.translations[irot] + atom_map = self.atom_map[irot] + gamma = construct_symmetry_matrix_for_dyn(rotation, translation, kpt21, scaled_positions, atom_map, self.unitcell, self.reciprocal_lattice) + #rotation = np.matmul(self.reciprocal_lattice.T, np.matmul(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) + #translation = np.dot(self.translations[irot], self.unitcell) + lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T) #np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) + found = True + break + elif(np.linalg.norm(addq - np.rint(addq)) < 1.0e-6): + rotation = self.rotations[irot] + translation = self.translations[irot] + atom_map = self.atom_map[irot] + gamma = construct_symmetry_matrix_for_dyn(rotation, translation, kpt21, scaled_positions, atom_map, self.unitcell, self.reciprocal_lattice) + #rotation = np.matmul(self.reciprocal_lattice.T, np.matmul(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) + #translation = np.dot(self.translations[irot], self.unitcell) + lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T).conj() #np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) + found = True + break + if(not found): + raise RuntimeError('Could not find mapping between q points in the star!') #tot_const_diag = 0.0 #tot_const_nondiag = 0.0 #for iband in range(len(lineshapes[jqpt])): @@ -1873,7 +1998,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec if(freqs[ikpt, iband] < np.amax(freqs[ikpt])*1.0e-6): curr_ls[ikpt, iband] = 0.0 if(mode_mixing != 'no'): - lineshapes[ikpt,:,:,:] = curr_ls[ikpt,:,:,:] + lineshapes[ikpt,:,:,:] = curr_ls[ikpt,:,:,:]*2.0 tot_const_diag = 0.0 tot_const_nondiag = 0.0 for iband in range(len(lineshapes[ikpt])): @@ -1952,6 +2077,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec outfile.write('\n') print('Calculated SSCHA lineshapes in: ', time.time() - start_time) + return energies, lineshapes ################################################################################################################################## def write_lineshape(self, filename, curr_ls, jkpt, energies, mode_mixing): @@ -2495,7 +2621,7 @@ def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = True) """ for ikpt, kpt in enumerate(self.k_points): - self.freqs[ikpt], self.eigvecs[ikpt] = self.get_frequency_at_q(kpt) + self.freqs[ikpt], self.eigvecs[ikpt], self.dynmats[ikpt] = self.get_frequency_at_q(kpt) if(self.group_velocity_mode == 'wigner'): self.gvels[ikpt], self.ddms[ikpt] = self.get_group_velocity_wigner(kpt) elif(self.group_velocity_mode == 'analytical'): @@ -2511,6 +2637,7 @@ def setup_harmonic_properties(self, smearing_value = 0.00005, symmetrize = True) # self.symmetrize_group_velocities_over_star() #self.check_group_velocities() #self.check_frequencies() + #self.check_dynamical_matrices() self.setup_smearings(smearing_value) print('Harmonic properties are set up!') @@ -2526,6 +2653,97 @@ def symmetrize_eigenvectors(self): self.eigvecs[pairs[0]] = (self.eigvecs[pairs[0]] + self.eigvecs[pairs[1]].conj())/2.0 self.eigvecs[pairs[1]] = self.eigvecs[pairs[0]].conj() + ################################################################################################################################# + + def get_sg_in_cartesian(self): + + rotations = np.zeros_like(self.rotations, dtype=float) + translations = np.zeros_like(self.translations, dtype=float) + for irot in range(len(rotations)): + rotations[irot] = np.matmul(self.reciprocal_lattice.T, np.matmul(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) + translations = np.dot(self.translations, self.unitcell) + + return rotations, translations + + ################################################################################################################################# + + def check_dynamical_matrices(self): + + rotations, translations = self.get_sg_in_cartesian() + #for irot in range(len(rotations)): + # print('SG' + str(irot + 1)) + # print(rotations[irot]) + # print(translations[irot]) + # print(tc.atom_map[irot]) + mapping = get_mapping_of_q_points(self.qstar, self.qpoints, self.rotations) + for istar in range(len(self.qstar)): + iqpt1 = self.qstar[istar][0] + qpt1 = self.qpoints[iqpt1] + kpt1 = self.k_points[iqpt1] + dyn1 = self.dynmats[iqpt1].copy() + for iqpt in range(1, len(self.qstar[istar])): + iqpt2 = self.qstar[istar][iqpt] + qpt2 = self.qpoints[iqpt2] + kpt2 = self.k_points[iqpt2] + dyn2 = self.dynmats[iqpt2].copy() + for imap in range(len(mapping[istar][iqpt])): + irot = mapping[istar][iqpt][imap][0] + atom_map = self.atom_map[irot] + conjugate = mapping[istar][iqpt][imap][1] + qpt21 = np.dot(self.rotations[irot].T, qpt1) + kpt22 = np.dot(rotations[irot], kpt1) + kpt21 = np.dot(self.reciprocal_lattice.T, qpt21) + if(np.linalg.norm(kpt21 - kpt22) > 1.0e-6): + print(np.linalg.norm(kpt21 - kpt22)) + print('Rotation in cartesian and reduced coordinates gives different results!') + diffq = qpt21 - qpt2 + addq = qpt21 + qpt2 + if(irot == -1): + dyn21 = dyn1.conj() + if(np.any(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2)): + print('Some differences between rotated and original dynamical matrices!') + print(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2) + print(qpt1, qpt2) + for iband in range(len(dyn1)): + print(dyn2[iband]) + print(dyn21[iband]) + print(dyn2[iband] - dyn21[iband]) + print('') + #raise RuntimeError('Mapping dynamical matrices from q to -q did not work!') + else: + if(np.linalg.norm(diffq - np.rint(diffq)) < 1.0e-6 and not conjugate): + gamma = construct_symmetry_matrix(rotations[irot], translations[irot], kpt21, self.dyn.structure.coords, atom_map, self.unitcell) + dyn21 = np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) + if(np.any(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2)): + print('Some differences between rotated and original dynamical matrices!') + print(rotations[irot]) + print(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2) + print(qpt1, qpt2) + for iband in range(len(dyn1)): + print(dyn2[iband]) + print(dyn21[iband]) + print(dyn2[iband] - dyn21[iband]) + print('') + #raise RuntimeError('Mapping dynamical matrices from q to q star did not work!') + elif(np.linalg.norm(addq - np.rint(addq)) < 1.0e-6 and conjugate): + gamma = construct_symmetry_matrix(rotations[irot], translations[irot], kpt21, self.dyn.structure.coords, atom_map, self.unitcell) + dyn21 = np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) + dyn21 = dyn21.conj() + if(np.any(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2)): + print('Some differences between rotated and original dynamical matrices!') + print(rotations[irot]) + print(np.abs(dyn21 - dyn2)/np.amax(np.abs(dyn2)) > 1.0e-2) + print(qpt1, qpt2) + for iband in range(len(dyn1)): + print(dyn2[iband]) + print(dyn21[iband]) + print(dyn2[iband] - dyn21[iband]) + print('') + #raise RuntimeError('Mapping dynamical matrices from q to q star through -q did not work!') + else: + raise RuntimeError('The mapping was wrong! This rotation does not give expected q point!') + + print('Dynamical matrices satisfy symmetries!') ################################################################################################################################# @@ -2938,7 +3156,7 @@ def get_frequency_at_q(self, q): #else: w_q = np.sqrt(w2_q) - return w_q, pols_q + return w_q, pols_q, dynmat ################################################################################################################################### @@ -2948,7 +3166,7 @@ def get_dynamical_matrix(self, q, q_direct = None, lo_to_splitting = True): Get dynamical matrix at wave vector. - q : wave vector without 2pi factor + q : wave vector in cartesian coordinates without 2pi factor """ @@ -2966,12 +3184,14 @@ def get_dynamical_matrix(self, q, q_direct = None, lo_to_splitting = True): r = -1.0*self.ruc[ir] + uc_positions[iat] - uc_positions[jat] phase = np.dot(r, q)*2.0*np.pi dynmat[3*iat:3*(iat+1),3*jat:3*(jat+1)] += self.force_constants[ir,3*iat:3*(iat+1),3*jat:3*(jat+1)]*np.exp(1j*phase) - else: + elif(self.phase_conv == 'step'): r = -1.0*self.ruc[ir] phase = np.dot(r, q)*2.0*np.pi dynmat += self.force_constants[ir]*np.exp(1j*phase) + else: + raise RuntimeError('Can not recognize phase convention!') - dynmat = dynmat#*mm_inv_mat + #dynmat = dynmat#*mm_inv_mat #dynmat = (dynmat + dynmat.conj().T)/2.0 if self.fc2.effective_charges is not None: From 9ed0e7160d166cd8c9358b3dc9ed53d18467090c Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Mon, 25 Sep 2023 15:31:24 +0200 Subject: [PATCH 178/204] Transform of lineshapes included! --- cellconstructor/ThermalConductivity.py | 41 +++++++------------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 2a4ceb85..5f2cd245 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -623,7 +623,6 @@ def set_kpoints_spglib(self): symmetry_dataset = spglib.get_symmetry_dataset(cell, symprec=1e-5, angle_tolerance=-1.0, hall_number=0) rotations = symmetry_dataset['rotations'] translations = symmetry_dataset['translations'] - print(cell) print('Spacegroup: ' + symmetry_dataset['international'] + str(symmetry_dataset['number'])) self.atom_map = np.zeros((len(rotations), len(cell[1])), dtype=int) nrot = len(rotations) @@ -1717,6 +1716,8 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort print('Selected mode_mixing approach: ', mode_mixing) raise RuntimeError('Do not recognize the selected mode_mixing approach!') scaled_positions = np.dot(self.dyn.structure.coords, np.linalg.inv(self.unitcell)) + rotations, translations = self.get_sg_in_cartesian() + mapping = get_mapping_of_q_points(self.qstar, self.qpoints, self.rotations) for ikpt in range(self.nirrkpt): jkpt = self.qstar[ikpt][0] if(mode_mixing == 'no'): @@ -1742,34 +1743,14 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort lineshapes[jqpt,:,:,:] = 2.0*curr_ls[ikpt,:,:,:].conj() found = True else: - found = False - for irot in range(len(self.rotations)): - qpt21 = np.dot(self.rotations[irot].T, qpt1) - kpt21 = np.dot(qpt21, self.reciprocal_lattice) - diffq = qpt21 - qpt2 - addq = qpt21 + qpt2 - if(np.linalg.norm(diffq - np.rint(diffq)) < 1.0e-6): - rotation = self.rotations[irot] - translation = self.translations[irot] - atom_map = self.atom_map[irot] - gamma = construct_symmetry_matrix_for_dyn(rotation, translation, kpt21, scaled_positions, atom_map, self.unitcell, self.reciprocal_lattice) - #rotation = np.matmul(self.reciprocal_lattice.T, np.matmul(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) - #translation = np.dot(self.translations[irot], self.unitcell) - lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T) #np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) - found = True - break - elif(np.linalg.norm(addq - np.rint(addq)) < 1.0e-6): - rotation = self.rotations[irot] - translation = self.translations[irot] - atom_map = self.atom_map[irot] - gamma = construct_symmetry_matrix_for_dyn(rotation, translation, kpt21, scaled_positions, atom_map, self.unitcell, self.reciprocal_lattice) - #rotation = np.matmul(self.reciprocal_lattice.T, np.matmul(self.rotations[irot].T, np.linalg.inv(self.reciprocal_lattice.T))) - #translation = np.dot(self.translations[irot], self.unitcell) - lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T).conj() #np.matmul(gamma, np.matmul(dyn1, gamma.conj().T)) - found = True - break - if(not found): - raise RuntimeError('Could not find mapping between q points in the star!') + irot = mapping[ikpt][iqpt][0][0] + atom_map = self.atom_map[irot] + qpt21 = np.dot(self.rotations[irot].T, qpt1) + kpt21 = np.dot(qpt21, self.reciprocal_lattice) + gamma = construct_symmetry_matrix(rotations[irot], translations[irot], kpt21, self.dyn.structure.coords, atom_map, self.unitcell) + lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T) + if(mapping[ikpt][iqpt][0][1]): + lineshapes[jqpt,:,:,:] = lineshapes[jqpt,:,:,:].conj() #tot_const_diag = 0.0 #tot_const_nondiag = 0.0 #for iband in range(len(lineshapes[jqpt])): @@ -1918,7 +1899,7 @@ def get_lineshapes_along_the_line(self, temperature, ne = 1000, filename = 'spec nkpts = len(kpoints) freqs = np.zeros((nkpts, self.nband)) for ikpt in range(nkpts): - freqs[ikpt], _ = self.get_frequency_at_q(kpoints[ikpt]) + freqs[ikpt], _, _ = self.get_frequency_at_q(kpoints[ikpt]) maxfreq = np.amax(freqs)*2.1 energies = (np.arange(ne, dtype=float) + 1.0)/float(ne)*maxfreq From 088f6bc3c5ef4ad44f9a99c6dd6984346a9aed0e Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 26 Sep 2023 11:32:05 +0200 Subject: [PATCH 179/204] Wrong scaling factor in cartesian lineshapes! --- cellconstructor/ThermalConductivity.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 5f2cd245..98090917 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1740,7 +1740,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort qpt1 = self.qpoints[self.qstar[ikpt][0]] qpt2 = self.qpoints[jqpt] if(np.linalg.norm(qpt2 + qpt1 - np.rint(qpt2 + qpt1)) < 1.0e-6): - lineshapes[jqpt,:,:,:] = 2.0*curr_ls[ikpt,:,:,:].conj() + lineshapes[jqpt,:,:,:] = curr_ls[ikpt,:,:,:].conj() found = True else: irot = mapping[ikpt][iqpt][0][0] @@ -1748,7 +1748,7 @@ def get_lineshapes(self, temperature, write_lineshapes, energies, method = 'fort qpt21 = np.dot(self.rotations[irot].T, qpt1) kpt21 = np.dot(qpt21, self.reciprocal_lattice) gamma = construct_symmetry_matrix(rotations[irot], translations[irot], kpt21, self.dyn.structure.coords, atom_map, self.unitcell) - lineshapes[jqpt,:,:,:] = 2.0*np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T) + lineshapes[jqpt,:,:,:] = np.einsum('ij,jkl,km->iml', gamma, curr_ls[ikpt,:,:,:], gamma.conj().T) if(mapping[ikpt][iqpt][0][1]): lineshapes[jqpt,:,:,:] = lineshapes[jqpt,:,:,:].conj() #tot_const_diag = 0.0 From 3d55795513028d7f21aa74c10c80b2b190a7471d Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Tue, 26 Sep 2023 15:46:28 +0200 Subject: [PATCH 180/204] Some changes --- FModules/get_lf.f90 | 3 ++- cellconstructor/ThermalConductivity.py | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/FModules/get_lf.f90 b/FModules/get_lf.f90 index 4d8facdb..9a36fcf7 100644 --- a/FModules/get_lf.f90 +++ b/FModules/get_lf.f90 @@ -1315,8 +1315,9 @@ subroutine calculate_self_energy_full(w_q, qpt, pols_q, is_q_gamma, nqpt, nat, n if(any(self_energy .ne. self_energy)) then print*, 'NaN for jqpt', jqpt endif + deallocate(intermediate) deallocate(ifc3, d3, d3_pols, selfnrg) - deallocate(pols_k, pols_mk_mq, intermediate) + deallocate(pols_k, pols_mk_mq) deallocate(pols_k2, pols_mk_mq2) deallocate(kpt, mkpt) deallocate(w2_k, w2_mk_mq, w_k, w_mk_mq) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 98090917..0e9343c2 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -490,13 +490,18 @@ def construct_symmetry_matrix(rotation, translation, qvec, pos, atom_map, cell): rx1 = [] for iat in range(len(pos)): for jat in range(len(pos)): - if(iat == atom_map[jat]): + if(jat == atom_map[iat]): r = np.zeros_like(pos[iat]) phase = 0.0 r = pos[iat] - np.dot(rotation, pos[jat]) - translation rx = np.dot(r, np.linalg.inv(cell)) rx1.append(rx) if(np.linalg.norm(rx - np.rint(rx))>1.0e-6): + print(rotation) + print(translation) + print(pos[iat], pos[jat]) + print(atom_map) + print(rx) raise RuntimeError('The atom is translated different than the translation vector!') #else: # print(rx) @@ -625,6 +630,7 @@ def set_kpoints_spglib(self): translations = symmetry_dataset['translations'] print('Spacegroup: ' + symmetry_dataset['international'] + str(symmetry_dataset['number'])) self.atom_map = np.zeros((len(rotations), len(cell[1])), dtype=int) + nrot = len(rotations) for irot in range(nrot): found = [False for jat in range(len(cell[1]))] From 2e712fb1a9c3c7ecfcac59d9b1fc06428c70ef44 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Thu, 12 Oct 2023 11:12:08 +0200 Subject: [PATCH 181/204] Fixed the generate video of vibration function. Also now it complies with PEP8 standard --- cellconstructor/Manipulate.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/cellconstructor/Manipulate.py b/cellconstructor/Manipulate.py index 65ff231a..d2153ed6 100644 --- a/cellconstructor/Manipulate.py +++ b/cellconstructor/Manipulate.py @@ -241,22 +241,25 @@ def save_scf_trajectory(fname, trajectory): fp.write(text) fp.write("\n") +def GenerateXYZVideoOfVibrations(*args, **kwargs): + """ + Deprecated. look generate_vibration_video instead. + """ + return generate_vibration_video(*args, **kwargs) -def GenerateXYZVideoOfVibrations(dynmat, filename, mode_id, amplitude, dt, N_t, supercell=(1,1,1), w_pols = None): +def generate_vibration_video(dynmat, filename, mode_id, amplitude, dt, N_t, supercell=(1,1,1), w_pols = None): """ XYZ VIDEO ========= This function save in the filename the XYZ video of the vibration along the chosen mode. - - NOTE: this functionality is supported only at gamma. - Parameters ---------- filename : str Path of the filename in which you want to save the video. It is written in the xyz format, so it is recommanded to use the .xyz extension. + if 'None', then only return the video without saving into a file mode_id : int The number of the mode. Modes are numbered by their frequencies increasing, starting from imaginary (unstable) ones (if any). @@ -267,10 +270,13 @@ def GenerateXYZVideoOfVibrations(dynmat, filename, mode_id, amplitude, dt, N_t, N_t : int The total number of frames. supercell : list of 3 ints - The dimension of the supercell to be shown + Deprecated. It will be ignored. w_pols : (frequencies, polarizaitons) The result of the dyagonalization of the dynamical matrix. + Results + ------- + video : list of CC.Structure.Structure """ # Define the conversion between the frequency in Ry and femptoseconds @@ -280,19 +286,22 @@ def GenerateXYZVideoOfVibrations(dynmat, filename, mode_id, amplitude, dt, N_t, if w_pols is not None: ws, polvects = w_pols else: - ws, polvects = dynmat.DyagDinQ(0) + ws, polvects = dynmat.DiagonalizeSupercell() + + my_supercell = dynmat.GetSupercell() + superstruct = dynmat.structure.generate_supercell(my_supercell) # Extract the good one w = ws[mode_id] - _m_ = np.tile(dynmat.structure.get_masses_array(), (3,1)).T.ravel() + _m_ = np.tile(superstruct.get_masses_array(), (3,1)).T.ravel() polv = polvects[:, mode_id] / np.sqrt(_m_) polv /= np.linalg.norm(polv) # Get the basis structure - basis = dynmat.structure.generate_supercell(supercell) + basis = superstruct # Reproduce the polarization vectors along the number of supercells - polv = np.tile(polv, np.prod(supercell)) + polv = polvects[:, mode_id] video_list = [] times = [] From f90860417f4cef6e2fac1ed8f97aedcd38f8011f Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 07:51:00 +0200 Subject: [PATCH 182/204] Fix for the "get_full_dynamic_correction_along_path_multiprocessing" output name. --- cellconstructor/Spectral.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 9297dff7..59bf1d66 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1333,11 +1333,15 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): print(" ") print(" Results printed in "+filename_sp+'_static.dat') print(" ") + filename_new=filename_sp+'_static.dat' + output_file_sort_function(filename_new, smear_id_cm, smear_cm, nsm) else: print(" ") print(" Results printed in "+filename_sp+'_[smear].dat') print(" ") - output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + name="{:6.1f}".format(smear_cm[ism]).strip() + filename_new=filename_sp+'_'+name+'.dat' + output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) From b5782eac9a33ecbf29865011e4195c2e1331662c Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 07:55:54 +0200 Subject: [PATCH 183/204] Fix the naming output for "dynamic_correction_along_path_multiprocessing". --- cellconstructor/Spectral.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index d396a680..fc84fd37 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -247,7 +247,7 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): # if (iq==0): # new_dyn.dynmats[iq] = dynq[iq, :, :] # else: - # new_dyn.dynmats.append(dynq[iq, :, :]) + # new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() @@ -1333,16 +1333,19 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): plwork.join() - if static_limit : print(" ") print(" Results printed in "+filename_sp+'_static.dat') print(" ") + filename_new=filename_sp+'_static.dat' + output_file_sort_function(filename_new, smear_id_cm, smear_cm, nsm) else: print(" ") print(" Results printed in "+filename_sp+'_[smear].dat') print(" ") - output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + name="{:6.1f}".format(smear_cm[ism]).strip() + filename_new=filename_sp+'_'+name+'.dat' + output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) From c2405b09458a3c2918238a745bdceddb2300ab04 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 07:59:01 +0200 Subject: [PATCH 184/204] Closing file --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index fc84fd37..eceeb069 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1194,6 +1194,7 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): data = data[data[:,0].argsort(kind='mergesort')] f = open("Sorted_"+filename_data, 'w') np.savetxt(f,data, header=head[:-1]) + f.close() pass print(" ") From 11791d15517b3184cefda8478e4fc9e5c881ad2b Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:18:50 +0200 Subject: [PATCH 185/204] Fix for the number of smear --- cellconstructor/Spectral.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 59bf1d66..dd33ad46 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1339,9 +1339,10 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): print(" ") print(" Results printed in "+filename_sp+'_[smear].dat') print(" ") - name="{:6.1f}".format(smear_cm[ism]).strip() - filename_new=filename_sp+'_'+name+'.dat' - output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + for ism in range(nsm): + name="{:6.1f}".format(smear_cm[ism]).strip() + filename_new=filename_sp+'_'+name+'.dat' + output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) From 940c549ccd80881abda6f7a19bf09f94d6aa84ec Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:19:23 +0200 Subject: [PATCH 186/204] Fix for the different smears --- cellconstructor/Spectral.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index eceeb069..01391ebd 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1344,9 +1344,10 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): print(" ") print(" Results printed in "+filename_sp+'_[smear].dat') print(" ") - name="{:6.1f}".format(smear_cm[ism]).strip() - filename_new=filename_sp+'_'+name+'.dat' - output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + for ism in range(nsm): + name="{:6.1f}".format(smear_cm[ism]).strip() + filename_new=filename_sp+'_'+name+'.dat' + output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) From c62c257d4aae759335a81817d344c81ec603c57d Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:22:22 +0200 Subject: [PATCH 187/204] Test to fix the sorting --- cellconstructor/Spectral.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 01391ebd..f68dc0a0 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1180,18 +1180,18 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): data = np.loadtxt(f) f.close() head = head1[1:]+head2[1:]+head3[1:] - # X = data[:,0] - # Y = data[:,1] - # Z = data[:,2] - # x = [X[i] for i in np.lexsort((Y,X))] - # y = [Y[i] for i in np.lexsort((Y,X))] - # z = [Z[i] for i in np.lexsort((Y,X))] + X = data[:,0] + Y = data[:,1] + Z = data[:,2] + x = [X[i] for i in np.lexsort((Y,X))] + y = [Y[i] for i in np.lexsort((Y,X))] + z = [Z[i] for i in np.lexsort((Y,X))] # f = open('plot_energies_'+filename_data, 'w') # np.savetxt(f,np.c_[x,y,z]) # f.close() - data = data[data[:,2].argsort()] # First sort doesn't need to be stable. - data = data[data[:,1].argsort(kind='mergesort')] - data = data[data[:,0].argsort(kind='mergesort')] + # data = data[data[:,2].argsort()] # First sort doesn't need to be stable. + # data = data[data[:,1].argsort(kind='mergesort')] + # data = data[data[:,0].argsort(kind='mergesort')] f = open("Sorted_"+filename_data, 'w') np.savetxt(f,data, header=head[:-1]) f.close() From f91957ca0b7e05afb0891101b5aaad072c9d42e7 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:24:10 +0200 Subject: [PATCH 188/204] Closing file --- cellconstructor/Spectral.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index dd33ad46..b5a6a4ba 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1189,6 +1189,7 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): data = data[data[:,0].argsort(kind='mergesort')] f = open("Sorted_"+filename_data, 'w') np.savetxt(f,data, header=head[:-1]) + f.close() pass print(" ") From cb28376b9a52bf9e28784b37401137cd81ed3643 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:58:07 +0200 Subject: [PATCH 189/204] Quickfix --- cellconstructor/Spectral.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index f68dc0a0..2a9ac816 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -241,7 +241,7 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): dynq = get_static_correction(dyn, tensor3, k_grid, q_tot, T) # Add all the new computed dynamical matrix - new_dyn.dynmats[iq] = [] + #new_dyn.dynmats[iq] = [] for iq in range(len(q_tot)): new_dyn.dynmats.append(dynq[iq, :, :]) # if (iq==0): From 5c76f788afe4a1f9ee62a14228a6dab1b0255014 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:59:13 +0200 Subject: [PATCH 190/204] Clean code --- cellconstructor/Spectral.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 2a9ac816..e20a864a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -241,13 +241,9 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): dynq = get_static_correction(dyn, tensor3, k_grid, q_tot, T) # Add all the new computed dynamical matrix - #new_dyn.dynmats[iq] = [] for iq in range(len(q_tot)): new_dyn.dynmats.append(dynq[iq, :, :]) - # if (iq==0): - # new_dyn.dynmats[iq] = dynq[iq, :, :] - # else: - # new_dyn.dynmats.append(dynq[iq, :, :]) + # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From 9c360c1d325ec6ccaca4f30ece0fdf11225e5c6f Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Tue, 17 Oct 2023 08:59:40 +0200 Subject: [PATCH 191/204] Clean --- cellconstructor/Spectral.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index e20a864a..154173f9 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -244,7 +244,6 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): for iq in range(len(q_tot)): new_dyn.dynmats.append(dynq[iq, :, :]) - # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From 5bf21d5c66bb98aec1ea99858b91850c4d3e4a19 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 18 Oct 2023 14:26:04 +0200 Subject: [PATCH 192/204] Save the sorting data. --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 154173f9..82635b9a 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1188,7 +1188,8 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): # data = data[data[:,1].argsort(kind='mergesort')] # data = data[data[:,0].argsort(kind='mergesort')] f = open("Sorted_"+filename_data, 'w') - np.savetxt(f,data, header=head[:-1]) + #np.savetxt(f,data, header=head[:-1]) + np.savetxt(f,np.c_[x,y,z], header=head[:-1]) f.close() pass From 7ef62759bbcc16bbcbeffbedca28bdafccca90b9 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Wed, 18 Oct 2023 15:10:46 +0200 Subject: [PATCH 193/204] Update Spectral.py Fix of #77 --- cellconstructor/Spectral.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 9297dff7..3dad60f6 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -241,8 +241,11 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): dynq = get_static_correction(dyn, tensor3, k_grid, q_tot, T) # Add all the new computed dynamical matrix + all_dynmats = [] for iq in range(len(q_tot)): - new_dyn.dynmats.append(dynq[iq, :, :]) + all_dynmats.append(dynq[iq, :, :]) + + new_dyn.dynmats = all_dynmats # Adjust the dynamical matrix q points and the stars new_dyn.AdjustQStar() From 4e0cfc5769f71189fe03b5bcaf2f84ffe806d184 Mon Sep 17 00:00:00 2001 From: diegomartinez2 Date: Wed, 18 Oct 2023 15:13:09 +0200 Subject: [PATCH 194/204] This needs to be tested: Fix for issue #77 --- cellconstructor/Spectral.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index 82635b9a..20c05c68 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -241,7 +241,8 @@ def get_static_correction_interpolated(dyn, tensor3, T, new_supercell, k_grid): dynq = get_static_correction(dyn, tensor3, k_grid, q_tot, T) # Add all the new computed dynamical matrix - for iq in range(len(q_tot)): + new_dyn.dynmats[0] = dynq[0, :, :] + for iq in range(1,len(q_tot)): new_dyn.dynmats.append(dynq[iq, :, :]) # Adjust the dynamical matrix q points and the stars From 8ce25eda3e0c8583d05c7087ecdeee03338b1a1f Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sat, 28 Oct 2023 13:27:10 +0200 Subject: [PATCH 195/204] Added more timing --- cellconstructor/Phonons.py | 29 +- tests/TestStrainConfiguration/strained_dyn | 1366 ++++++++++---------- 2 files changed, 703 insertions(+), 692 deletions(-) diff --git a/cellconstructor/Phonons.py b/cellconstructor/Phonons.py index e28641d3..d34043d6 100644 --- a/cellconstructor/Phonons.py +++ b/cellconstructor/Phonons.py @@ -3489,17 +3489,17 @@ def ForceSymmetries(self, symmetries, irt = None, apply_sum_rule = True): if apply_sum_rule: self.ApplySumRule() - def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmodes = False): + def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmodes = False, timer=None): r""" - DYAGONALIZE THE DYNAMICAL MATRIX IN THE SUPERCELL + DIAGONALIZE THE DYNAMICAL MATRIX IN THE SUPERCELL ================================================= - This method dyagonalizes the dynamical matrix in q space - and returns the frequencies and the polarization vectors in the supercell, - without having to generate the force constant in real space. + This method diagonalizes the dynamical matrix in q space + returning frequencies and polarization vectors in the supercell, + without computing the force constant in real space. + + This exploits the block theorem to reduce the size of the dynamical matrix. - In this way we simply generate the polarization vector in the supercell - using those in the unit cell. This is performed using the following equation: @@ -3578,7 +3578,10 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmode # Check if we must return anyway the polarization in q space if return_qmodes: # TODO: We could replace this by exploiting the symmetries - wq, eq = self.DyagDinQ(iq) + if timer is not None: + wq, eq = timer.execute_timed_function(self.DyagDinQ, iq) + else: + wq, eq = self.DyagDinQ(iq) w_q[:, iq] = wq pols_q[:, :, iq] = eq @@ -3619,7 +3622,10 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmode wq = np.sqrt(np.abs(wq2)) * np.sign(wq2) else: # Diagonalize the matrix in the given q point - wq, eq = self.DyagDinQ(iq) + if timer is not None: + wq, eq = timer.execute_timed_function(self.DyagDinQ, iq) + else: + wq, eq = self.DyagDinQ(iq) # Store the frequencies and the polarization vectors w_q[:, iq] = wq @@ -3627,6 +3633,7 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmode # Iterate over the frequencies of the given q point nm_q = i_mu + t1 = time.time() for i_qnu, w_qnu in enumerate(wq): tilde_e_qnu = eq[:, i_qnu] @@ -3748,6 +3755,10 @@ def DiagonalizeSupercell(self, verbose = False, lo_to_split = None, return_qmode # e_pols_sc[:, i_mu] = evec_2 / np.sqrt(norm2) # i_mu += 1 + t2 = time.time() + if timer is not None: + timer.add_timer("Manipulate polarization vectors", t2 - t1) + # Print how many vectors have been extracted if verbose: print("The {} / {} q point produced {} nodes".format(iq, len(self.q_tot), i_mu - nm_q)) diff --git a/tests/TestStrainConfiguration/strained_dyn b/tests/TestStrainConfiguration/strained_dyn index 12643f9c..b214f5d6 100644 --- a/tests/TestStrainConfiguration/strained_dyn +++ b/tests/TestStrainConfiguration/strained_dyn @@ -25,743 +25,743 @@ Basis vectors q = ( 0.000000000000 0.000000000000 0.000000000000 ) 1 1 - 0.0723775009917356 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.3831399905936694 0.0000000000000000 0.0800072256509200 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0800072256509200 0.0000000000000000 0.4293434337307446 0.0000000000000000 + 0.0723775009917382 0.0000000000000000 0.0000000000000022 0.0000000000000000 0.0000000000000005 0.0000000000000000 + 0.0000000000000022 0.0000000000000000 0.3831399905936563 0.0000000000000000 0.0800072256509442 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0800072256509442 0.0000000000000000 0.4293434337307424 0.0000000000000000 1 2 - -0.0251057439413777 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0569567699834668 0.0000000000000000 -0.0058150573711577 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0222771411146697 0.0000000000000000 -0.2988598772525921 0.0000000000000000 + -0.0251057439413781 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000004 0.0000000000000000 + 0.0000000000000014 0.0000000000000000 -0.0569567699834664 0.0000000000000000 -0.0058150573711854 0.0000000000000000 + 0.0000000000000007 0.0000000000000000 0.0222771411146679 0.0000000000000000 -0.2988598772525804 0.0000000000000000 1 3 - -0.0289738345959179 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.2820802915433134 0.0000000000000000 -0.0527306161696257 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0884826303559192 0.0000000000000000 -0.0739447334126139 0.0000000000000000 + -0.0289738345959188 0.0000000000000000 -0.0000000000000023 0.0000000000000000 -0.0000000000000009 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.2820802915432987 0.0000000000000000 -0.0527306161696205 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0884826303559405 0.0000000000000000 -0.0739447334126184 0.0000000000000000 1 4 - -0.0373686571560659 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000152 0.0000000000000000 -0.0336428001201928 0.0000000000000000 -0.0041894809945713 0.0000000000000000 - -0.0000000000000070 0.0000000000000000 -0.0044397818519615 0.0000000000000000 0.0041303780996570 0.0000000000000000 + -0.0373686571560764 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000005 0.0000000000000000 + -0.0000000000000286 0.0000000000000000 -0.0336428001201919 0.0000000000000000 -0.0041894809945731 0.0000000000000000 + -0.0000000000000102 0.0000000000000000 -0.0044397818519251 0.0000000000000000 0.0041303780996330 0.0000000000000000 1 5 - 0.0079739154089234 0.0000000000000000 -0.0168418597307695 0.0000000000000000 0.0106690755761874 0.0000000000000000 - -0.0100652146645655 0.0000000000000000 -0.0099918936929158 0.0000000000000000 -0.0069122209428976 0.0000000000000000 - -0.0036706343437460 0.0000000000000000 -0.0005259246072714 0.0000000000000000 -0.0156150191112155 0.0000000000000000 + 0.0079739154089291 0.0000000000000000 -0.0168418597307733 0.0000000000000000 0.0106690755761898 0.0000000000000000 + -0.0100652146645572 0.0000000000000000 -0.0099918936929198 0.0000000000000000 -0.0069122209428951 0.0000000000000000 + -0.0036706343437175 0.0000000000000000 -0.0005259246072903 0.0000000000000000 -0.0156150191112033 0.0000000000000000 1 6 - 0.0079739154089238 0.0000000000000000 0.0168418597307698 0.0000000000000000 -0.0106690755761872 0.0000000000000000 - 0.0100652146645789 0.0000000000000000 -0.0099918936929075 0.0000000000000000 -0.0069122209429028 0.0000000000000000 - 0.0036706343437522 0.0000000000000000 -0.0005259246072676 0.0000000000000000 -0.0156150191112181 0.0000000000000000 + 0.0079739154089280 0.0000000000000000 0.0168418597307731 0.0000000000000000 -0.0106690755761890 0.0000000000000000 + 0.0100652146645834 0.0000000000000000 -0.0099918936929039 0.0000000000000000 -0.0069122209429046 0.0000000000000000 + 0.0036706343437260 0.0000000000000000 -0.0005259246072847 0.0000000000000000 -0.0156150191112065 0.0000000000000000 1 7 - 0.0015706027157737 0.0000000000000000 0.0000000000000007 0.0000000000000000 0.0000000000000005 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0058994142115028 0.0000000000000000 0.0129555088579155 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 -0.0129555088579612 0.0000000000000000 -0.0025061456783189 0.0000000000000000 + 0.0015706027157740 0.0000000000000000 0.0000000000000017 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000018 0.0000000000000000 0.0058994142115024 0.0000000000000000 0.0129555088579572 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0129555088579213 0.0000000000000000 -0.0025061456783196 0.0000000000000000 1 8 - -0.0018152750012301 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000007 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0012476417535547 0.0000000000000000 -0.0078942408875553 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0002039213450273 0.0000000000000000 0.0145769254785678 0.0000000000000000 + -0.0018152750012301 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000011 0.0000000000000000 0.0012476417535551 0.0000000000000000 -0.0078942408875953 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 -0.0002039213450278 0.0000000000000000 0.0145769254785557 0.0000000000000000 1 9 - -0.0016399265604470 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.0035091911501685 0.0000000000000000 -0.0021722504817085 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0074822204968905 0.0000000000000000 0.0003426041600605 0.0000000000000000 + -0.0016399265604469 0.0000000000000000 -0.0000000000000015 0.0000000000000000 0.0000000000000006 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0035091911501695 0.0000000000000000 -0.0021722504817071 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0074822204968551 0.0000000000000000 0.0003426041600707 0.0000000000000000 1 10 - 0.0078082955673492 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000008 0.0000000000000000 - -0.0000000000000098 0.0000000000000000 0.0119074076296619 0.0000000000000000 -0.0034942738523529 0.0000000000000000 - 0.0000000000000062 0.0000000000000000 0.0044778895271254 0.0000000000000000 -0.0367974389514191 0.0000000000000000 + 0.0078082955673473 0.0000000000000000 0.0000000000000003 0.0000000000000000 0.0000000000000008 0.0000000000000000 + -0.0000000000000142 0.0000000000000000 0.0119074076296482 0.0000000000000000 -0.0034942738523642 0.0000000000000000 + -0.0000000000000075 0.0000000000000000 0.0044778895271162 0.0000000000000000 -0.0367974389514215 0.0000000000000000 1 11 - -0.0014003952261865 0.0000000000000000 0.0002449744821627 0.0000000000000000 -0.0015206472447127 0.0000000000000000 - -0.0091891495399320 0.0000000000000000 -0.0030108060126923 0.0000000000000000 -0.0014211831836486 0.0000000000000000 - -0.0007217572183904 0.0000000000000000 -0.0035553985811520 0.0000000000000000 -0.0025275585661311 0.0000000000000000 + -0.0014003952261856 0.0000000000000000 0.0002449744821623 0.0000000000000000 -0.0015206472447132 0.0000000000000000 + -0.0091891495399405 0.0000000000000000 -0.0030108060126859 0.0000000000000000 -0.0014211831836441 0.0000000000000000 + -0.0007217572183923 0.0000000000000000 -0.0035553985811516 0.0000000000000000 -0.0025275585661300 0.0000000000000000 1 12 - -0.0014003952261877 0.0000000000000000 -0.0002449744821632 0.0000000000000000 0.0015206472447118 0.0000000000000000 - 0.0091891495399398 0.0000000000000000 -0.0030108060126873 0.0000000000000000 -0.0014211831836459 0.0000000000000000 - 0.0007217572183844 0.0000000000000000 -0.0035553985811554 0.0000000000000000 -0.0025275585661337 0.0000000000000000 + -0.0014003952261866 0.0000000000000000 -0.0002449744821628 0.0000000000000000 0.0015206472447123 0.0000000000000000 + 0.0091891495399536 0.0000000000000000 -0.0030108060126772 0.0000000000000000 -0.0014211831836398 0.0000000000000000 + 0.0007217572183988 0.0000000000000000 -0.0035553985811472 0.0000000000000000 -0.0025275585661280 0.0000000000000000 2 1 - -0.0251057439413777 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0569567699834668 0.0000000000000000 0.0222771411146697 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0058150573711577 0.0000000000000000 -0.2988598772525921 0.0000000000000000 + -0.0251057439413781 0.0000000000000000 0.0000000000000014 0.0000000000000000 0.0000000000000007 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0569567699834664 0.0000000000000000 0.0222771411146679 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0058150573711854 0.0000000000000000 -0.2988598772525804 0.0000000000000000 2 2 - 0.0352255604087113 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0577498980966748 0.0000000000000000 0.0004642893512910 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0004642893512910 0.0000000000000000 0.2960907478397040 0.0000000000000000 + 0.0352255604087117 0.0000000000000000 -0.0000000000000005 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0577498980966749 0.0000000000000000 0.0004642893512930 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0004642893512930 0.0000000000000000 0.2960907478396839 0.0000000000000000 2 3 - 0.0037861455182857 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0282119025677891 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0049287602283866 0.0000000000000000 -0.0033792838522573 0.0000000000000000 + 0.0037861455182863 0.0000000000000000 -0.0000000000000008 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0103751426308777 0.0000000000000000 -0.0282119025677893 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0049287602283609 0.0000000000000000 -0.0033792838522509 0.0000000000000000 2 4 - -0.0149643881777161 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0044261389355781 0.0000000000000000 - 0.0000000000000019 0.0000000000000000 0.0009466269410124 0.0000000000000000 0.0064890897647901 0.0000000000000000 + -0.0149643881777202 0.0000000000000000 0.0000000000000009 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000015 0.0000000000000000 -0.0085647327830326 0.0000000000000000 0.0044261389355785 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0009466269409777 0.0000000000000000 0.0064890897648130 0.0000000000000000 2 5 - 0.0053960771921616 0.0000000000000000 -0.0027777266316755 0.0000000000000000 -0.0010754919735297 0.0000000000000000 - -0.0041883714492625 0.0000000000000000 0.0037383917967308 0.0000000000000000 -0.0001605357525138 0.0000000000000000 - 0.0052382113260928 0.0000000000000000 0.0007249474944291 0.0000000000000000 -0.0008206821613017 0.0000000000000000 + 0.0053960771921638 0.0000000000000000 -0.0027777266316768 0.0000000000000000 -0.0010754919735292 0.0000000000000000 + -0.0041883714492636 0.0000000000000000 0.0037383917967311 0.0000000000000000 -0.0001605357525139 0.0000000000000000 + 0.0052382113260669 0.0000000000000000 0.0007249474944464 0.0000000000000000 -0.0008206821613128 0.0000000000000000 2 6 - 0.0053960771921615 0.0000000000000000 0.0027777266316751 0.0000000000000000 0.0010754919735295 0.0000000000000000 - 0.0041883714492620 0.0000000000000000 0.0037383917967309 0.0000000000000000 -0.0001605357525134 0.0000000000000000 - -0.0052382113260946 0.0000000000000000 0.0007249474944282 0.0000000000000000 -0.0008206821613009 0.0000000000000000 + 0.0053960771921632 0.0000000000000000 0.0027777266316757 0.0000000000000000 0.0010754919735288 0.0000000000000000 + 0.0041883714492620 0.0000000000000000 0.0037383917967307 0.0000000000000000 -0.0001605357525136 0.0000000000000000 + -0.0052382113260666 0.0000000000000000 0.0007249474944465 0.0000000000000000 -0.0008206821613128 0.0000000000000000 2 7 - -0.0018152750012298 0.0000000000000000 0.0000000000000006 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0012476417535545 0.0000000000000000 0.0002039213450292 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0078942408876013 0.0000000000000000 0.0145769254785545 0.0000000000000000 + -0.0018152750012297 0.0000000000000000 0.0000000000000015 0.0000000000000000 -0.0000000000000004 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0012476417535541 0.0000000000000000 0.0002039213450285 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0078942408875622 0.0000000000000000 0.0145769254785676 0.0000000000000000 2 8 - 0.0036353210827942 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0001181663659071 0.0000000000000000 -0.0026161584162175 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0026161584162155 0.0000000000000000 -0.0221544638345915 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0001181663659071 0.0000000000000000 -0.0026161584162165 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0026161584162162 0.0000000000000000 -0.0221544638345921 0.0000000000000000 2 9 - -0.0006990068039685 0.0000000000000000 -0.0000000000000004 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0007453998223716 0.0000000000000000 0.0020862975258867 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0005005588825812 0.0000000000000000 -0.0034474484778334 0.0000000000000000 + -0.0006990068039689 0.0000000000000000 -0.0000000000000008 0.0000000000000000 0.0000000000000005 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0007453998223721 0.0000000000000000 0.0020862975258867 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0005005588826157 0.0000000000000000 -0.0034474484778429 0.0000000000000000 2 10 - -0.0158629633765122 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000009 0.0000000000000000 -0.0142572303934430 0.0000000000000000 0.0025026894102770 0.0000000000000000 - -0.0000000000000098 0.0000000000000000 -0.0110402408679630 0.0000000000000000 0.0060798140623970 0.0000000000000000 + -0.0158629633765104 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000013 0.0000000000000000 -0.0142572303934417 0.0000000000000000 0.0025026894102780 0.0000000000000000 + 0.0000000000000027 0.0000000000000000 -0.0110402408679579 0.0000000000000000 0.0060798140623969 0.0000000000000000 2 11 - 0.0025040980237178 0.0000000000000000 -0.0023164619816246 0.0000000000000000 0.0038518265447292 0.0000000000000000 - 0.0006119532508360 0.0000000000000000 0.0011510144726826 0.0000000000000000 -0.0004056725610960 0.0000000000000000 - -0.0017406728581125 0.0000000000000000 0.0039561444256876 0.0000000000000000 0.0031229275970231 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 -0.0023164619816247 0.0000000000000000 0.0038518265447299 0.0000000000000000 + 0.0006119532508363 0.0000000000000000 0.0011510144726823 0.0000000000000000 -0.0004056725610963 0.0000000000000000 + -0.0017406728581138 0.0000000000000000 0.0039561444256889 0.0000000000000000 0.0031229275970233 0.0000000000000000 2 12 - 0.0025040980237174 0.0000000000000000 0.0023164619816242 0.0000000000000000 -0.0038518265447293 0.0000000000000000 - -0.0006119532508365 0.0000000000000000 0.0011510144726818 0.0000000000000000 -0.0004056725610958 0.0000000000000000 - 0.0017406728581213 0.0000000000000000 0.0039561444256929 0.0000000000000000 0.0031229275970264 0.0000000000000000 + 0.0025040980237165 0.0000000000000000 0.0023164619816236 0.0000000000000000 -0.0038518265447295 0.0000000000000000 + -0.0006119532508372 0.0000000000000000 0.0011510144726808 0.0000000000000000 -0.0004056725610962 0.0000000000000000 + 0.0017406728581117 0.0000000000000000 0.0039561444256877 0.0000000000000000 0.0031229275970226 0.0000000000000000 3 1 - -0.0289738345959179 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 -0.2820802915433134 0.0000000000000000 -0.0884826303559192 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0527306161696257 0.0000000000000000 -0.0739447334126139 0.0000000000000000 + -0.0289738345959188 0.0000000000000000 0.0000000000000001 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000023 0.0000000000000000 -0.2820802915432987 0.0000000000000000 -0.0884826303559405 0.0000000000000000 + -0.0000000000000009 0.0000000000000000 -0.0527306161696205 0.0000000000000000 -0.0739447334126184 0.0000000000000000 3 2 - 0.0037861455182857 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000005 0.0000000000000000 0.0103751426308782 0.0000000000000000 -0.0049287602283866 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0282119025677891 0.0000000000000000 -0.0033792838522573 0.0000000000000000 + 0.0037861455182863 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000008 0.0000000000000000 0.0103751426308777 0.0000000000000000 -0.0049287602283609 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 -0.0282119025677893 0.0000000000000000 -0.0033792838522508 0.0000000000000000 3 3 - 0.0365782981378746 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000004 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.2729248902175124 0.0000000000000000 0.0713458205553489 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0713458205553489 0.0000000000000000 0.0798291225288875 0.0000000000000000 + 0.0365782981378752 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000004 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.2729248902174951 0.0000000000000000 0.0713458205553433 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 0.0713458205553433 0.0000000000000000 0.0798291225288855 0.0000000000000000 3 4 - -0.0193793176120018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000001 0.0000000000000000 - 0.0000000000000143 0.0000000000000000 0.0128264092257508 0.0000000000000000 0.0093892601393096 0.0000000000000000 - 0.0000000000000040 0.0000000000000000 0.0108019320579836 0.0000000000000000 -0.0127958810116062 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000266 0.0000000000000000 0.0128264092257487 0.0000000000000000 0.0093892601393103 0.0000000000000000 + 0.0000000000000070 0.0000000000000000 0.0108019320579831 0.0000000000000000 -0.0127958810116061 0.0000000000000000 3 5 - 0.0043670482201899 0.0000000000000000 0.0062527546419652 0.0000000000000000 0.0032245610064165 0.0000000000000000 - 0.0073649825438596 0.0000000000000000 -0.0050060184798359 0.0000000000000000 0.0046134194019393 0.0000000000000000 - 0.0069798143243273 0.0000000000000000 -0.0003322634792048 0.0000000000000000 0.0072531804468956 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 0.0062527546419649 0.0000000000000000 0.0032245610064167 0.0000000000000000 + 0.0073649825438522 0.0000000000000000 -0.0050060184798319 0.0000000000000000 0.0046134194019365 0.0000000000000000 + 0.0069798143243257 0.0000000000000000 -0.0003322634792040 0.0000000000000000 0.0072531804468949 0.0000000000000000 3 6 - 0.0043670482201899 0.0000000000000000 -0.0062527546419652 0.0000000000000000 -0.0032245610064167 0.0000000000000000 - -0.0073649825438718 0.0000000000000000 -0.0050060184798436 0.0000000000000000 0.0046134194019439 0.0000000000000000 - -0.0069798143243308 0.0000000000000000 -0.0003322634792067 0.0000000000000000 0.0072531804468971 0.0000000000000000 + 0.0043670482201909 0.0000000000000000 -0.0062527546419650 0.0000000000000000 -0.0032245610064168 0.0000000000000000 + -0.0073649825438765 0.0000000000000000 -0.0050060184798469 0.0000000000000000 0.0046134194019458 0.0000000000000000 + -0.0069798143243323 0.0000000000000000 -0.0003322634792076 0.0000000000000000 0.0072531804468974 0.0000000000000000 3 7 - -0.0016399265604473 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0035091911501720 0.0000000000000000 -0.0074822204968487 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0021722504817066 0.0000000000000000 0.0003426041600719 0.0000000000000000 + -0.0016399265604476 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000017 0.0000000000000000 -0.0035091911501715 0.0000000000000000 -0.0074822204968866 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0021722504817081 0.0000000000000000 0.0003426041600611 0.0000000000000000 3 8 - -0.0006990068039684 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0007453998223716 0.0000000000000000 -0.0005005588826217 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0020862975258866 0.0000000000000000 -0.0034474484778439 0.0000000000000000 + -0.0006990068039681 0.0000000000000000 0.0000000000000006 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0007453998223712 0.0000000000000000 -0.0005005588825857 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0020862975258869 0.0000000000000000 -0.0034474484778340 0.0000000000000000 3 9 - 0.0025844652016199 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000003 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0002706095090058 0.0000000000000000 0.0025129031626730 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0025129031626718 0.0000000000000000 -0.0015754786010475 0.0000000000000000 + 0.0025844652016201 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000005 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0002706095090055 0.0000000000000000 0.0025129031626716 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 -0.0025129031626730 0.0000000000000000 -0.0015754786010477 0.0000000000000000 3 10 - -0.0001599946965675 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000108 0.0000000000000000 0.0004054668963032 0.0000000000000000 0.0101430343307397 0.0000000000000000 - 0.0000000000000027 0.0000000000000000 0.0081775121522188 0.0000000000000000 0.0079899884223466 0.0000000000000000 + -0.0001599946965690 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000122 0.0000000000000000 0.0004054668963175 0.0000000000000000 0.0101430343307511 0.0000000000000000 + 0.0000000000000024 0.0000000000000000 0.0081775121522231 0.0000000000000000 0.0079899884223499 0.0000000000000000 3 11 - -0.0004154624427386 0.0000000000000000 0.0012439381262115 0.0000000000000000 0.0022873936225504 0.0000000000000000 - 0.0127928624961676 0.0000000000000000 -0.0007025897616733 0.0000000000000000 -0.0006118410528820 0.0000000000000000 - 0.0050585024151195 0.0000000000000000 -0.0031456369018457 0.0000000000000000 -0.0037626256179462 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0012439381262114 0.0000000000000000 0.0022873936225502 0.0000000000000000 + 0.0127928624961779 0.0000000000000000 -0.0007025897616806 0.0000000000000000 -0.0006118410528870 0.0000000000000000 + 0.0050585024151234 0.0000000000000000 -0.0031456369018480 0.0000000000000000 -0.0037626256179479 0.0000000000000000 3 12 - -0.0004154624427386 0.0000000000000000 -0.0012439381262117 0.0000000000000000 -0.0022873936225502 0.0000000000000000 - -0.0127928624961764 0.0000000000000000 -0.0007025897616784 0.0000000000000000 -0.0006118410528855 0.0000000000000000 - -0.0050585024151214 0.0000000000000000 -0.0031456369018474 0.0000000000000000 -0.0037626256179467 0.0000000000000000 + -0.0004154624427381 0.0000000000000000 -0.0012439381262112 0.0000000000000000 -0.0022873936225503 0.0000000000000000 + -0.0127928624961893 0.0000000000000000 -0.0007025897616875 0.0000000000000000 -0.0006118410528913 0.0000000000000000 + -0.0050585024151255 0.0000000000000000 -0.0031456369018501 0.0000000000000000 -0.0037626256179483 0.0000000000000000 4 1 - -0.0373686571560659 0.0000000000000000 -0.0000000000000152 0.0000000000000000 -0.0000000000000070 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 -0.0336428001201928 0.0000000000000000 -0.0044397818519615 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0041894809945713 0.0000000000000000 0.0041303780996570 0.0000000000000000 + -0.0373686571560764 0.0000000000000000 -0.0000000000000286 0.0000000000000000 -0.0000000000000102 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0336428001201919 0.0000000000000000 -0.0044397818519250 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0041894809945731 0.0000000000000000 0.0041303780996330 0.0000000000000000 4 2 - -0.0149643881777161 0.0000000000000000 0.0000000000000002 0.0000000000000000 0.0000000000000019 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0085647327830322 0.0000000000000000 0.0009466269410124 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0044261389355781 0.0000000000000000 0.0064890897647901 0.0000000000000000 + -0.0149643881777202 0.0000000000000000 0.0000000000000015 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + 0.0000000000000009 0.0000000000000000 -0.0085647327830326 0.0000000000000000 0.0009466269409777 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0044261389355785 0.0000000000000000 0.0064890897648130 0.0000000000000000 4 3 - -0.0193793176120018 0.0000000000000000 0.0000000000000143 0.0000000000000000 0.0000000000000040 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 0.0128264092257508 0.0000000000000000 0.0108019320579836 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0093892601393096 0.0000000000000000 -0.0127958810116062 0.0000000000000000 + -0.0193793176120044 0.0000000000000000 0.0000000000000266 0.0000000000000000 0.0000000000000070 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0128264092257487 0.0000000000000000 0.0108019320579831 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0093892601393103 0.0000000000000000 -0.0127958810116061 0.0000000000000000 4 4 - 0.4834443802758838 0.0000000000000000 -0.0000000000000059 0.0000000000000000 0.0000000000000056 0.0000000000000000 - -0.0000000000000059 0.0000000000000000 0.2588422264936609 0.0000000000000000 -0.1308110718530661 0.0000000000000000 - 0.0000000000000056 0.0000000000000000 -0.1308110718530661 0.0000000000000000 0.1639030178691332 0.0000000000000000 + 0.4834443802760313 0.0000000000000000 -0.0000000000000151 0.0000000000000000 0.0000000000000127 0.0000000000000000 + -0.0000000000000151 0.0000000000000000 0.2588422264936643 0.0000000000000000 -0.1308110718530739 0.0000000000000000 + 0.0000000000000127 0.0000000000000000 -0.1308110718530739 0.0000000000000000 0.1639030178691405 0.0000000000000000 4 5 - -0.2042620382020704 0.0000000000000000 0.1111612914471428 0.0000000000000000 -0.0678004081048586 0.0000000000000000 - 0.0961493426419410 0.0000000000000000 -0.1150790588758516 0.0000000000000000 0.0626077946132201 0.0000000000000000 - -0.0680988033808397 0.0000000000000000 0.0633030715249480 0.0000000000000000 -0.0673384314526821 0.0000000000000000 + -0.2042620382021453 0.0000000000000000 0.1111612914471889 0.0000000000000000 -0.0678004081048872 0.0000000000000000 + 0.0961493426419503 0.0000000000000000 -0.1150790588758579 0.0000000000000000 0.0626077946132240 0.0000000000000000 + -0.0680988033808483 0.0000000000000000 0.0633030715249540 0.0000000000000000 -0.0673384314526861 0.0000000000000000 4 6 - -0.2042620382020605 0.0000000000000000 -0.1111612914471363 0.0000000000000000 0.0678004081048547 0.0000000000000000 - -0.0961493426419366 0.0000000000000000 -0.1150790588758485 0.0000000000000000 0.0626077946132183 0.0000000000000000 - 0.0680988033808352 0.0000000000000000 0.0633030715249457 0.0000000000000000 -0.0673384314526803 0.0000000000000000 + -0.2042620382021206 0.0000000000000000 -0.1111612914471719 0.0000000000000000 0.0678004081048771 0.0000000000000000 + -0.0961493426419374 0.0000000000000000 -0.1150790588758499 0.0000000000000000 0.0626077946132197 0.0000000000000000 + 0.0680988033808369 0.0000000000000000 0.0633030715249479 0.0000000000000000 -0.0673384314526813 0.0000000000000000 4 7 - 0.0078082955673495 0.0000000000000000 -0.0000000000000104 0.0000000000000000 -0.0000000000000047 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0119074076296492 0.0000000000000000 -0.0044778895271415 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0034942738523658 0.0000000000000000 -0.0367974389514057 0.0000000000000000 + 0.0078082955673491 0.0000000000000000 -0.0000000000000237 0.0000000000000000 0.0000000000000040 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0119074076296579 0.0000000000000000 -0.0044778895271479 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0034942738523560 0.0000000000000000 -0.0367974389514042 0.0000000000000000 4 8 - -0.0158629633765093 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000083 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 -0.0142572303934413 0.0000000000000000 0.0110402408679823 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0025026894102784 0.0000000000000000 0.0060798140623808 0.0000000000000000 + -0.0158629633765108 0.0000000000000000 0.0000000000000015 0.0000000000000000 0.0000000000000036 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0142572303934423 0.0000000000000000 0.0110402408679840 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0025026894102776 0.0000000000000000 0.0060798140623830 0.0000000000000000 4 9 - -0.0001599946965694 0.0000000000000000 0.0000000000000094 0.0000000000000000 -0.0000000000000021 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0004054668963166 0.0000000000000000 -0.0081775121522224 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0101430343307530 0.0000000000000000 0.0079899884223502 0.0000000000000000 + -0.0001599946965685 0.0000000000000000 0.0000000000000221 0.0000000000000000 -0.0000000000000054 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0004054668963060 0.0000000000000000 -0.0081775121522190 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0101430343307417 0.0000000000000000 0.0079899884223466 0.0000000000000000 4 10 - 0.0039008143595916 0.0000000000000000 -0.0000000000000061 0.0000000000000000 -0.0000000000000035 0.0000000000000000 - -0.0000000000000083 0.0000000000000000 -0.0008485805837908 0.0000000000000000 -0.0030686652718390 0.0000000000000000 - 0.0000000000000054 0.0000000000000000 0.0030686652718403 0.0000000000000000 -0.0082838582595774 0.0000000000000000 + 0.0039008143595904 0.0000000000000000 -0.0000000000000146 0.0000000000000000 -0.0000000000000108 0.0000000000000000 + -0.0000000000000099 0.0000000000000000 -0.0008485805837914 0.0000000000000000 -0.0030686652718407 0.0000000000000000 + 0.0000000000000064 0.0000000000000000 0.0030686652718396 0.0000000000000000 -0.0082838582595772 0.0000000000000000 4 11 - 0.0005529569781352 0.0000000000000000 0.0006881224323724 0.0000000000000000 0.0009938270035009 0.0000000000000000 - -0.0004060563613260 0.0000000000000000 0.0017449768597134 0.0000000000000000 0.0014852637978343 0.0000000000000000 - -0.0028171359308501 0.0000000000000000 0.0003308975272960 0.0000000000000000 0.0019808748951330 0.0000000000000000 + 0.0005529569781304 0.0000000000000000 0.0006881224323763 0.0000000000000000 0.0009938270035030 0.0000000000000000 + -0.0004060563613253 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0014852637978338 0.0000000000000000 + -0.0028171359308512 0.0000000000000000 0.0003308975272968 0.0000000000000000 0.0019808748951335 0.0000000000000000 4 12 - 0.0005529569781447 0.0000000000000000 -0.0006881224323656 0.0000000000000000 -0.0009938270034969 0.0000000000000000 - 0.0004060563613329 0.0000000000000000 0.0017449768597176 0.0000000000000000 0.0014852637978365 0.0000000000000000 - 0.0028171359308458 0.0000000000000000 0.0003308975272935 0.0000000000000000 0.0019808748951310 0.0000000000000000 + 0.0005529569781524 0.0000000000000000 -0.0006881224323601 0.0000000000000000 -0.0009938270034932 0.0000000000000000 + 0.0004060563613336 0.0000000000000000 0.0017449768597178 0.0000000000000000 0.0014852637978365 0.0000000000000000 + 0.0028171359308458 0.0000000000000000 0.0003308975272940 0.0000000000000000 0.0019808748951309 0.0000000000000000 5 1 - 0.0079739154089234 0.0000000000000000 -0.0100652146645655 0.0000000000000000 -0.0036706343437460 0.0000000000000000 - -0.0168418597307695 0.0000000000000000 -0.0099918936929158 0.0000000000000000 -0.0005259246072714 0.0000000000000000 - 0.0106690755761874 0.0000000000000000 -0.0069122209428976 0.0000000000000000 -0.0156150191112155 0.0000000000000000 + 0.0079739154089291 0.0000000000000000 -0.0100652146645572 0.0000000000000000 -0.0036706343437175 0.0000000000000000 + -0.0168418597307733 0.0000000000000000 -0.0099918936929198 0.0000000000000000 -0.0005259246072903 0.0000000000000000 + 0.0106690755761898 0.0000000000000000 -0.0069122209428951 0.0000000000000000 -0.0156150191112033 0.0000000000000000 5 2 - 0.0053960771921616 0.0000000000000000 -0.0041883714492625 0.0000000000000000 0.0052382113260928 0.0000000000000000 - -0.0027777266316755 0.0000000000000000 0.0037383917967308 0.0000000000000000 0.0007249474944291 0.0000000000000000 - -0.0010754919735297 0.0000000000000000 -0.0001605357525138 0.0000000000000000 -0.0008206821613017 0.0000000000000000 + 0.0053960771921638 0.0000000000000000 -0.0041883714492636 0.0000000000000000 0.0052382113260669 0.0000000000000000 + -0.0027777266316768 0.0000000000000000 0.0037383917967311 0.0000000000000000 0.0007249474944464 0.0000000000000000 + -0.0010754919735292 0.0000000000000000 -0.0001605357525139 0.0000000000000000 -0.0008206821613128 0.0000000000000000 5 3 - 0.0043670482201899 0.0000000000000000 0.0073649825438596 0.0000000000000000 0.0069798143243273 0.0000000000000000 - 0.0062527546419652 0.0000000000000000 -0.0050060184798359 0.0000000000000000 -0.0003322634792048 0.0000000000000000 - 0.0032245610064165 0.0000000000000000 0.0046134194019393 0.0000000000000000 0.0072531804468956 0.0000000000000000 + 0.0043670482201910 0.0000000000000000 0.0073649825438522 0.0000000000000000 0.0069798143243256 0.0000000000000000 + 0.0062527546419649 0.0000000000000000 -0.0050060184798319 0.0000000000000000 -0.0003322634792040 0.0000000000000000 + 0.0032245610064167 0.0000000000000000 0.0046134194019365 0.0000000000000000 0.0072531804468949 0.0000000000000000 5 4 - -0.2042620382020704 0.0000000000000000 0.0961493426419410 0.0000000000000000 -0.0680988033808397 0.0000000000000000 - 0.1111612914471428 0.0000000000000000 -0.1150790588758516 0.0000000000000000 0.0633030715249480 0.0000000000000000 - -0.0678004081048586 0.0000000000000000 0.0626077946132201 0.0000000000000000 -0.0673384314526821 0.0000000000000000 + -0.2042620382021453 0.0000000000000000 0.0961493426419503 0.0000000000000000 -0.0680988033808483 0.0000000000000000 + 0.1111612914471889 0.0000000000000000 -0.1150790588758579 0.0000000000000000 0.0633030715249540 0.0000000000000000 + -0.0678004081048872 0.0000000000000000 0.0626077946132240 0.0000000000000000 -0.0673384314526861 0.0000000000000000 5 5 - 0.2174594979186082 0.0000000000000000 -0.0954682304260068 0.0000000000000000 0.0600636707989470 0.0000000000000000 - -0.0954682304260068 0.0000000000000000 0.1104252604741348 0.0000000000000000 -0.0503426131734358 0.0000000000000000 - 0.0600636707989470 0.0000000000000000 -0.0503426131734358 0.0000000000000000 0.0677190190410507 0.0000000000000000 + 0.2174594979186494 0.0000000000000000 -0.0954682304260330 0.0000000000000000 0.0600636707989632 0.0000000000000000 + -0.0954682304260330 0.0000000000000000 0.1104252604741517 0.0000000000000000 -0.0503426131734460 0.0000000000000000 + 0.0600636707989632 0.0000000000000000 -0.0503426131734460 0.0000000000000000 0.0677190190410574 0.0000000000000000 5 6 - -0.0299583471230623 0.0000000000000000 0.0025306649735933 0.0000000000000000 0.0001964280885757 0.0000000000000000 - -0.0025306649735934 0.0000000000000000 0.0189330240079913 0.0000000000000000 -0.0130002466230993 0.0000000000000000 - -0.0001964280885756 0.0000000000000000 -0.0130002466230997 0.0000000000000000 0.0113735279572519 0.0000000000000000 + -0.0299583471230355 0.0000000000000000 0.0025306649736081 0.0000000000000000 0.0001964280885663 0.0000000000000000 + -0.0025306649736090 0.0000000000000000 0.0189330240079822 0.0000000000000000 -0.0130002466230939 0.0000000000000000 + -0.0001964280885659 0.0000000000000000 -0.0130002466230941 0.0000000000000000 0.0113735279572486 0.0000000000000000 5 7 - -0.0014003952261875 0.0000000000000000 -0.0091891495399403 0.0000000000000000 0.0007217572183788 0.0000000000000000 - 0.0002449744821626 0.0000000000000000 -0.0030108060126854 0.0000000000000000 0.0035553985811609 0.0000000000000000 - 0.0015206472447122 0.0000000000000000 0.0014211831836446 0.0000000000000000 -0.0025275585661367 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 -0.0091891495399260 0.0000000000000000 0.0007217572183691 0.0000000000000000 + 0.0002449744821623 0.0000000000000000 -0.0030108060126953 0.0000000000000000 0.0035553985811666 0.0000000000000000 + 0.0015206472447121 0.0000000000000000 0.0014211831836503 0.0000000000000000 -0.0025275585661406 0.0000000000000000 5 8 - 0.0025040980237165 0.0000000000000000 0.0006119532508362 0.0000000000000000 0.0017406728581273 0.0000000000000000 - -0.0023164619816237 0.0000000000000000 0.0011510144726814 0.0000000000000000 -0.0039561444256983 0.0000000000000000 - -0.0038518265447298 0.0000000000000000 0.0004056725610964 0.0000000000000000 0.0031229275970296 0.0000000000000000 + 0.0025040980237174 0.0000000000000000 0.0006119532508353 0.0000000000000000 0.0017406728581313 0.0000000000000000 + -0.0023164619816243 0.0000000000000000 0.0011510144726821 0.0000000000000000 -0.0039561444256999 0.0000000000000000 + -0.0038518265447297 0.0000000000000000 0.0004056725610958 0.0000000000000000 0.0031229275970312 0.0000000000000000 5 9 - -0.0004154624427377 0.0000000000000000 0.0127928624961785 0.0000000000000000 -0.0050585024151233 0.0000000000000000 - 0.0012439381262114 0.0000000000000000 -0.0007025897616807 0.0000000000000000 0.0031456369018482 0.0000000000000000 - -0.0022873936225497 0.0000000000000000 0.0006118410528869 0.0000000000000000 -0.0037626256179473 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0127928624961631 0.0000000000000000 -0.0050585024151183 0.0000000000000000 + 0.0012439381262119 0.0000000000000000 -0.0007025897616701 0.0000000000000000 0.0031456369018450 0.0000000000000000 + -0.0022873936225496 0.0000000000000000 0.0006118410528804 0.0000000000000000 -0.0037626256179454 0.0000000000000000 5 10 - 0.0005529569781328 0.0000000000000000 -0.0004060563613261 0.0000000000000000 0.0028171359308506 0.0000000000000000 - 0.0006881224323735 0.0000000000000000 0.0017449768597135 0.0000000000000000 -0.0003308975272962 0.0000000000000000 - -0.0009938270035016 0.0000000000000000 -0.0014852637978343 0.0000000000000000 0.0019808748951331 0.0000000000000000 + 0.0005529569781323 0.0000000000000000 -0.0004060563613220 0.0000000000000000 0.0028171359308531 0.0000000000000000 + 0.0006881224323740 0.0000000000000000 0.0017449768597118 0.0000000000000000 -0.0003308975272971 0.0000000000000000 + -0.0009938270035019 0.0000000000000000 -0.0014852637978332 0.0000000000000000 0.0019808748951340 0.0000000000000000 5 11 - -0.0001947154534015 0.0000000000000000 0.0001055444019307 0.0000000000000000 -0.0008285855530552 0.0000000000000000 - 0.0001055444019307 0.0000000000000000 -0.0022624521874621 0.0000000000000000 -0.0020902638812465 0.0000000000000000 - 0.0008285855530550 0.0000000000000000 0.0020902638812465 0.0000000000000000 0.0008479800149223 0.0000000000000000 + -0.0001947154533988 0.0000000000000000 0.0001055444019280 0.0000000000000000 -0.0008285855530568 0.0000000000000000 + 0.0001055444019293 0.0000000000000000 -0.0022624521874604 0.0000000000000000 -0.0020902638812461 0.0000000000000000 + 0.0008285855530561 0.0000000000000000 0.0020902638812458 0.0000000000000000 0.0008479800149217 0.0000000000000000 5 12 - -0.0020226399972397 0.0000000000000000 -0.0002383182140782 0.0000000000000000 -0.0001011648438934 0.0000000000000000 - 0.0002383182140778 0.0000000000000000 0.0000601515309634 0.0000000000000000 -0.0001507007232538 0.0000000000000000 - -0.0001011648438931 0.0000000000000000 0.0001507007232540 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972423 0.0000000000000000 -0.0002383182140809 0.0000000000000000 -0.0001011648438950 0.0000000000000000 + 0.0002383182140792 0.0000000000000000 0.0000601515309647 0.0000000000000000 -0.0001507007232532 0.0000000000000000 + -0.0001011648438940 0.0000000000000000 0.0001507007232529 0.0000000000000000 -0.0022331838997255 0.0000000000000000 6 1 - 0.0079739154089238 0.0000000000000000 0.0100652146645789 0.0000000000000000 0.0036706343437522 0.0000000000000000 - 0.0168418597307698 0.0000000000000000 -0.0099918936929075 0.0000000000000000 -0.0005259246072676 0.0000000000000000 - -0.0106690755761872 0.0000000000000000 -0.0069122209429028 0.0000000000000000 -0.0156150191112181 0.0000000000000000 + 0.0079739154089280 0.0000000000000000 0.0100652146645834 0.0000000000000000 0.0036706343437260 0.0000000000000000 + 0.0168418597307731 0.0000000000000000 -0.0099918936929039 0.0000000000000000 -0.0005259246072847 0.0000000000000000 + -0.0106690755761890 0.0000000000000000 -0.0069122209429046 0.0000000000000000 -0.0156150191112065 0.0000000000000000 6 2 - 0.0053960771921615 0.0000000000000000 0.0041883714492620 0.0000000000000000 -0.0052382113260946 0.0000000000000000 - 0.0027777266316751 0.0000000000000000 0.0037383917967309 0.0000000000000000 0.0007249474944282 0.0000000000000000 - 0.0010754919735295 0.0000000000000000 -0.0001605357525134 0.0000000000000000 -0.0008206821613009 0.0000000000000000 + 0.0053960771921632 0.0000000000000000 0.0041883714492620 0.0000000000000000 -0.0052382113260667 0.0000000000000000 + 0.0027777266316757 0.0000000000000000 0.0037383917967307 0.0000000000000000 0.0007249474944465 0.0000000000000000 + 0.0010754919735288 0.0000000000000000 -0.0001605357525136 0.0000000000000000 -0.0008206821613128 0.0000000000000000 6 3 - 0.0043670482201899 0.0000000000000000 -0.0073649825438718 0.0000000000000000 -0.0069798143243308 0.0000000000000000 - -0.0062527546419652 0.0000000000000000 -0.0050060184798436 0.0000000000000000 -0.0003322634792067 0.0000000000000000 - -0.0032245610064167 0.0000000000000000 0.0046134194019439 0.0000000000000000 0.0072531804468971 0.0000000000000000 + 0.0043670482201909 0.0000000000000000 -0.0073649825438765 0.0000000000000000 -0.0069798143243323 0.0000000000000000 + -0.0062527546419650 0.0000000000000000 -0.0050060184798469 0.0000000000000000 -0.0003322634792076 0.0000000000000000 + -0.0032245610064168 0.0000000000000000 0.0046134194019458 0.0000000000000000 0.0072531804468974 0.0000000000000000 6 4 - -0.2042620382020605 0.0000000000000000 -0.0961493426419366 0.0000000000000000 0.0680988033808352 0.0000000000000000 - -0.1111612914471363 0.0000000000000000 -0.1150790588758485 0.0000000000000000 0.0633030715249457 0.0000000000000000 - 0.0678004081048547 0.0000000000000000 0.0626077946132183 0.0000000000000000 -0.0673384314526803 0.0000000000000000 + -0.2042620382021206 0.0000000000000000 -0.0961493426419375 0.0000000000000000 0.0680988033808369 0.0000000000000000 + -0.1111612914471719 0.0000000000000000 -0.1150790588758499 0.0000000000000000 0.0633030715249479 0.0000000000000000 + 0.0678004081048771 0.0000000000000000 0.0626077946132197 0.0000000000000000 -0.0673384314526813 0.0000000000000000 6 5 - -0.0299583471230623 0.0000000000000000 -0.0025306649735934 0.0000000000000000 -0.0001964280885756 0.0000000000000000 - 0.0025306649735933 0.0000000000000000 0.0189330240079913 0.0000000000000000 -0.0130002466230997 0.0000000000000000 - 0.0001964280885757 0.0000000000000000 -0.0130002466230993 0.0000000000000000 0.0113735279572519 0.0000000000000000 + -0.0299583471230355 0.0000000000000000 -0.0025306649736090 0.0000000000000000 -0.0001964280885659 0.0000000000000000 + 0.0025306649736081 0.0000000000000000 0.0189330240079822 0.0000000000000000 -0.0130002466230941 0.0000000000000000 + 0.0001964280885663 0.0000000000000000 -0.0130002466230939 0.0000000000000000 0.0113735279572486 0.0000000000000000 6 6 - 0.2174594979186011 0.0000000000000000 0.0954682304260020 0.0000000000000000 -0.0600636707989439 0.0000000000000000 - 0.0954682304260020 0.0000000000000000 0.1104252604741310 0.0000000000000000 -0.0503426131734342 0.0000000000000000 - -0.0600636707989439 0.0000000000000000 -0.0503426131734342 0.0000000000000000 0.0677190190410494 0.0000000000000000 + 0.2174594979186281 0.0000000000000000 0.0954682304260193 0.0000000000000000 -0.0600636707989546 0.0000000000000000 + 0.0954682304260193 0.0000000000000000 0.1104252604741423 0.0000000000000000 -0.0503426131734415 0.0000000000000000 + -0.0600636707989546 0.0000000000000000 -0.0503426131734415 0.0000000000000000 0.0677190190410532 0.0000000000000000 6 7 - -0.0014003952261871 0.0000000000000000 0.0091891495399499 0.0000000000000000 -0.0007217572183744 0.0000000000000000 - -0.0002449744821628 0.0000000000000000 -0.0030108060126800 0.0000000000000000 0.0035553985811640 0.0000000000000000 - -0.0015206472447125 0.0000000000000000 0.0014211831836412 0.0000000000000000 -0.0025275585661386 0.0000000000000000 + -0.0014003952261872 0.0000000000000000 0.0091891495399473 0.0000000000000000 -0.0007217572183726 0.0000000000000000 + -0.0002449744821625 0.0000000000000000 -0.0030108060126823 0.0000000000000000 0.0035553985811644 0.0000000000000000 + -0.0015206472447122 0.0000000000000000 0.0014211831836428 0.0000000000000000 -0.0025275585661396 0.0000000000000000 6 8 - 0.0025040980237161 0.0000000000000000 -0.0006119532508371 0.0000000000000000 -0.0017406728581349 0.0000000000000000 - 0.0023164619816234 0.0000000000000000 0.0011510144726814 0.0000000000000000 -0.0039561444257030 0.0000000000000000 - 0.0038518265447298 0.0000000000000000 0.0004056725610967 0.0000000000000000 0.0031229275970325 0.0000000000000000 + 0.0025040980237168 0.0000000000000000 -0.0006119532508368 0.0000000000000000 -0.0017406728581345 0.0000000000000000 + 0.0023164619816233 0.0000000000000000 0.0011510144726817 0.0000000000000000 -0.0039561444257019 0.0000000000000000 + 0.0038518265447292 0.0000000000000000 0.0004056725610963 0.0000000000000000 0.0031229275970324 0.0000000000000000 6 9 - -0.0004154624427377 0.0000000000000000 -0.0127928624961870 0.0000000000000000 0.0050585024151253 0.0000000000000000 - -0.0012439381262109 0.0000000000000000 -0.0007025897616859 0.0000000000000000 0.0031456369018488 0.0000000000000000 - 0.0022873936225504 0.0000000000000000 0.0006118410528900 0.0000000000000000 -0.0037626256179481 0.0000000000000000 + -0.0004154624427381 0.0000000000000000 -0.0127928624961828 0.0000000000000000 0.0050585024151235 0.0000000000000000 + -0.0012439381262112 0.0000000000000000 -0.0007025897616823 0.0000000000000000 0.0031456369018476 0.0000000000000000 + 0.0022873936225505 0.0000000000000000 0.0006118410528877 0.0000000000000000 -0.0037626256179473 0.0000000000000000 6 10 - 0.0005529569781477 0.0000000000000000 0.0004060563613318 0.0000000000000000 -0.0028171359308472 0.0000000000000000 - -0.0006881224323630 0.0000000000000000 0.0017449768597169 0.0000000000000000 -0.0003308975272943 0.0000000000000000 - 0.0009938270034948 0.0000000000000000 -0.0014852637978361 0.0000000000000000 0.0019808748951315 0.0000000000000000 + 0.0005529569781476 0.0000000000000000 0.0004060563613346 0.0000000000000000 -0.0028171359308436 0.0000000000000000 + -0.0006881224323638 0.0000000000000000 0.0017449768597203 0.0000000000000000 -0.0003308975272921 0.0000000000000000 + 0.0009938270034952 0.0000000000000000 -0.0014852637978375 0.0000000000000000 0.0019808748951298 0.0000000000000000 6 11 - -0.0020226399972413 0.0000000000000000 0.0002383182140788 0.0000000000000000 0.0001011648438937 0.0000000000000000 - -0.0002383182140795 0.0000000000000000 0.0000601515309641 0.0000000000000000 -0.0001507007232533 0.0000000000000000 - 0.0001011648438943 0.0000000000000000 0.0001507007232531 0.0000000000000000 -0.0022331838997253 0.0000000000000000 + -0.0020226399972393 0.0000000000000000 0.0002383182140778 0.0000000000000000 0.0001011648438931 0.0000000000000000 + -0.0002383182140776 0.0000000000000000 0.0000601515309627 0.0000000000000000 -0.0001507007232540 0.0000000000000000 + 0.0001011648438931 0.0000000000000000 0.0001507007232537 0.0000000000000000 -0.0022331838997248 0.0000000000000000 6 12 - -0.0001947154534122 0.0000000000000000 -0.0001055444019377 0.0000000000000000 0.0008285855530509 0.0000000000000000 - -0.0001055444019378 0.0000000000000000 -0.0022624521874667 0.0000000000000000 -0.0020902638812491 0.0000000000000000 - -0.0008285855530506 0.0000000000000000 0.0020902638812493 0.0000000000000000 0.0008479800149247 0.0000000000000000 + -0.0001947154534146 0.0000000000000000 -0.0001055444019387 0.0000000000000000 0.0008285855530500 0.0000000000000000 + -0.0001055444019394 0.0000000000000000 -0.0022624521874681 0.0000000000000000 -0.0020902638812495 0.0000000000000000 + -0.0008285855530497 0.0000000000000000 0.0020902638812496 0.0000000000000000 0.0008479800149252 0.0000000000000000 7 1 - 0.0015706027157737 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000007 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 0.0058994142115028 0.0000000000000000 -0.0129555088579612 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0129555088579155 0.0000000000000000 -0.0025061456783189 0.0000000000000000 + 0.0015706027157740 0.0000000000000000 0.0000000000000018 0.0000000000000000 0.0000000000000003 0.0000000000000000 + 0.0000000000000017 0.0000000000000000 0.0058994142115024 0.0000000000000000 -0.0129555088579213 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0129555088579572 0.0000000000000000 -0.0025061456783196 0.0000000000000000 7 2 - -0.0018152750012298 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000007 0.0000000000000000 - 0.0000000000000006 0.0000000000000000 0.0012476417535545 0.0000000000000000 0.0078942408876013 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0002039213450292 0.0000000000000000 0.0145769254785546 0.0000000000000000 + -0.0018152750012297 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000015 0.0000000000000000 0.0012476417535541 0.0000000000000000 0.0078942408875622 0.0000000000000000 + -0.0000000000000004 0.0000000000000000 0.0002039213450285 0.0000000000000000 0.0145769254785676 0.0000000000000000 7 3 - -0.0016399265604473 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0035091911501719 0.0000000000000000 0.0021722504817066 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0074822204968487 0.0000000000000000 0.0003426041600719 0.0000000000000000 + -0.0016399265604476 0.0000000000000000 -0.0000000000000017 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0035091911501715 0.0000000000000000 0.0021722504817081 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 -0.0074822204968866 0.0000000000000000 0.0003426041600610 0.0000000000000000 7 4 - 0.0078082955673495 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000104 0.0000000000000000 0.0119074076296492 0.0000000000000000 0.0034942738523658 0.0000000000000000 - -0.0000000000000047 0.0000000000000000 -0.0044778895271415 0.0000000000000000 -0.0367974389514057 0.0000000000000000 + 0.0078082955673491 0.0000000000000000 0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000237 0.0000000000000000 0.0119074076296579 0.0000000000000000 0.0034942738523560 0.0000000000000000 + 0.0000000000000040 0.0000000000000000 -0.0044778895271479 0.0000000000000000 -0.0367974389514042 0.0000000000000000 7 5 - -0.0014003952261875 0.0000000000000000 0.0002449744821626 0.0000000000000000 0.0015206472447122 0.0000000000000000 - -0.0091891495399403 0.0000000000000000 -0.0030108060126854 0.0000000000000000 0.0014211831836446 0.0000000000000000 - 0.0007217572183788 0.0000000000000000 0.0035553985811609 0.0000000000000000 -0.0025275585661367 0.0000000000000000 + -0.0014003952261869 0.0000000000000000 0.0002449744821623 0.0000000000000000 0.0015206472447121 0.0000000000000000 + -0.0091891495399260 0.0000000000000000 -0.0030108060126953 0.0000000000000000 0.0014211831836503 0.0000000000000000 + 0.0007217572183691 0.0000000000000000 0.0035553985811666 0.0000000000000000 -0.0025275585661406 0.0000000000000000 7 6 - -0.0014003952261871 0.0000000000000000 -0.0002449744821628 0.0000000000000000 -0.0015206472447125 0.0000000000000000 - 0.0091891495399499 0.0000000000000000 -0.0030108060126800 0.0000000000000000 0.0014211831836412 0.0000000000000000 - -0.0007217572183744 0.0000000000000000 0.0035553985811640 0.0000000000000000 -0.0025275585661386 0.0000000000000000 + -0.0014003952261872 0.0000000000000000 -0.0002449744821625 0.0000000000000000 -0.0015206472447122 0.0000000000000000 + 0.0091891495399473 0.0000000000000000 -0.0030108060126823 0.0000000000000000 0.0014211831836428 0.0000000000000000 + -0.0007217572183726 0.0000000000000000 0.0035553985811644 0.0000000000000000 -0.0025275585661396 0.0000000000000000 7 7 - 0.0723775009917368 0.0000000000000000 0.0000000000000011 0.0000000000000000 -0.0000000000000011 0.0000000000000000 - 0.0000000000000011 0.0000000000000000 0.3831399905936608 0.0000000000000000 -0.0800072256509711 0.0000000000000000 - -0.0000000000000011 0.0000000000000000 -0.0800072256509712 0.0000000000000000 0.4293434337307674 0.0000000000000000 + 0.0723775009917353 0.0000000000000000 0.0000000000000017 0.0000000000000000 0.0000000000000001 0.0000000000000000 + 0.0000000000000017 0.0000000000000000 0.3831399905936725 0.0000000000000000 -0.0800072256509389 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 -0.0800072256509389 0.0000000000000000 0.4293434337307639 0.0000000000000000 7 8 - -0.0251057439413774 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000008 0.0000000000000000 - 0.0000000000000007 0.0000000000000000 -0.0569567699834669 0.0000000000000000 0.0058150573712115 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 -0.0222771411146680 0.0000000000000000 -0.2988598772525948 0.0000000000000000 + -0.0251057439413772 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0569567699834674 0.0000000000000000 0.0058150573711754 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0222771411146699 0.0000000000000000 -0.2988598772526024 0.0000000000000000 7 9 - -0.0289738345959178 0.0000000000000000 -0.0000000000000012 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.2820802915433014 0.0000000000000000 0.0527306161696210 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0884826303559652 0.0000000000000000 -0.0739447334126267 0.0000000000000000 + -0.0289738345959176 0.0000000000000000 -0.0000000000000017 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 -0.2820802915433160 0.0000000000000000 0.0527306161696258 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0884826303559368 0.0000000000000000 -0.0739447334126192 0.0000000000000000 7 10 - -0.0373686571560842 0.0000000000000000 0.0000000000000010 0.0000000000000000 0.0000000000000004 0.0000000000000000 - -0.0000000000000166 0.0000000000000000 -0.0336428001201888 0.0000000000000000 0.0041894809945779 0.0000000000000000 - 0.0000000000000164 0.0000000000000000 0.0044397818519304 0.0000000000000000 0.0041303780996350 0.0000000000000000 + -0.0373686571560752 0.0000000000000000 0.0000000000000004 0.0000000000000000 0.0000000000000001 0.0000000000000000 + -0.0000000000000241 0.0000000000000000 -0.0336428001201923 0.0000000000000000 0.0041894809945740 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0044397818519694 0.0000000000000000 0.0041303780996612 0.0000000000000000 7 11 - 0.0079739154089322 0.0000000000000000 -0.0168418597307750 0.0000000000000000 -0.0106690755761902 0.0000000000000000 - -0.0100652146645610 0.0000000000000000 -0.0099918936929192 0.0000000000000000 0.0069122209428956 0.0000000000000000 - 0.0036706343437197 0.0000000000000000 0.0005259246072899 0.0000000000000000 -0.0156150191112043 0.0000000000000000 + 0.0079739154089276 0.0000000000000000 -0.0168418597307721 0.0000000000000000 -0.0106690755761884 0.0000000000000000 + -0.0100652146645597 0.0000000000000000 -0.0099918936929203 0.0000000000000000 0.0069122209428955 0.0000000000000000 + 0.0036706343437562 0.0000000000000000 0.0005259246072660 0.0000000000000000 -0.0156150191112198 0.0000000000000000 7 12 - 0.0079739154089311 0.0000000000000000 0.0168418597307739 0.0000000000000000 0.0106690755761901 0.0000000000000000 - 0.0100652146645760 0.0000000000000000 -0.0099918936929097 0.0000000000000000 0.0069122209429013 0.0000000000000000 - -0.0036706343437346 0.0000000000000000 0.0005259246072804 0.0000000000000000 -0.0156150191112100 0.0000000000000000 + 0.0079739154089274 0.0000000000000000 0.0168418597307716 0.0000000000000000 0.0106690755761887 0.0000000000000000 + 0.0100652146645812 0.0000000000000000 -0.0099918936929064 0.0000000000000000 0.0069122209429034 0.0000000000000000 + -0.0036706343437553 0.0000000000000000 0.0005259246072660 0.0000000000000000 -0.0156150191112191 0.0000000000000000 8 1 - -0.0018152750012301 0.0000000000000000 0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0012476417535547 0.0000000000000000 -0.0002039213450273 0.0000000000000000 - -0.0000000000000007 0.0000000000000000 -0.0078942408875553 0.0000000000000000 0.0145769254785679 0.0000000000000000 + -0.0018152750012301 0.0000000000000000 0.0000000000000011 0.0000000000000000 0.0000000000000005 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0012476417535551 0.0000000000000000 -0.0002039213450278 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0078942408875953 0.0000000000000000 0.0145769254785557 0.0000000000000000 8 2 - 0.0036353210827942 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000003 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0001181663659071 0.0000000000000000 0.0026161584162155 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0026161584162175 0.0000000000000000 -0.0221544638345915 0.0000000000000000 + 0.0036353210827943 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 -0.0001181663659071 0.0000000000000000 0.0026161584162162 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0026161584162165 0.0000000000000000 -0.0221544638345921 0.0000000000000000 8 3 - -0.0006990068039684 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0007453998223716 0.0000000000000000 -0.0020862975258866 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 -0.0005005588826217 0.0000000000000000 -0.0034474484778439 0.0000000000000000 + -0.0006990068039681 0.0000000000000000 -0.0000000000000006 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 0.0007453998223712 0.0000000000000000 -0.0020862975258869 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -0.0005005588825857 0.0000000000000000 -0.0034474484778340 0.0000000000000000 8 4 - -0.0158629633765093 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0142572303934413 0.0000000000000000 -0.0025026894102784 0.0000000000000000 - 0.0000000000000083 0.0000000000000000 0.0110402408679823 0.0000000000000000 0.0060798140623808 0.0000000000000000 + -0.0158629633765108 0.0000000000000000 0.0000000000000008 0.0000000000000000 0.0000000000000002 0.0000000000000000 + 0.0000000000000015 0.0000000000000000 -0.0142572303934423 0.0000000000000000 -0.0025026894102776 0.0000000000000000 + 0.0000000000000036 0.0000000000000000 0.0110402408679840 0.0000000000000000 0.0060798140623830 0.0000000000000000 8 5 - 0.0025040980237165 0.0000000000000000 -0.0023164619816237 0.0000000000000000 -0.0038518265447298 0.0000000000000000 - 0.0006119532508362 0.0000000000000000 0.0011510144726814 0.0000000000000000 0.0004056725610964 0.0000000000000000 - 0.0017406728581273 0.0000000000000000 -0.0039561444256983 0.0000000000000000 0.0031229275970296 0.0000000000000000 + 0.0025040980237174 0.0000000000000000 -0.0023164619816243 0.0000000000000000 -0.0038518265447297 0.0000000000000000 + 0.0006119532508353 0.0000000000000000 0.0011510144726821 0.0000000000000000 0.0004056725610958 0.0000000000000000 + 0.0017406728581313 0.0000000000000000 -0.0039561444256999 0.0000000000000000 0.0031229275970312 0.0000000000000000 8 6 - 0.0025040980237161 0.0000000000000000 0.0023164619816234 0.0000000000000000 0.0038518265447298 0.0000000000000000 - -0.0006119532508371 0.0000000000000000 0.0011510144726814 0.0000000000000000 0.0004056725610967 0.0000000000000000 - -0.0017406728581349 0.0000000000000000 -0.0039561444257030 0.0000000000000000 0.0031229275970325 0.0000000000000000 + 0.0025040980237168 0.0000000000000000 0.0023164619816233 0.0000000000000000 0.0038518265447292 0.0000000000000000 + -0.0006119532508368 0.0000000000000000 0.0011510144726817 0.0000000000000000 0.0004056725610963 0.0000000000000000 + -0.0017406728581345 0.0000000000000000 -0.0039561444257019 0.0000000000000000 0.0031229275970324 0.0000000000000000 8 7 - -0.0251057439413774 0.0000000000000000 0.0000000000000007 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - 0.0000000000000000 0.0000000000000000 -0.0569567699834669 0.0000000000000000 -0.0222771411146680 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 0.0058150573712115 0.0000000000000000 -0.2988598772525948 0.0000000000000000 + -0.0251057439413772 0.0000000000000000 0.0000000000000010 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0569567699834674 0.0000000000000000 -0.0222771411146699 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0058150573711754 0.0000000000000000 -0.2988598772526024 0.0000000000000000 8 8 - 0.0352255604087116 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000000 0.0000000000000000 0.0577498980966756 0.0000000000000000 -0.0004642893512935 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0004642893512935 0.0000000000000000 0.2960907478396886 0.0000000000000000 + 0.0352255604087111 0.0000000000000000 -0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0577498980966751 0.0000000000000000 -0.0004642893512908 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0004642893512908 0.0000000000000000 0.2960907478397074 0.0000000000000000 8 9 - 0.0037861455182860 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.0103751426308778 0.0000000000000000 0.0282119025677899 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0049287602283372 0.0000000000000000 -0.0033792838522438 0.0000000000000000 + 0.0037861455182857 0.0000000000000000 -0.0000000000000006 0.0000000000000000 0.0000000000000003 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.0103751426308787 0.0000000000000000 0.0282119025677891 0.0000000000000000 + -0.0000000000000000 0.0000000000000000 0.0049287602283704 0.0000000000000000 -0.0033792838522521 0.0000000000000000 8 10 - -0.0149643881777223 0.0000000000000000 0.0000000000000005 0.0000000000000000 0.0000000000000002 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0085647327830326 0.0000000000000000 -0.0044261389355786 0.0000000000000000 - -0.0000000000000108 0.0000000000000000 -0.0009466269409857 0.0000000000000000 0.0064890897648090 0.0000000000000000 + -0.0149643881777181 0.0000000000000000 0.0000000000000008 0.0000000000000000 -0.0000000000000003 0.0000000000000000 + 0.0000000000000013 0.0000000000000000 -0.0085647327830320 0.0000000000000000 -0.0044261389355782 0.0000000000000000 + 0.0000000000000073 0.0000000000000000 -0.0009466269410211 0.0000000000000000 0.0064890897647847 0.0000000000000000 8 11 - 0.0053960771921648 0.0000000000000000 -0.0027777266316773 0.0000000000000000 0.0010754919735284 0.0000000000000000 - -0.0041883714492628 0.0000000000000000 0.0037383917967314 0.0000000000000000 0.0001605357525138 0.0000000000000000 - -0.0052382113260687 0.0000000000000000 -0.0007249474944456 0.0000000000000000 -0.0008206821613118 0.0000000000000000 + 0.0053960771921630 0.0000000000000000 -0.0027777266316766 0.0000000000000000 0.0010754919735295 0.0000000000000000 + -0.0041883714492626 0.0000000000000000 0.0037383917967315 0.0000000000000000 0.0001605357525135 0.0000000000000000 + -0.0052382113261045 0.0000000000000000 -0.0007249474944220 0.0000000000000000 -0.0008206821612969 0.0000000000000000 8 12 - 0.0053960771921642 0.0000000000000000 0.0027777266316767 0.0000000000000000 -0.0010754919735285 0.0000000000000000 - 0.0041883714492623 0.0000000000000000 0.0037383917967304 0.0000000000000000 0.0001605357525137 0.0000000000000000 - 0.0052382113260785 0.0000000000000000 -0.0007249474944396 0.0000000000000000 -0.0008206821613080 0.0000000000000000 + 0.0053960771921624 0.0000000000000000 0.0027777266316756 0.0000000000000000 -0.0010754919735290 0.0000000000000000 + 0.0041883714492617 0.0000000000000000 0.0037383917967301 0.0000000000000000 0.0001605357525137 0.0000000000000000 + 0.0052382113260979 0.0000000000000000 -0.0007249474944262 0.0000000000000000 -0.0008206821612993 0.0000000000000000 9 1 - -0.0016399265604470 0.0000000000000000 -0.0000000000000000 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 -0.0035091911501685 0.0000000000000000 0.0074822204968905 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0021722504817085 0.0000000000000000 0.0003426041600605 0.0000000000000000 + -0.0016399265604469 0.0000000000000000 -0.0000000000000005 0.0000000000000000 -0.0000000000000002 0.0000000000000000 + -0.0000000000000015 0.0000000000000000 -0.0035091911501695 0.0000000000000000 0.0074822204968551 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0021722504817071 0.0000000000000000 0.0003426041600707 0.0000000000000000 9 2 - -0.0006990068039685 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000001 0.0000000000000000 - -0.0000000000000004 0.0000000000000000 0.0007453998223716 0.0000000000000000 0.0005005588825812 0.0000000000000000 - 0.0000000000000003 0.0000000000000000 0.0020862975258867 0.0000000000000000 -0.0034474484778334 0.0000000000000000 + -0.0006990068039689 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -0.0000000000000008 0.0000000000000000 0.0007453998223721 0.0000000000000000 0.0005005588826157 0.0000000000000000 + 0.0000000000000005 0.0000000000000000 0.0020862975258867 0.0000000000000000 -0.0034474484778429 0.0000000000000000 9 3 - 0.0025844652016199 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000001 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 -0.0002706095090058 0.0000000000000000 -0.0025129031626718 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0025129031626730 0.0000000000000000 -0.0015754786010475 0.0000000000000000 + 0.0025844652016201 0.0000000000000000 0.0000000000000003 0.0000000000000000 -0.0000000000000001 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 -0.0002706095090055 0.0000000000000000 -0.0025129031626730 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0025129031626716 0.0000000000000000 -0.0015754786010477 0.0000000000000000 9 4 - -0.0001599946965694 0.0000000000000000 -0.0000000000000003 0.0000000000000000 -0.0000000000000004 0.0000000000000000 - 0.0000000000000094 0.0000000000000000 0.0004054668963166 0.0000000000000000 -0.0101430343307530 0.0000000000000000 - -0.0000000000000021 0.0000000000000000 -0.0081775121522224 0.0000000000000000 0.0079899884223502 0.0000000000000000 + -0.0001599946965685 0.0000000000000000 -0.0000000000000004 0.0000000000000000 -0.0000000000000005 0.0000000000000000 + 0.0000000000000221 0.0000000000000000 0.0004054668963060 0.0000000000000000 -0.0101430343307417 0.0000000000000000 + -0.0000000000000054 0.0000000000000000 -0.0081775121522190 0.0000000000000000 0.0079899884223466 0.0000000000000000 9 5 - -0.0004154624427377 0.0000000000000000 0.0012439381262114 0.0000000000000000 -0.0022873936225497 0.0000000000000000 - 0.0127928624961785 0.0000000000000000 -0.0007025897616807 0.0000000000000000 0.0006118410528869 0.0000000000000000 - -0.0050585024151233 0.0000000000000000 0.0031456369018482 0.0000000000000000 -0.0037626256179473 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0012439381262119 0.0000000000000000 -0.0022873936225496 0.0000000000000000 + 0.0127928624961631 0.0000000000000000 -0.0007025897616701 0.0000000000000000 0.0006118410528804 0.0000000000000000 + -0.0050585024151183 0.0000000000000000 0.0031456369018450 0.0000000000000000 -0.0037626256179454 0.0000000000000000 9 6 - -0.0004154624427377 0.0000000000000000 -0.0012439381262109 0.0000000000000000 0.0022873936225504 0.0000000000000000 - -0.0127928624961870 0.0000000000000000 -0.0007025897616859 0.0000000000000000 0.0006118410528900 0.0000000000000000 - 0.0050585024151253 0.0000000000000000 0.0031456369018488 0.0000000000000000 -0.0037626256179481 0.0000000000000000 + -0.0004154624427381 0.0000000000000000 -0.0012439381262112 0.0000000000000000 0.0022873936225505 0.0000000000000000 + -0.0127928624961828 0.0000000000000000 -0.0007025897616823 0.0000000000000000 0.0006118410528877 0.0000000000000000 + 0.0050585024151235 0.0000000000000000 0.0031456369018476 0.0000000000000000 -0.0037626256179473 0.0000000000000000 9 7 - -0.0289738345959178 0.0000000000000000 0.0000000000000002 0.0000000000000000 -0.0000000000000002 0.0000000000000000 - -0.0000000000000012 0.0000000000000000 -0.2820802915433014 0.0000000000000000 0.0884826303559652 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0527306161696210 0.0000000000000000 -0.0739447334126267 0.0000000000000000 + -0.0289738345959176 0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000017 0.0000000000000000 -0.2820802915433160 0.0000000000000000 0.0884826303559368 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 0.0527306161696258 0.0000000000000000 -0.0739447334126193 0.0000000000000000 9 8 - 0.0037861455182860 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000006 0.0000000000000000 0.0103751426308778 0.0000000000000000 0.0049287602283372 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0282119025677899 0.0000000000000000 -0.0033792838522438 0.0000000000000000 + 0.0037861455182857 0.0000000000000000 -0.0000000000000001 0.0000000000000000 -0.0000000000000000 0.0000000000000000 + -0.0000000000000006 0.0000000000000000 0.0103751426308787 0.0000000000000000 0.0049287602283704 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0282119025677891 0.0000000000000000 -0.0033792838522521 0.0000000000000000 9 9 - 0.0365782981378746 0.0000000000000000 -0.0000000000000002 0.0000000000000000 0.0000000000000002 0.0000000000000000 - -0.0000000000000002 0.0000000000000000 0.2729248902174979 0.0000000000000000 -0.0713458205553443 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0713458205553443 0.0000000000000000 0.0798291225288868 0.0000000000000000 + 0.0365782981378745 0.0000000000000000 -0.0000000000000001 0.0000000000000000 0.0000000000000002 0.0000000000000000 + -0.0000000000000001 0.0000000000000000 0.2729248902175154 0.0000000000000000 -0.0713458205553494 0.0000000000000000 + 0.0000000000000002 0.0000000000000000 -0.0713458205553494 0.0000000000000000 0.0798291225288877 0.0000000000000000 9 10 - -0.0193793176120044 0.0000000000000000 -0.0000000000000003 0.0000000000000000 0.0000000000000004 0.0000000000000000 - 0.0000000000000168 0.0000000000000000 0.0128264092257469 0.0000000000000000 -0.0093892601393149 0.0000000000000000 - -0.0000000000000043 0.0000000000000000 -0.0108019320579828 0.0000000000000000 -0.0127958810116053 0.0000000000000000 + -0.0193793176120025 0.0000000000000000 -0.0000000000000005 0.0000000000000000 0.0000000000000006 0.0000000000000000 + 0.0000000000000224 0.0000000000000000 0.0128264092257506 0.0000000000000000 -0.0093892601393123 0.0000000000000000 + -0.0000000000000060 0.0000000000000000 -0.0108019320579835 0.0000000000000000 -0.0127958810116057 0.0000000000000000 9 11 - 0.0043670482201912 0.0000000000000000 0.0062527546419648 0.0000000000000000 -0.0032245610064176 0.0000000000000000 - 0.0073649825438555 0.0000000000000000 -0.0050060184798330 0.0000000000000000 -0.0046134194019374 0.0000000000000000 - -0.0069798143243268 0.0000000000000000 0.0003322634792038 0.0000000000000000 0.0072531804468955 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 0.0062527546419655 0.0000000000000000 -0.0032245610064176 0.0000000000000000 + 0.0073649825438538 0.0000000000000000 -0.0050060184798319 0.0000000000000000 -0.0046134194019368 0.0000000000000000 + -0.0069798143243258 0.0000000000000000 0.0003322634792033 0.0000000000000000 0.0072531804468954 0.0000000000000000 9 12 - 0.0043670482201910 0.0000000000000000 -0.0062527546419644 0.0000000000000000 0.0032245610064169 0.0000000000000000 - -0.0073649825438707 0.0000000000000000 -0.0050060184798421 0.0000000000000000 -0.0046134194019431 0.0000000000000000 - 0.0069798143243305 0.0000000000000000 0.0003322634792066 0.0000000000000000 0.0072531804468967 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 -0.0062527546419647 0.0000000000000000 0.0032245610064166 0.0000000000000000 + -0.0073649825438740 0.0000000000000000 -0.0050060184798441 0.0000000000000000 -0.0046134194019448 0.0000000000000000 + 0.0069798143243311 0.0000000000000000 0.0003322634792073 0.0000000000000000 0.0072531804468969 0.0000000000000000 10 1 - 0.0078082955673492 0.0000000000000000 -0.0000000000000098 0.0000000000000000 0.0000000000000062 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 0.0119074076296619 0.0000000000000000 0.0044778895271254 0.0000000000000000 - 0.0000000000000008 0.0000000000000000 -0.0034942738523529 0.0000000000000000 -0.0367974389514191 0.0000000000000000 + 0.0078082955673473 0.0000000000000000 -0.0000000000000142 0.0000000000000000 -0.0000000000000075 0.0000000000000000 + 0.0000000000000003 0.0000000000000000 0.0119074076296482 0.0000000000000000 0.0044778895271162 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0034942738523642 0.0000000000000000 -0.0367974389514215 0.0000000000000000 10 2 - -0.0158629633765122 0.0000000000000000 0.0000000000000009 0.0000000000000000 -0.0000000000000098 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.0142572303934430 0.0000000000000000 -0.0110402408679630 0.0000000000000000 - 0.0000000000000001 0.0000000000000000 0.0025026894102770 0.0000000000000000 0.0060798140623970 0.0000000000000000 + -0.0158629633765104 0.0000000000000000 0.0000000000000013 0.0000000000000000 0.0000000000000027 0.0000000000000000 + 0.0000000000000010 0.0000000000000000 -0.0142572303934417 0.0000000000000000 -0.0110402408679579 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 0.0025026894102780 0.0000000000000000 0.0060798140623969 0.0000000000000000 10 3 - -0.0001599946965675 0.0000000000000000 0.0000000000000108 0.0000000000000000 0.0000000000000027 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 0.0004054668963032 0.0000000000000000 0.0081775121522188 0.0000000000000000 - -0.0000000000000001 0.0000000000000000 0.0101430343307397 0.0000000000000000 0.0079899884223466 0.0000000000000000 + -0.0001599946965690 0.0000000000000000 0.0000000000000122 0.0000000000000000 0.0000000000000024 0.0000000000000000 + -0.0000000000000002 0.0000000000000000 0.0004054668963175 0.0000000000000000 0.0081775121522231 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0101430343307511 0.0000000000000000 0.0079899884223499 0.0000000000000000 10 4 - 0.0039008143595916 0.0000000000000000 -0.0000000000000083 0.0000000000000000 0.0000000000000054 0.0000000000000000 - -0.0000000000000061 0.0000000000000000 -0.0008485805837908 0.0000000000000000 0.0030686652718403 0.0000000000000000 - -0.0000000000000035 0.0000000000000000 -0.0030686652718389 0.0000000000000000 -0.0082838582595774 0.0000000000000000 + 0.0039008143595903 0.0000000000000000 -0.0000000000000099 0.0000000000000000 0.0000000000000064 0.0000000000000000 + -0.0000000000000146 0.0000000000000000 -0.0008485805837914 0.0000000000000000 0.0030686652718396 0.0000000000000000 + -0.0000000000000108 0.0000000000000000 -0.0030686652718407 0.0000000000000000 -0.0082838582595772 0.0000000000000000 10 5 - 0.0005529569781328 0.0000000000000000 0.0006881224323734 0.0000000000000000 -0.0009938270035016 0.0000000000000000 - -0.0004060563613261 0.0000000000000000 0.0017449768597135 0.0000000000000000 -0.0014852637978343 0.0000000000000000 - 0.0028171359308506 0.0000000000000000 -0.0003308975272962 0.0000000000000000 0.0019808748951331 0.0000000000000000 + 0.0005529569781323 0.0000000000000000 0.0006881224323740 0.0000000000000000 -0.0009938270035019 0.0000000000000000 + -0.0004060563613220 0.0000000000000000 0.0017449768597118 0.0000000000000000 -0.0014852637978332 0.0000000000000000 + 0.0028171359308531 0.0000000000000000 -0.0003308975272971 0.0000000000000000 0.0019808748951340 0.0000000000000000 10 6 - 0.0005529569781477 0.0000000000000000 -0.0006881224323630 0.0000000000000000 0.0009938270034948 0.0000000000000000 - 0.0004060563613318 0.0000000000000000 0.0017449768597169 0.0000000000000000 -0.0014852637978361 0.0000000000000000 - -0.0028171359308472 0.0000000000000000 -0.0003308975272943 0.0000000000000000 0.0019808748951315 0.0000000000000000 + 0.0005529569781476 0.0000000000000000 -0.0006881224323638 0.0000000000000000 0.0009938270034952 0.0000000000000000 + 0.0004060563613346 0.0000000000000000 0.0017449768597203 0.0000000000000000 -0.0014852637978375 0.0000000000000000 + -0.0028171359308436 0.0000000000000000 -0.0003308975272921 0.0000000000000000 0.0019808748951298 0.0000000000000000 10 7 - -0.0373686571560842 0.0000000000000000 -0.0000000000000166 0.0000000000000000 0.0000000000000164 0.0000000000000000 - 0.0000000000000010 0.0000000000000000 -0.0336428001201888 0.0000000000000000 0.0044397818519304 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 0.0041894809945779 0.0000000000000000 0.0041303780996350 0.0000000000000000 + -0.0373686571560752 0.0000000000000000 -0.0000000000000241 0.0000000000000000 -0.0000000000000006 0.0000000000000000 + 0.0000000000000004 0.0000000000000000 -0.0336428001201923 0.0000000000000000 0.0044397818519694 0.0000000000000000 + 0.0000000000000001 0.0000000000000000 0.0041894809945740 0.0000000000000000 0.0041303780996612 0.0000000000000000 10 8 - -0.0149643881777223 0.0000000000000000 0.0000000000000008 0.0000000000000000 -0.0000000000000108 0.0000000000000000 - 0.0000000000000005 0.0000000000000000 -0.0085647327830325 0.0000000000000000 -0.0009466269409857 0.0000000000000000 - 0.0000000000000002 0.0000000000000000 -0.0044261389355786 0.0000000000000000 0.0064890897648090 0.0000000000000000 + -0.0149643881777181 0.0000000000000000 0.0000000000000013 0.0000000000000000 0.0000000000000073 0.0000000000000000 + 0.0000000000000008 0.0000000000000000 -0.0085647327830320 0.0000000000000000 -0.0009466269410211 0.0000000000000000 + -0.0000000000000003 0.0000000000000000 -0.0044261389355782 0.0000000000000000 0.0064890897647847 0.0000000000000000 10 9 - -0.0193793176120044 0.0000000000000000 0.0000000000000168 0.0000000000000000 -0.0000000000000043 0.0000000000000000 - -0.0000000000000003 0.0000000000000000 0.0128264092257469 0.0000000000000000 -0.0108019320579828 0.0000000000000000 - 0.0000000000000004 0.0000000000000000 -0.0093892601393149 0.0000000000000000 -0.0127958810116053 0.0000000000000000 + -0.0193793176120025 0.0000000000000000 0.0000000000000224 0.0000000000000000 -0.0000000000000060 0.0000000000000000 + -0.0000000000000005 0.0000000000000000 0.0128264092257506 0.0000000000000000 -0.0108019320579835 0.0000000000000000 + 0.0000000000000006 0.0000000000000000 -0.0093892601393123 0.0000000000000000 -0.0127958810116057 0.0000000000000000 10 10 - 0.4834443802761175 0.0000000000000000 -0.0000000000000057 0.0000000000000000 -0.0000000000000077 0.0000000000000000 - -0.0000000000000057 0.0000000000000000 0.2588422264936652 0.0000000000000000 0.1308110718530727 0.0000000000000000 - -0.0000000000000077 0.0000000000000000 0.1308110718530727 0.0000000000000000 0.1639030178691395 0.0000000000000000 + 0.4834443802759665 0.0000000000000000 -0.0000000000000097 0.0000000000000000 -0.0000000000000083 0.0000000000000000 + -0.0000000000000097 0.0000000000000000 0.2588422264936571 0.0000000000000000 0.1308110718530663 0.0000000000000000 + -0.0000000000000083 0.0000000000000000 0.1308110718530663 0.0000000000000000 0.1639030178691341 0.0000000000000000 10 11 - -0.2042620382021767 0.0000000000000000 0.1111612914472088 0.0000000000000000 0.0678004081048995 0.0000000000000000 - 0.0961493426419468 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0626077946132227 0.0000000000000000 - 0.0680988033808463 0.0000000000000000 -0.0633030715249527 0.0000000000000000 -0.0673384314526849 0.0000000000000000 + -0.2042620382021126 0.0000000000000000 0.1111612914471689 0.0000000000000000 0.0678004081048748 0.0000000000000000 + 0.0961493426419430 0.0000000000000000 -0.1150790588758516 0.0000000000000000 -0.0626077946132198 0.0000000000000000 + 0.0680988033808423 0.0000000000000000 -0.0633030715249490 0.0000000000000000 -0.0673384314526829 0.0000000000000000 10 12 - -0.2042620382021664 0.0000000000000000 -0.1111612914472010 0.0000000000000000 -0.0678004081048943 0.0000000000000000 - -0.0961493426419414 0.0000000000000000 -0.1150790588758519 0.0000000000000000 -0.0626077946132206 0.0000000000000000 - -0.0680988033808390 0.0000000000000000 -0.0633030715249484 0.0000000000000000 -0.0673384314526822 0.0000000000000000 + -0.2042620382020968 0.0000000000000000 -0.1111612914471585 0.0000000000000000 -0.0678004081048683 0.0000000000000000 + -0.0961493426419348 0.0000000000000000 -0.1150790588758463 0.0000000000000000 -0.0626077946132173 0.0000000000000000 + -0.0680988033808351 0.0000000000000000 -0.0633030715249450 0.0000000000000000 -0.0673384314526796 0.0000000000000000 11 1 - -0.0014003952261865 0.0000000000000000 -0.0091891495399320 0.0000000000000000 -0.0007217572183904 0.0000000000000000 - 0.0002449744821627 0.0000000000000000 -0.0030108060126923 0.0000000000000000 -0.0035553985811520 0.0000000000000000 - -0.0015206472447127 0.0000000000000000 -0.0014211831836486 0.0000000000000000 -0.0025275585661311 0.0000000000000000 + -0.0014003952261856 0.0000000000000000 -0.0091891495399406 0.0000000000000000 -0.0007217572183924 0.0000000000000000 + 0.0002449744821623 0.0000000000000000 -0.0030108060126859 0.0000000000000000 -0.0035553985811516 0.0000000000000000 + -0.0015206472447132 0.0000000000000000 -0.0014211831836441 0.0000000000000000 -0.0025275585661300 0.0000000000000000 11 2 - 0.0025040980237178 0.0000000000000000 0.0006119532508360 0.0000000000000000 -0.0017406728581125 0.0000000000000000 - -0.0023164619816246 0.0000000000000000 0.0011510144726826 0.0000000000000000 0.0039561444256876 0.0000000000000000 - 0.0038518265447292 0.0000000000000000 -0.0004056725610960 0.0000000000000000 0.0031229275970231 0.0000000000000000 + 0.0025040980237171 0.0000000000000000 0.0006119532508363 0.0000000000000000 -0.0017406728581138 0.0000000000000000 + -0.0023164619816247 0.0000000000000000 0.0011510144726823 0.0000000000000000 0.0039561444256889 0.0000000000000000 + 0.0038518265447299 0.0000000000000000 -0.0004056725610963 0.0000000000000000 0.0031229275970233 0.0000000000000000 11 3 - -0.0004154624427386 0.0000000000000000 0.0127928624961676 0.0000000000000000 0.0050585024151195 0.0000000000000000 - 0.0012439381262115 0.0000000000000000 -0.0007025897616733 0.0000000000000000 -0.0031456369018457 0.0000000000000000 - 0.0022873936225504 0.0000000000000000 -0.0006118410528820 0.0000000000000000 -0.0037626256179462 0.0000000000000000 + -0.0004154624427382 0.0000000000000000 0.0127928624961779 0.0000000000000000 0.0050585024151234 0.0000000000000000 + 0.0012439381262114 0.0000000000000000 -0.0007025897616806 0.0000000000000000 -0.0031456369018480 0.0000000000000000 + 0.0022873936225502 0.0000000000000000 -0.0006118410528870 0.0000000000000000 -0.0037626256179479 0.0000000000000000 11 4 - 0.0005529569781352 0.0000000000000000 -0.0004060563613260 0.0000000000000000 -0.0028171359308501 0.0000000000000000 - 0.0006881224323724 0.0000000000000000 0.0017449768597134 0.0000000000000000 0.0003308975272960 0.0000000000000000 - 0.0009938270035009 0.0000000000000000 0.0014852637978343 0.0000000000000000 0.0019808748951330 0.0000000000000000 + 0.0005529569781305 0.0000000000000000 -0.0004060563613253 0.0000000000000000 -0.0028171359308512 0.0000000000000000 + 0.0006881224323763 0.0000000000000000 0.0017449768597123 0.0000000000000000 0.0003308975272968 0.0000000000000000 + 0.0009938270035030 0.0000000000000000 0.0014852637978338 0.0000000000000000 0.0019808748951335 0.0000000000000000 11 5 - -0.0001947154534015 0.0000000000000000 0.0001055444019307 0.0000000000000000 0.0008285855530550 0.0000000000000000 - 0.0001055444019307 0.0000000000000000 -0.0022624521874621 0.0000000000000000 0.0020902638812465 0.0000000000000000 - -0.0008285855530553 0.0000000000000000 -0.0020902638812465 0.0000000000000000 0.0008479800149223 0.0000000000000000 + -0.0001947154533988 0.0000000000000000 0.0001055444019293 0.0000000000000000 0.0008285855530561 0.0000000000000000 + 0.0001055444019280 0.0000000000000000 -0.0022624521874604 0.0000000000000000 0.0020902638812458 0.0000000000000000 + -0.0008285855530568 0.0000000000000000 -0.0020902638812461 0.0000000000000000 0.0008479800149217 0.0000000000000000 11 6 - -0.0020226399972413 0.0000000000000000 -0.0002383182140795 0.0000000000000000 0.0001011648438943 0.0000000000000000 - 0.0002383182140788 0.0000000000000000 0.0000601515309641 0.0000000000000000 0.0001507007232531 0.0000000000000000 - 0.0001011648438937 0.0000000000000000 -0.0001507007232533 0.0000000000000000 -0.0022331838997253 0.0000000000000000 + -0.0020226399972393 0.0000000000000000 -0.0002383182140776 0.0000000000000000 0.0001011648438931 0.0000000000000000 + 0.0002383182140778 0.0000000000000000 0.0000601515309627 0.0000000000000000 0.0001507007232537 0.0000000000000000 + 0.0001011648438931 0.0000000000000000 -0.0001507007232540 0.0000000000000000 -0.0022331838997248 0.0000000000000000 11 7 - 0.0079739154089322 0.0000000000000000 -0.0100652146645610 0.0000000000000000 0.0036706343437197 0.0000000000000000 - -0.0168418597307750 0.0000000000000000 -0.0099918936929192 0.0000000000000000 0.0005259246072899 0.0000000000000000 - -0.0106690755761902 0.0000000000000000 0.0069122209428956 0.0000000000000000 -0.0156150191112043 0.0000000000000000 + 0.0079739154089276 0.0000000000000000 -0.0100652146645597 0.0000000000000000 0.0036706343437562 0.0000000000000000 + -0.0168418597307721 0.0000000000000000 -0.0099918936929203 0.0000000000000000 0.0005259246072660 0.0000000000000000 + -0.0106690755761884 0.0000000000000000 0.0069122209428955 0.0000000000000000 -0.0156150191112198 0.0000000000000000 11 8 - 0.0053960771921648 0.0000000000000000 -0.0041883714492628 0.0000000000000000 -0.0052382113260687 0.0000000000000000 - -0.0027777266316773 0.0000000000000000 0.0037383917967314 0.0000000000000000 -0.0007249474944456 0.0000000000000000 - 0.0010754919735284 0.0000000000000000 0.0001605357525138 0.0000000000000000 -0.0008206821613118 0.0000000000000000 + 0.0053960771921630 0.0000000000000000 -0.0041883714492626 0.0000000000000000 -0.0052382113261045 0.0000000000000000 + -0.0027777266316766 0.0000000000000000 0.0037383917967315 0.0000000000000000 -0.0007249474944220 0.0000000000000000 + 0.0010754919735295 0.0000000000000000 0.0001605357525135 0.0000000000000000 -0.0008206821612969 0.0000000000000000 11 9 - 0.0043670482201912 0.0000000000000000 0.0073649825438555 0.0000000000000000 -0.0069798143243268 0.0000000000000000 - 0.0062527546419648 0.0000000000000000 -0.0050060184798330 0.0000000000000000 0.0003322634792038 0.0000000000000000 - -0.0032245610064176 0.0000000000000000 -0.0046134194019374 0.0000000000000000 0.0072531804468955 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 0.0073649825438538 0.0000000000000000 -0.0069798143243258 0.0000000000000000 + 0.0062527546419655 0.0000000000000000 -0.0050060184798319 0.0000000000000000 0.0003322634792033 0.0000000000000000 + -0.0032245610064176 0.0000000000000000 -0.0046134194019368 0.0000000000000000 0.0072531804468954 0.0000000000000000 11 10 - -0.2042620382021767 0.0000000000000000 0.0961493426419468 0.0000000000000000 0.0680988033808463 0.0000000000000000 - 0.1111612914472088 0.0000000000000000 -0.1150790588758556 0.0000000000000000 -0.0633030715249527 0.0000000000000000 - 0.0678004081048995 0.0000000000000000 -0.0626077946132227 0.0000000000000000 -0.0673384314526849 0.0000000000000000 + -0.2042620382021126 0.0000000000000000 0.0961493426419430 0.0000000000000000 0.0680988033808423 0.0000000000000000 + 0.1111612914471689 0.0000000000000000 -0.1150790588758516 0.0000000000000000 -0.0633030715249490 0.0000000000000000 + 0.0678004081048748 0.0000000000000000 -0.0626077946132198 0.0000000000000000 -0.0673384314526829 0.0000000000000000 11 11 - 0.2174594979186612 0.0000000000000000 -0.0954682304260405 0.0000000000000000 -0.0600636707989678 0.0000000000000000 - -0.0954682304260405 0.0000000000000000 0.1104252604741556 0.0000000000000000 0.0503426131734489 0.0000000000000000 - -0.0600636707989678 0.0000000000000000 0.0503426131734489 0.0000000000000000 0.0677190190410586 0.0000000000000000 + 0.2174594979186290 0.0000000000000000 -0.0954682304260202 0.0000000000000000 -0.0600636707989551 0.0000000000000000 + -0.0954682304260201 0.0000000000000000 0.1104252604741420 0.0000000000000000 0.0503426131734401 0.0000000000000000 + -0.0600636707989551 0.0000000000000000 0.0503426131734401 0.0000000000000000 0.0677190190410538 0.0000000000000000 11 12 - -0.0299583471230183 0.0000000000000000 0.0025306649736190 0.0000000000000000 -0.0001964280885598 0.0000000000000000 - -0.0025306649736197 0.0000000000000000 0.0189330240079756 0.0000000000000000 0.0130002466230897 0.0000000000000000 - 0.0001964280885593 0.0000000000000000 0.0130002466230899 0.0000000000000000 0.0113735279572460 0.0000000000000000 + -0.0299583471230438 0.0000000000000000 0.0025306649736038 0.0000000000000000 -0.0001964280885691 0.0000000000000000 + -0.0025306649736042 0.0000000000000000 0.0189330240079841 0.0000000000000000 0.0130002466230951 0.0000000000000000 + 0.0001964280885689 0.0000000000000000 0.0130002466230950 0.0000000000000000 0.0113735279572490 0.0000000000000000 12 1 - -0.0014003952261877 0.0000000000000000 0.0091891495399398 0.0000000000000000 0.0007217572183844 0.0000000000000000 - -0.0002449744821632 0.0000000000000000 -0.0030108060126873 0.0000000000000000 -0.0035553985811554 0.0000000000000000 - 0.0015206472447118 0.0000000000000000 -0.0014211831836459 0.0000000000000000 -0.0025275585661337 0.0000000000000000 + -0.0014003952261866 0.0000000000000000 0.0091891495399536 0.0000000000000000 0.0007217572183988 0.0000000000000000 + -0.0002449744821628 0.0000000000000000 -0.0030108060126772 0.0000000000000000 -0.0035553985811472 0.0000000000000000 + 0.0015206472447123 0.0000000000000000 -0.0014211831836398 0.0000000000000000 -0.0025275585661280 0.0000000000000000 12 2 - 0.0025040980237174 0.0000000000000000 -0.0006119532508365 0.0000000000000000 0.0017406728581213 0.0000000000000000 - 0.0023164619816242 0.0000000000000000 0.0011510144726818 0.0000000000000000 0.0039561444256929 0.0000000000000000 - -0.0038518265447293 0.0000000000000000 -0.0004056725610958 0.0000000000000000 0.0031229275970264 0.0000000000000000 + 0.0025040980237165 0.0000000000000000 -0.0006119532508372 0.0000000000000000 0.0017406728581117 0.0000000000000000 + 0.0023164619816236 0.0000000000000000 0.0011510144726808 0.0000000000000000 0.0039561444256877 0.0000000000000000 + -0.0038518265447295 0.0000000000000000 -0.0004056725610962 0.0000000000000000 0.0031229275970226 0.0000000000000000 12 3 - -0.0004154624427386 0.0000000000000000 -0.0127928624961764 0.0000000000000000 -0.0050585024151214 0.0000000000000000 - -0.0012439381262117 0.0000000000000000 -0.0007025897616784 0.0000000000000000 -0.0031456369018474 0.0000000000000000 - -0.0022873936225502 0.0000000000000000 -0.0006118410528855 0.0000000000000000 -0.0037626256179467 0.0000000000000000 + -0.0004154624427381 0.0000000000000000 -0.0127928624961893 0.0000000000000000 -0.0050585024151255 0.0000000000000000 + -0.0012439381262112 0.0000000000000000 -0.0007025897616875 0.0000000000000000 -0.0031456369018501 0.0000000000000000 + -0.0022873936225502 0.0000000000000000 -0.0006118410528913 0.0000000000000000 -0.0037626256179483 0.0000000000000000 12 4 - 0.0005529569781447 0.0000000000000000 0.0004060563613329 0.0000000000000000 0.0028171359308458 0.0000000000000000 - -0.0006881224323656 0.0000000000000000 0.0017449768597176 0.0000000000000000 0.0003308975272935 0.0000000000000000 - -0.0009938270034969 0.0000000000000000 0.0014852637978365 0.0000000000000000 0.0019808748951310 0.0000000000000000 + 0.0005529569781524 0.0000000000000000 0.0004060563613336 0.0000000000000000 0.0028171359308458 0.0000000000000000 + -0.0006881224323601 0.0000000000000000 0.0017449768597178 0.0000000000000000 0.0003308975272940 0.0000000000000000 + -0.0009938270034931 0.0000000000000000 0.0014852637978365 0.0000000000000000 0.0019808748951309 0.0000000000000000 12 5 - -0.0020226399972397 0.0000000000000000 0.0002383182140778 0.0000000000000000 -0.0001011648438931 0.0000000000000000 - -0.0002383182140782 0.0000000000000000 0.0000601515309634 0.0000000000000000 0.0001507007232540 0.0000000000000000 - -0.0001011648438934 0.0000000000000000 -0.0001507007232538 0.0000000000000000 -0.0022331838997249 0.0000000000000000 + -0.0020226399972424 0.0000000000000000 0.0002383182140792 0.0000000000000000 -0.0001011648438940 0.0000000000000000 + -0.0002383182140810 0.0000000000000000 0.0000601515309647 0.0000000000000000 0.0001507007232529 0.0000000000000000 + -0.0001011648438950 0.0000000000000000 -0.0001507007232532 0.0000000000000000 -0.0022331838997255 0.0000000000000000 12 6 - -0.0001947154534122 0.0000000000000000 -0.0001055444019379 0.0000000000000000 -0.0008285855530506 0.0000000000000000 - -0.0001055444019377 0.0000000000000000 -0.0022624521874667 0.0000000000000000 0.0020902638812493 0.0000000000000000 - 0.0008285855530509 0.0000000000000000 -0.0020902638812491 0.0000000000000000 0.0008479800149247 0.0000000000000000 + -0.0001947154534146 0.0000000000000000 -0.0001055444019394 0.0000000000000000 -0.0008285855530497 0.0000000000000000 + -0.0001055444019387 0.0000000000000000 -0.0022624521874681 0.0000000000000000 0.0020902638812496 0.0000000000000000 + 0.0008285855530500 0.0000000000000000 -0.0020902638812495 0.0000000000000000 0.0008479800149252 0.0000000000000000 12 7 - 0.0079739154089311 0.0000000000000000 0.0100652146645760 0.0000000000000000 -0.0036706343437346 0.0000000000000000 - 0.0168418597307739 0.0000000000000000 -0.0099918936929097 0.0000000000000000 0.0005259246072804 0.0000000000000000 - 0.0106690755761901 0.0000000000000000 0.0069122209429013 0.0000000000000000 -0.0156150191112100 0.0000000000000000 + 0.0079739154089274 0.0000000000000000 0.0100652146645812 0.0000000000000000 -0.0036706343437553 0.0000000000000000 + 0.0168418597307716 0.0000000000000000 -0.0099918936929064 0.0000000000000000 0.0005259246072660 0.0000000000000000 + 0.0106690755761887 0.0000000000000000 0.0069122209429034 0.0000000000000000 -0.0156150191112191 0.0000000000000000 12 8 - 0.0053960771921642 0.0000000000000000 0.0041883714492623 0.0000000000000000 0.0052382113260785 0.0000000000000000 - 0.0027777266316767 0.0000000000000000 0.0037383917967304 0.0000000000000000 -0.0007249474944396 0.0000000000000000 - -0.0010754919735285 0.0000000000000000 0.0001605357525137 0.0000000000000000 -0.0008206821613080 0.0000000000000000 + 0.0053960771921624 0.0000000000000000 0.0041883714492617 0.0000000000000000 0.0052382113260979 0.0000000000000000 + 0.0027777266316756 0.0000000000000000 0.0037383917967301 0.0000000000000000 -0.0007249474944262 0.0000000000000000 + -0.0010754919735290 0.0000000000000000 0.0001605357525137 0.0000000000000000 -0.0008206821612993 0.0000000000000000 12 9 - 0.0043670482201910 0.0000000000000000 -0.0073649825438707 0.0000000000000000 0.0069798143243305 0.0000000000000000 - -0.0062527546419644 0.0000000000000000 -0.0050060184798421 0.0000000000000000 0.0003322634792066 0.0000000000000000 - 0.0032245610064169 0.0000000000000000 -0.0046134194019431 0.0000000000000000 0.0072531804468967 0.0000000000000000 + 0.0043670482201904 0.0000000000000000 -0.0073649825438740 0.0000000000000000 0.0069798143243311 0.0000000000000000 + -0.0062527546419647 0.0000000000000000 -0.0050060184798441 0.0000000000000000 0.0003322634792073 0.0000000000000000 + 0.0032245610064166 0.0000000000000000 -0.0046134194019448 0.0000000000000000 0.0072531804468969 0.0000000000000000 12 10 - -0.2042620382021664 0.0000000000000000 -0.0961493426419414 0.0000000000000000 -0.0680988033808390 0.0000000000000000 - -0.1111612914472010 0.0000000000000000 -0.1150790588758519 0.0000000000000000 -0.0633030715249484 0.0000000000000000 - -0.0678004081048943 0.0000000000000000 -0.0626077946132206 0.0000000000000000 -0.0673384314526822 0.0000000000000000 + -0.2042620382020968 0.0000000000000000 -0.0961493426419348 0.0000000000000000 -0.0680988033808351 0.0000000000000000 + -0.1111612914471585 0.0000000000000000 -0.1150790588758463 0.0000000000000000 -0.0633030715249450 0.0000000000000000 + -0.0678004081048683 0.0000000000000000 -0.0626077946132173 0.0000000000000000 -0.0673384314526796 0.0000000000000000 12 11 - -0.0299583471230183 0.0000000000000000 -0.0025306649736197 0.0000000000000000 0.0001964280885593 0.0000000000000000 - 0.0025306649736190 0.0000000000000000 0.0189330240079755 0.0000000000000000 0.0130002466230899 0.0000000000000000 - -0.0001964280885598 0.0000000000000000 0.0130002466230897 0.0000000000000000 0.0113735279572460 0.0000000000000000 + -0.0299583471230438 0.0000000000000000 -0.0025306649736042 0.0000000000000000 0.0001964280885689 0.0000000000000000 + 0.0025306649736039 0.0000000000000000 0.0189330240079841 0.0000000000000000 0.0130002466230950 0.0000000000000000 + -0.0001964280885691 0.0000000000000000 0.0130002466230951 0.0000000000000000 0.0113735279572490 0.0000000000000000 12 12 - 0.2174594979186514 0.0000000000000000 0.0954682304260336 0.0000000000000000 0.0600636707989635 0.0000000000000000 - 0.0954682304260336 0.0000000000000000 0.1104252604741508 0.0000000000000000 0.0503426131734461 0.0000000000000000 - 0.0600636707989635 0.0000000000000000 0.0503426131734461 0.0000000000000000 0.0677190190410570 0.0000000000000000 + 0.2174594979186159 0.0000000000000000 0.0954682304260116 0.0000000000000000 0.0600636707989499 0.0000000000000000 + 0.0954682304260116 0.0000000000000000 0.1104252604741362 0.0000000000000000 0.0503426131734372 0.0000000000000000 + 0.0600636707989499 0.0000000000000000 0.0503426131734372 0.0000000000000000 0.0677190190410512 0.0000000000000000 Diagonalizing the dynamical matrix q = ( 0.000000000000 0.000000000000 0.000000000000 ) *************************************************************************** - freq ( 1) = -0.00000075 [THz] = -0.00002518 [cm-1] -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113505 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) -( 0.000001 0.000000 -0.265424 0.000000 -0.113504 0.000000 ) - freq ( 2) = -0.00000033 [THz] = -0.00001105 [cm-1] -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113505 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) -( 0.000000 0.000000 0.113504 0.000000 -0.265424 0.000000 ) - freq ( 3) = 0.00000032 [THz] = 0.00001064 [cm-1] -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) -( 0.288675 0.000000 0.000001 0.000000 0.000000 0.000000 ) + freq ( 1) = 0.00000038 [THz] = 0.00001279 [cm-1] +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) +( 0.288675 0.000000 -0.000004 0.000000 0.000017 0.000000 ) + freq ( 2) = 0.00000058 [THz] = 0.00001938 [cm-1] +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000009 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197300 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197299 0.000000 ) +( 0.000008 0.000000 -0.210728 0.000000 -0.197299 0.000000 ) + freq ( 3) = 0.00000083 [THz] = 0.00002771 [cm-1] +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197300 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) +( -0.000015 0.000000 -0.197299 0.000000 0.210728 0.000000 ) freq ( 4) = 1.74178330 [THz] = 58.09962873 [cm-1] -( 0.000000 0.000000 -0.300463 0.000000 0.002787 0.000000 ) -( 0.000000 0.000000 -0.166848 0.000000 -0.011440 0.000000 ) -( 0.000000 0.000000 -0.312940 0.000000 0.065663 0.000000 ) -( 0.000000 0.000000 -0.298008 0.000000 -0.002144 0.000000 ) -( -0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) -( 0.003070 0.000000 -0.307078 0.000000 -0.032220 0.000000 ) -( -0.000000 0.000000 0.300463 0.000000 0.002787 0.000000 ) -( -0.000000 0.000000 0.166848 0.000000 -0.011440 0.000000 ) -( -0.000000 0.000000 0.312940 0.000000 0.065663 0.000000 ) -( -0.000000 0.000000 0.298008 0.000000 -0.002144 0.000000 ) -( 0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) -( -0.003070 0.000000 0.307078 0.000000 -0.032220 0.000000 ) +( 0.000000 0.000000 0.300463 0.000000 -0.002787 0.000000 ) +( 0.000000 0.000000 0.166848 0.000000 0.011440 0.000000 ) +( 0.000000 0.000000 0.312940 0.000000 -0.065663 0.000000 ) +( 0.000000 0.000000 0.298008 0.000000 0.002144 0.000000 ) +( 0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) +( -0.003070 0.000000 0.307078 0.000000 0.032220 0.000000 ) +( -0.000000 0.000000 -0.300463 0.000000 -0.002787 0.000000 ) +( -0.000000 0.000000 -0.166848 0.000000 0.011440 0.000000 ) +( -0.000000 0.000000 -0.312940 0.000000 -0.065663 0.000000 ) +( -0.000000 0.000000 -0.298008 0.000000 0.002144 0.000000 ) +( -0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) +( 0.003070 0.000000 -0.307078 0.000000 0.032220 0.000000 ) freq ( 5) = 1.75809446 [THz] = 58.64371051 [cm-1] -( -0.305440 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.126386 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.338635 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.290653 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.305440 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.126386 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.338635 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.290653 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.301191 0.000000 0.017342 0.000000 0.069092 0.000000 ) ( -0.301191 0.000000 -0.017342 0.000000 -0.069092 0.000000 ) -( 0.305440 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.126386 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.338635 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.290653 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.305440 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.126386 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.338635 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.290653 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.301191 0.000000 -0.017342 0.000000 0.069092 0.000000 ) ( 0.301191 0.000000 0.017342 0.000000 -0.069092 0.000000 ) freq ( 6) = 4.65916041 [THz] = 155.41284058 [cm-1] -( -0.000000 0.000000 -0.025422 0.000000 -0.354333 0.000000 ) -( -0.000000 0.000000 0.043691 0.000000 -0.347361 0.000000 ) -( -0.000000 0.000000 -0.098244 0.000000 -0.227269 0.000000 ) -( -0.000000 0.000000 0.034198 0.000000 0.348248 0.000000 ) -( 0.044152 0.000000 -0.042358 0.000000 0.173202 0.000000 ) -( -0.044152 0.000000 -0.042358 0.000000 0.173202 0.000000 ) -( -0.000000 0.000000 -0.025422 0.000000 0.354333 0.000000 ) -( -0.000000 0.000000 0.043691 0.000000 0.347361 0.000000 ) -( 0.000000 0.000000 -0.098244 0.000000 0.227269 0.000000 ) -( 0.000000 0.000000 0.034198 0.000000 -0.348248 0.000000 ) -( 0.044152 0.000000 -0.042358 0.000000 -0.173202 0.000000 ) -( -0.044152 0.000000 -0.042358 0.000000 -0.173202 0.000000 ) +( -0.000000 0.000000 0.025422 0.000000 0.354333 0.000000 ) +( -0.000000 0.000000 -0.043691 0.000000 0.347361 0.000000 ) +( -0.000000 0.000000 0.098244 0.000000 0.227269 0.000000 ) +( 0.000000 0.000000 -0.034198 0.000000 -0.348248 0.000000 ) +( -0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) +( 0.044152 0.000000 0.042358 0.000000 -0.173202 0.000000 ) +( 0.000000 0.000000 0.025422 0.000000 -0.354333 0.000000 ) +( 0.000000 0.000000 -0.043691 0.000000 -0.347361 0.000000 ) +( 0.000000 0.000000 0.098244 0.000000 -0.227269 0.000000 ) +( -0.000000 0.000000 -0.034198 0.000000 0.348248 0.000000 ) +( -0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) +( 0.044152 0.000000 0.042358 0.000000 0.173202 0.000000 ) freq ( 7) = 6.03591072 [THz] = 201.33628095 [cm-1] -( 0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( 0.136548 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.302481 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.305036 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.315550 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.136548 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.302481 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.296555 0.000000 0.062886 0.000000 -0.081985 0.000000 ) ( -0.296555 0.000000 -0.062886 0.000000 0.081985 0.000000 ) -( -0.305036 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.315550 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.136548 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.302481 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.305036 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.315550 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.136548 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.302481 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.296555 0.000000 -0.062886 0.000000 -0.081985 0.000000 ) ( 0.296555 0.000000 0.062886 0.000000 0.081985 0.000000 ) freq ( 8) = 6.15949351 [THz] = 205.45855860 [cm-1] -( 0.000000 0.000000 -0.203150 0.000000 -0.219537 0.000000 ) -( 0.000000 0.000000 -0.278164 0.000000 -0.273652 0.000000 ) -( 0.000000 0.000000 -0.239679 0.000000 -0.256163 0.000000 ) -( -0.000000 0.000000 0.209804 0.000000 0.243059 0.000000 ) -( -0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) -( 0.003505 0.000000 0.099600 0.000000 0.078252 0.000000 ) -( -0.000000 0.000000 0.203150 0.000000 -0.219537 0.000000 ) -( -0.000000 0.000000 0.278164 0.000000 -0.273652 0.000000 ) -( -0.000000 0.000000 0.239679 0.000000 -0.256163 0.000000 ) -( 0.000000 0.000000 -0.209804 0.000000 0.243059 0.000000 ) -( 0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) -( -0.003505 0.000000 -0.099600 0.000000 0.078252 0.000000 ) +( 0.000000 0.000000 0.203150 0.000000 0.219537 0.000000 ) +( 0.000000 0.000000 0.278164 0.000000 0.273652 0.000000 ) +( 0.000000 0.000000 0.239679 0.000000 0.256163 0.000000 ) +( -0.000000 0.000000 -0.209804 0.000000 -0.243059 0.000000 ) +( 0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) +( -0.003505 0.000000 -0.099600 0.000000 -0.078252 0.000000 ) +( 0.000000 0.000000 -0.203150 0.000000 0.219537 0.000000 ) +( 0.000000 0.000000 -0.278164 0.000000 0.273652 0.000000 ) +( 0.000000 0.000000 -0.239679 0.000000 0.256163 0.000000 ) +( -0.000000 0.000000 0.209804 0.000000 -0.243059 0.000000 ) +( -0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) +( 0.003505 0.000000 0.099600 0.000000 -0.078252 0.000000 ) freq ( 9) = 6.29096533 [THz] = 209.84398575 [cm-1] -( -0.358540 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.113174 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.133490 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) -( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) ( -0.358540 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.113174 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.133490 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.336051 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.301790 0.000000 -0.122269 0.000000 0.088986 0.000000 ) +( 0.301790 0.000000 0.122269 0.000000 -0.088986 0.000000 ) +( -0.358540 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.113174 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.133490 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.336051 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.301790 0.000000 -0.122269 0.000000 -0.088986 0.000000 ) ( 0.301790 0.000000 0.122269 0.000000 0.088986 0.000000 ) freq ( 10) = 6.49240646 [THz] = 216.56333753 [cm-1] -( -0.000000 0.000000 0.011726 0.000000 0.284473 0.000000 ) -( -0.000000 0.000000 -0.002760 0.000000 0.290652 0.000000 ) -( -0.000000 0.000000 0.028179 0.000000 0.250498 0.000000 ) -( 0.000000 0.000000 -0.012114 0.000000 0.301639 0.000000 ) -( 0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) -( -0.000750 0.000000 -0.009626 0.000000 0.299657 0.000000 ) -( -0.000000 0.000000 0.011726 0.000000 -0.284473 0.000000 ) -( -0.000000 0.000000 -0.002760 0.000000 -0.290652 0.000000 ) -( -0.000000 0.000000 0.028179 0.000000 -0.250498 0.000000 ) -( 0.000000 0.000000 -0.012114 0.000000 -0.301639 0.000000 ) -( 0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) -( -0.000750 0.000000 -0.009626 0.000000 -0.299657 0.000000 ) +( -0.000000 0.000000 -0.011726 0.000000 -0.284473 0.000000 ) +( -0.000000 0.000000 0.002760 0.000000 -0.290652 0.000000 ) +( -0.000000 0.000000 -0.028179 0.000000 -0.250498 0.000000 ) +( 0.000000 0.000000 0.012114 0.000000 -0.301639 0.000000 ) +( -0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) +( 0.000750 0.000000 0.009626 0.000000 -0.299657 0.000000 ) +( -0.000000 0.000000 -0.011726 0.000000 0.284473 0.000000 ) +( 0.000000 0.000000 0.002760 0.000000 0.290652 0.000000 ) +( -0.000000 0.000000 -0.028179 0.000000 0.250498 0.000000 ) +( 0.000000 0.000000 0.012114 0.000000 0.301639 0.000000 ) +( -0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) +( 0.000750 0.000000 0.009626 0.000000 0.299657 0.000000 ) freq ( 11) = 8.28300944 [THz] = 276.29141531 [cm-1] -( -0.000000 0.000000 0.338439 0.000000 -0.044008 0.000000 ) -( 0.000000 0.000000 0.194825 0.000000 -0.047214 0.000000 ) -( 0.000000 0.000000 0.343457 0.000000 -0.016680 0.000000 ) -( 0.000000 0.000000 -0.345335 0.000000 0.006237 0.000000 ) -( 0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) -( -0.039099 0.000000 -0.214419 0.000000 0.073458 0.000000 ) -( -0.000000 0.000000 0.338439 0.000000 0.044008 0.000000 ) -( -0.000000 0.000000 0.194825 0.000000 0.047214 0.000000 ) -( -0.000000 0.000000 0.343457 0.000000 0.016680 0.000000 ) -( 0.000000 0.000000 -0.345335 0.000000 -0.006237 0.000000 ) -( 0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) -( -0.039099 0.000000 -0.214419 0.000000 -0.073458 0.000000 ) +( -0.000000 0.000000 -0.338439 0.000000 0.044008 0.000000 ) +( 0.000000 0.000000 -0.194825 0.000000 0.047214 0.000000 ) +( -0.000000 0.000000 -0.343457 0.000000 0.016680 0.000000 ) +( 0.000000 0.000000 0.345335 0.000000 -0.006237 0.000000 ) +( -0.039099 0.000000 0.214419 0.000000 -0.073458 0.000000 ) +( 0.039099 0.000000 0.214419 0.000000 -0.073458 0.000000 ) +( -0.000000 0.000000 -0.338439 0.000000 -0.044008 0.000000 ) +( -0.000000 0.000000 -0.194825 0.000000 -0.047214 0.000000 ) +( -0.000000 0.000000 -0.343457 0.000000 -0.016680 0.000000 ) +( 0.000000 0.000000 0.345335 0.000000 0.006237 0.000000 ) +( -0.039099 0.000000 0.214419 0.000000 0.073458 0.000000 ) +( 0.039099 0.000000 0.214419 0.000000 0.073458 0.000000 ) freq ( 12) = 8.43189918 [THz] = 281.25784182 [cm-1] -( -0.000000 0.000000 0.229760 0.000000 -0.213402 0.000000 ) -( 0.000000 0.000000 0.281970 0.000000 -0.221619 0.000000 ) -( -0.000000 0.000000 0.166741 0.000000 -0.115050 0.000000 ) -( 0.000000 0.000000 -0.236152 0.000000 0.212913 0.000000 ) -( 0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) -( -0.055501 0.000000 -0.180876 0.000000 0.172216 0.000000 ) -( -0.000000 0.000000 -0.229760 0.000000 -0.213402 0.000000 ) -( -0.000000 0.000000 -0.281970 0.000000 -0.221619 0.000000 ) -( -0.000000 0.000000 -0.166741 0.000000 -0.115050 0.000000 ) -( 0.000000 0.000000 0.236152 0.000000 0.212913 0.000000 ) -( -0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) -( 0.055501 0.000000 0.180876 0.000000 0.172216 0.000000 ) +( -0.000000 0.000000 -0.229760 0.000000 0.213402 0.000000 ) +( -0.000000 0.000000 -0.281970 0.000000 0.221619 0.000000 ) +( 0.000000 0.000000 -0.166741 0.000000 0.115050 0.000000 ) +( 0.000000 0.000000 0.236152 0.000000 -0.212913 0.000000 ) +( -0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) +( 0.055501 0.000000 0.180876 0.000000 -0.172216 0.000000 ) +( -0.000000 0.000000 0.229760 0.000000 0.213402 0.000000 ) +( -0.000000 0.000000 0.281970 0.000000 0.221619 0.000000 ) +( -0.000000 0.000000 0.166741 0.000000 0.115050 0.000000 ) +( 0.000000 0.000000 -0.236152 0.000000 -0.212913 0.000000 ) +( 0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) +( -0.055501 0.000000 -0.180876 0.000000 -0.172216 0.000000 ) freq ( 13) = 15.52715504 [THz] = 517.93006796 [cm-1] ( 0.003319 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.136710 0.000000 0.000000 0.000000 -0.000000 0.000000 ) @@ -802,70 +802,70 @@ Basis vectors ( 0.127463 0.000000 0.299100 0.000000 -0.166134 0.000000 ) ( 0.127463 0.000000 -0.299100 0.000000 0.166134 0.000000 ) freq ( 16) = 16.34770861 [THz] = 545.30078498 [cm-1] -( 0.007401 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.375543 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.009605 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.007401 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.375543 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.009605 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( -0.005927 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 -0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 0.380036 0.000000 ) -( 0.007401 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.375543 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.009605 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.005927 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.007401 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.375543 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.009605 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( -0.005927 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.180873 0.000000 0.047434 0.000000 0.380036 0.000000 ) ( 0.180873 0.000000 -0.047434 0.000000 -0.380036 0.000000 ) freq ( 17) = 17.38212592 [THz] = 579.80522742 [cm-1] -( 0.000000 0.000000 -0.006663 0.000000 -0.018085 0.000000 ) -( -0.000000 0.000000 0.408134 0.000000 -0.010473 0.000000 ) -( -0.000000 0.000000 -0.163504 0.000000 0.439667 0.000000 ) -( -0.000000 0.000000 0.029278 0.000000 0.015379 0.000000 ) -( -0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) -( 0.012424 0.000000 -0.135857 0.000000 -0.193118 0.000000 ) -( -0.000000 0.000000 0.006663 0.000000 -0.018085 0.000000 ) -( 0.000000 0.000000 -0.408134 0.000000 -0.010473 0.000000 ) -( 0.000000 0.000000 0.163504 0.000000 0.439667 0.000000 ) -( 0.000000 0.000000 -0.029278 0.000000 0.015379 0.000000 ) -( 0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) -( -0.012424 0.000000 0.135857 0.000000 -0.193118 0.000000 ) +( 0.000000 0.000000 0.006663 0.000000 0.018085 0.000000 ) +( -0.000000 0.000000 -0.408134 0.000000 0.010473 0.000000 ) +( 0.000000 0.000000 0.163504 0.000000 -0.439667 0.000000 ) +( -0.000000 0.000000 -0.029278 0.000000 -0.015379 0.000000 ) +( 0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) +( -0.012424 0.000000 0.135857 0.000000 0.193118 0.000000 ) +( -0.000000 0.000000 -0.006663 0.000000 0.018085 0.000000 ) +( 0.000000 0.000000 0.408134 0.000000 0.010473 0.000000 ) +( -0.000000 0.000000 -0.163504 0.000000 -0.439667 0.000000 ) +( 0.000000 0.000000 0.029278 0.000000 -0.015379 0.000000 ) +( -0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) +( 0.012424 0.000000 -0.135857 0.000000 0.193118 0.000000 ) freq ( 18) = 18.97560951 [THz] = 632.95811128 [cm-1] -( -0.026207 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.643317 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.123298 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.015257 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.026207 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.123298 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.015257 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.010889 0.000000 -0.123336 0.000000 -0.140286 0.000000 ) ( -0.010889 0.000000 0.123336 0.000000 0.140286 0.000000 ) -( 0.026207 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.643317 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.123298 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.015257 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.026207 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.643317 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.123298 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.015257 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.010889 0.000000 0.123336 0.000000 -0.140286 0.000000 ) ( 0.010889 0.000000 -0.123336 0.000000 0.140286 0.000000 ) freq ( 19) = 21.12523228 [THz] = 704.66179829 [cm-1] -( 0.013094 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.085920 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.044091 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.028235 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.013094 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.085920 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.044091 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.028235 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.234005 0.000000 -0.179515 0.000000 0.397327 0.000000 ) ( -0.234005 0.000000 0.179515 0.000000 -0.397327 0.000000 ) -( -0.013094 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( -0.085920 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( 0.044091 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.028235 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.013094 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( -0.085920 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.044091 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.028235 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.234005 0.000000 0.179515 0.000000 0.397327 0.000000 ) ( 0.234005 0.000000 -0.179515 0.000000 -0.397327 0.000000 ) freq ( 20) = 21.48012875 [THz] = 716.49986854 [cm-1] -( 0.000000 0.000000 0.023138 0.000000 0.023077 0.000000 ) -( 0.000000 0.000000 -0.258260 0.000000 0.021831 0.000000 ) -( -0.000000 0.000000 0.110150 0.000000 -0.197757 0.000000 ) -( 0.000000 0.000000 0.012521 0.000000 0.033285 0.000000 ) -( -0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) -( 0.004254 0.000000 -0.246024 0.000000 -0.359277 0.000000 ) -( -0.000000 0.000000 -0.023138 0.000000 0.023077 0.000000 ) -( -0.000000 0.000000 0.258260 0.000000 0.021831 0.000000 ) -( 0.000000 0.000000 -0.110150 0.000000 -0.197757 0.000000 ) -( -0.000000 0.000000 -0.012521 0.000000 0.033285 0.000000 ) -( 0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) -( -0.004254 0.000000 0.246024 0.000000 -0.359277 0.000000 ) +( 0.000000 0.000000 -0.023138 0.000000 -0.023077 0.000000 ) +( 0.000000 0.000000 0.258260 0.000000 -0.021831 0.000000 ) +( 0.000000 0.000000 -0.110150 0.000000 0.197757 0.000000 ) +( 0.000000 0.000000 -0.012521 0.000000 -0.033285 0.000000 ) +( 0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) +( -0.004254 0.000000 0.246024 0.000000 0.359277 0.000000 ) +( -0.000000 0.000000 0.023138 0.000000 -0.023077 0.000000 ) +( -0.000000 0.000000 -0.258260 0.000000 -0.021831 0.000000 ) +( 0.000000 0.000000 0.110150 0.000000 0.197757 0.000000 ) +( -0.000000 0.000000 0.012521 0.000000 -0.033285 0.000000 ) +( -0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) +( 0.004254 0.000000 -0.246024 0.000000 0.359277 0.000000 ) freq ( 21) = 23.22408051 [THz] = 774.67182954 [cm-1] ( -0.005428 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( 0.451089 0.000000 0.000000 0.000000 -0.000000 0.000000 ) @@ -906,7 +906,7 @@ Basis vectors ( 0.066182 0.000000 0.245304 0.000000 -0.165645 0.000000 ) ( 0.066182 0.000000 -0.245304 0.000000 0.165645 0.000000 ) freq ( 24) = 24.61305360 [THz] = 821.00297787 [cm-1] -( -0.042660 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( -0.042660 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( 0.359994 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.505918 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.025499 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) @@ -925,62 +925,62 @@ Basis vectors ( -0.000000 0.000000 0.003481 0.000000 -0.011802 0.000000 ) ( -0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) ( 0.103578 0.000000 -0.069539 0.000000 0.085583 0.000000 ) -( -0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) +( 0.000000 0.000000 -0.035654 0.000000 -0.024948 0.000000 ) ( 0.000000 0.000000 0.496236 0.000000 -0.024837 0.000000 ) -( 0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) -( -0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) +( -0.000000 0.000000 0.120098 0.000000 0.436907 0.000000 ) +( 0.000000 0.000000 -0.003481 0.000000 -0.011802 0.000000 ) ( 0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) ( -0.103578 0.000000 0.069539 0.000000 0.085583 0.000000 ) freq ( 26) = 32.55854203 [THz] = 1086.03590588 [cm-1] -( -0.000000 0.000000 0.018983 0.000000 -0.012227 0.000000 ) -( 0.000000 0.000000 -0.363991 0.000000 -0.035919 0.000000 ) -( 0.000000 0.000000 -0.103721 0.000000 0.347526 0.000000 ) -( 0.000000 0.000000 -0.019621 0.000000 0.013682 0.000000 ) -( 0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) -( -0.195361 0.000000 0.238916 0.000000 -0.146819 0.000000 ) -( -0.000000 0.000000 0.018983 0.000000 0.012227 0.000000 ) -( 0.000000 0.000000 -0.363991 0.000000 0.035919 0.000000 ) -( 0.000000 0.000000 -0.103721 0.000000 -0.347526 0.000000 ) -( -0.000000 0.000000 -0.019621 0.000000 -0.013682 0.000000 ) -( 0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) -( -0.195361 0.000000 0.238916 0.000000 0.146819 0.000000 ) +( -0.000000 0.000000 -0.018983 0.000000 0.012227 0.000000 ) +( 0.000000 0.000000 0.363991 0.000000 0.035919 0.000000 ) +( -0.000000 0.000000 0.103721 0.000000 -0.347526 0.000000 ) +( 0.000000 0.000000 0.019621 0.000000 -0.013682 0.000000 ) +( -0.195361 0.000000 -0.238916 0.000000 0.146819 0.000000 ) +( 0.195361 0.000000 -0.238916 0.000000 0.146819 0.000000 ) +( -0.000000 0.000000 -0.018983 0.000000 -0.012227 0.000000 ) +( 0.000000 0.000000 0.363991 0.000000 -0.035919 0.000000 ) +( 0.000000 0.000000 0.103721 0.000000 0.347526 0.000000 ) +( -0.000000 0.000000 0.019621 0.000000 0.013682 0.000000 ) +( -0.195361 0.000000 -0.238916 0.000000 -0.146819 0.000000 ) +( 0.195361 0.000000 -0.238916 0.000000 -0.146819 0.000000 ) freq ( 27) = 34.33677276 [THz] = 1145.35128984 [cm-1] ( -0.000000 0.000000 0.023259 0.000000 -0.023011 0.000000 ) ( 0.000000 0.000000 -0.324249 0.000000 -0.005773 0.000000 ) -( 0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) +( -0.000000 0.000000 -0.058810 0.000000 0.349293 0.000000 ) ( 0.000000 0.000000 0.025988 0.000000 -0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 0.178743 0.000000 ) -( 0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) -( -0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) +( -0.000000 0.000000 0.023259 0.000000 0.023011 0.000000 ) +( 0.000000 0.000000 -0.324249 0.000000 0.005773 0.000000 ) ( 0.000000 0.000000 -0.058810 0.000000 -0.349293 0.000000 ) ( 0.000000 0.000000 0.025988 0.000000 0.019028 0.000000 ) ( -0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) ( 0.248952 0.000000 -0.199255 0.000000 -0.178743 0.000000 ) freq ( 28) = 34.43427982 [THz] = 1148.60377497 [cm-1] -( -0.000000 0.000000 0.002777 0.000000 -0.003396 0.000000 ) -( 0.000000 0.000000 -0.136805 0.000000 -0.007772 0.000000 ) -( 0.000000 0.000000 -0.017157 0.000000 0.165743 0.000000 ) -( -0.000000 0.000000 -0.031764 0.000000 0.019397 0.000000 ) -( 0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) -( -0.301891 0.000000 0.304091 0.000000 -0.205956 0.000000 ) -( -0.000000 0.000000 -0.002777 0.000000 -0.003396 0.000000 ) -( -0.000000 0.000000 0.136805 0.000000 -0.007772 0.000000 ) -( 0.000000 0.000000 0.017157 0.000000 0.165743 0.000000 ) -( 0.000000 0.000000 0.031764 0.000000 0.019397 0.000000 ) -( -0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) -( 0.301891 0.000000 -0.304091 0.000000 -0.205956 0.000000 ) +( -0.000000 0.000000 -0.002777 0.000000 0.003396 0.000000 ) +( 0.000000 0.000000 0.136805 0.000000 0.007772 0.000000 ) +( -0.000000 0.000000 0.017157 0.000000 -0.165743 0.000000 ) +( -0.000000 0.000000 0.031764 0.000000 -0.019397 0.000000 ) +( -0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) +( 0.301891 0.000000 -0.304091 0.000000 0.205956 0.000000 ) +( -0.000000 0.000000 0.002777 0.000000 0.003396 0.000000 ) +( -0.000000 0.000000 -0.136805 0.000000 0.007772 0.000000 ) +( 0.000000 0.000000 -0.017157 0.000000 -0.165743 0.000000 ) +( -0.000000 0.000000 -0.031764 0.000000 -0.019397 0.000000 ) +( 0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) +( -0.301891 0.000000 0.304091 0.000000 0.205956 0.000000 ) freq ( 29) = 58.49309377 [THz] = 1951.11931058 [cm-1] ( -0.000000 0.000000 0.000385 0.000000 0.044914 0.000000 ) -( 0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) -( -0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) +( -0.000000 0.000000 0.004574 0.000000 -0.685508 0.000000 ) +( 0.000000 0.000000 0.037283 0.000000 0.020274 0.000000 ) ( 0.000000 0.000000 0.006725 0.000000 -0.007763 0.000000 ) ( 0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) ( -0.088782 0.000000 -0.061276 0.000000 0.037816 0.000000 ) -( 0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) -( 0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) -( 0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) -( -0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) +( -0.000000 0.000000 -0.000385 0.000000 0.044914 0.000000 ) +( -0.000000 0.000000 -0.004574 0.000000 -0.685508 0.000000 ) +( -0.000000 0.000000 -0.037283 0.000000 0.020274 0.000000 ) +( 0.000000 0.000000 -0.006725 0.000000 -0.007763 0.000000 ) ( -0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) ( 0.088782 0.000000 0.061276 0.000000 0.037816 0.000000 ) freq ( 30) = 58.64595875 [THz] = 1956.21833687 [cm-1] @@ -998,28 +998,28 @@ Basis vectors ( 0.216880 0.000000 0.154994 0.000000 0.093183 0.000000 ) freq ( 31) = 59.18441210 [THz] = 1974.17920491 [cm-1] ( -0.003846 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) -( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.003416 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( 0.057236 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 -0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 0.151866 0.000000 ) ( -0.003846 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( -0.035138 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.035138 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.003416 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.057236 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.404376 0.000000 0.247281 0.000000 0.151866 0.000000 ) ( -0.404376 0.000000 -0.247281 0.000000 -0.151866 0.000000 ) freq ( 32) = 59.64579843 [THz] = 1989.56939401 [cm-1] -( 0.004387 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) -( 0.015191 0.000000 0.000000 0.000000 0.000000 0.000000 ) +( 0.004387 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( 0.012328 0.000000 -0.000000 0.000000 0.000000 0.000000 ) +( 0.015191 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) ( -0.055912 0.000000 0.000000 0.000000 -0.000000 0.000000 ) ( 0.402838 0.000000 -0.249120 0.000000 0.154587 0.000000 ) ( 0.402838 0.000000 0.249120 0.000000 -0.154587 0.000000 ) -( -0.004387 0.000000 0.000000 0.000000 0.000000 0.000000 ) -( -0.012328 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.004387 0.000000 0.000000 0.000000 -0.000000 0.000000 ) +( -0.012328 0.000000 -0.000000 0.000000 0.000000 0.000000 ) ( -0.015191 0.000000 -0.000000 0.000000 0.000000 0.000000 ) -( 0.055912 0.000000 -0.000000 0.000000 -0.000000 0.000000 ) +( 0.055912 0.000000 0.000000 0.000000 0.000000 0.000000 ) ( -0.402838 0.000000 0.249120 0.000000 0.154587 0.000000 ) ( -0.402838 0.000000 -0.249120 0.000000 -0.154587 0.000000 ) freq ( 33) = 61.28050278 [THz] = 2044.09725399 [cm-1] @@ -1036,31 +1036,31 @@ Basis vectors ( 0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) ( -0.017848 0.000000 0.008103 0.000000 0.015175 0.000000 ) freq ( 34) = 63.16500883 [THz] = 2106.95760040 [cm-1] -( -0.000000 0.000000 0.001416 0.000000 0.045005 0.000000 ) -( -0.000000 0.000000 -0.005022 0.000000 -0.703766 0.000000 ) -( -0.000000 0.000000 -0.015560 0.000000 -0.013643 0.000000 ) -( 0.000000 0.000000 0.003291 0.000000 -0.001095 0.000000 ) -( 0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) -( -0.009116 0.000000 -0.027061 0.000000 0.017171 0.000000 ) -( 0.000000 0.000000 0.001416 0.000000 -0.045005 0.000000 ) -( 0.000000 0.000000 -0.005022 0.000000 0.703766 0.000000 ) -( 0.000000 0.000000 -0.015560 0.000000 0.013643 0.000000 ) -( -0.000000 0.000000 0.003291 0.000000 0.001095 0.000000 ) -( 0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) -( -0.009116 0.000000 -0.027061 0.000000 -0.017171 0.000000 ) +( -0.000000 0.000000 -0.001416 0.000000 -0.045005 0.000000 ) +( 0.000000 0.000000 0.005022 0.000000 0.703766 0.000000 ) +( -0.000000 0.000000 0.015560 0.000000 0.013643 0.000000 ) +( 0.000000 0.000000 -0.003291 0.000000 0.001095 0.000000 ) +( -0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) +( 0.009116 0.000000 0.027061 0.000000 -0.017171 0.000000 ) +( 0.000000 0.000000 -0.001416 0.000000 0.045005 0.000000 ) +( 0.000000 0.000000 0.005022 0.000000 -0.703766 0.000000 ) +( 0.000000 0.000000 0.015560 0.000000 -0.013643 0.000000 ) +( -0.000000 0.000000 -0.003291 0.000000 -0.001095 0.000000 ) +( -0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) +( 0.009116 0.000000 0.027061 0.000000 0.017171 0.000000 ) freq ( 35) = 63.58360137 [THz] = 2120.92034271 [cm-1] -( 0.000000 0.000000 0.000415 0.000000 0.010914 0.000000 ) -( 0.000000 0.000000 0.020599 0.000000 -0.158729 0.000000 ) -( 0.000000 0.000000 0.004820 0.000000 -0.005043 0.000000 ) -( -0.000000 0.000000 -0.030334 0.000000 0.019763 0.000000 ) -( -0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) -( 0.387563 0.000000 0.245256 0.000000 -0.161541 0.000000 ) -( -0.000000 0.000000 -0.000415 0.000000 0.010914 0.000000 ) -( -0.000000 0.000000 -0.020599 0.000000 -0.158729 0.000000 ) -( -0.000000 0.000000 -0.004820 0.000000 -0.005043 0.000000 ) -( 0.000000 0.000000 0.030334 0.000000 0.019763 0.000000 ) -( 0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) -( -0.387563 0.000000 -0.245256 0.000000 -0.161541 0.000000 ) +( 0.000000 0.000000 -0.000415 0.000000 -0.010914 0.000000 ) +( -0.000000 0.000000 -0.020599 0.000000 0.158729 0.000000 ) +( 0.000000 0.000000 -0.004820 0.000000 0.005043 0.000000 ) +( -0.000000 0.000000 0.030334 0.000000 -0.019763 0.000000 ) +( 0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) +( -0.387563 0.000000 -0.245256 0.000000 0.161541 0.000000 ) +( -0.000000 0.000000 0.000415 0.000000 -0.010914 0.000000 ) +( -0.000000 0.000000 0.020599 0.000000 0.158729 0.000000 ) +( -0.000000 0.000000 0.004820 0.000000 0.005043 0.000000 ) +( 0.000000 0.000000 -0.030334 0.000000 -0.019763 0.000000 ) +( -0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) +( 0.387563 0.000000 0.245256 0.000000 0.161541 0.000000 ) freq ( 36) = 65.67178765 [THz] = 2190.57472950 [cm-1] ( -0.000000 0.000000 0.022668 0.000000 0.009602 0.000000 ) ( -0.000000 0.000000 0.012953 0.000000 -0.011116 0.000000 ) @@ -1068,9 +1068,9 @@ Basis vectors ( 0.000000 0.000000 -0.024431 0.000000 0.017416 0.000000 ) ( -0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) ( 0.338616 0.000000 0.192504 0.000000 -0.136199 0.000000 ) -( -0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) +( 0.000000 0.000000 0.022668 0.000000 -0.009602 0.000000 ) ( -0.000000 0.000000 0.012953 0.000000 0.011116 0.000000 ) -( -0.000000 0.000000 -0.369990 0.000000 0.144128 0.000000 ) +( 0.000000 0.000000 -0.369990 0.000000 0.144128 0.000000 ) ( 0.000000 0.000000 -0.024431 0.000000 -0.017416 0.000000 ) ( -0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) ( 0.338616 0.000000 0.192504 0.000000 0.136199 0.000000 ) From e298dcd375af1d0f7ee6b491c515cc8762f71ee3 Mon Sep 17 00:00:00 2001 From: Chiara Cignarella Date: Fri, 8 Dec 2023 14:41:12 +0100 Subject: [PATCH 196/204] Fixed the error on difflib --- cellconstructor/Structure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellconstructor/Structure.py b/cellconstructor/Structure.py index 71c8e6b8..c6539039 100644 --- a/cellconstructor/Structure.py +++ b/cellconstructor/Structure.py @@ -33,7 +33,7 @@ import symph import warnings - +import difflib From ab7e2b368c7402c4c5a22bc68fbeaa0a563f62e8 Mon Sep 17 00:00:00 2001 From: Chiara Cignarella Date: Fri, 8 Dec 2023 14:57:03 +0100 Subject: [PATCH 197/204] Fix of the cell threshold --- cellconstructor/symmetries.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cellconstructor/symmetries.py b/cellconstructor/symmetries.py index 2744312c..f25b8cc0 100644 --- a/cellconstructor/symmetries.py +++ b/cellconstructor/symmetries.py @@ -73,7 +73,10 @@ def __init__(self, structure, threshold = 1e-5): raise ValueError("Error, symmetry operation can be initialize only if the structure has a unit cell") self.structure = structure - self.threshold = np.float64(threshold) + + # Max dimension + max_dimension = np.max(self.structure.unit_cell.ravel()) + self.threshold = np.float64(threshold / max_dimension) # Setup the threshold symph.symm_base.set_accep_threshold(self.threshold) From f73491cbb37f8a2c4bdde3d6b307bdbd09f29fd9 Mon Sep 17 00:00:00 2001 From: Diego Martinez Gutierrez <101260978+diegomartinez2@users.noreply.github.com> Date: Mon, 18 Dec 2023 08:27:44 +0100 Subject: [PATCH 198/204] Update Spectral.py Quickfix on filename for 'output_file_sort_function'. --- cellconstructor/Spectral.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cellconstructor/Spectral.py b/cellconstructor/Spectral.py index cc8ee361..2304c4a2 100644 --- a/cellconstructor/Spectral.py +++ b/cellconstructor/Spectral.py @@ -1165,11 +1165,10 @@ def get_full_dynamic_correction_along_path_multiprocessing(dyn, If 'None' then the number returned by os.cpu_count() is used. (default: None) """ - def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): + def output_file_sort_function(filename_data, smear_id_cm, smear_cm, nsm): for ism in range(nsm): - name = "{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() - # - filename_data = filename_sp+'_'+name+'.dat' + #name = "{:5.2f}".format(smear_id_cm[ism]).strip()+"_"+"{:6.1f}".format(smear_cm[ism]).strip() + #filename_data = filename_sp+'_'+name+'.dat' f = open(filename_data, 'r') head1 = f.readline() head2 = f.readline() @@ -1345,7 +1344,7 @@ def output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm): for ism in range(nsm): name="{:6.1f}".format(smear_cm[ism]).strip() filename_new=filename_sp+'_'+name+'.dat' - output_file_sort_function(filename_sp, smear_id_cm, smear_cm, nsm) + output_file_sort_function(filename_new, smear_id_cm, smear_cm, nsm) From 2947a2be53275744a4aa4786ec1fd4e95e472165 Mon Sep 17 00:00:00 2001 From: Lorenzo Monacelli Date: Sun, 4 Feb 2024 12:39:56 +0100 Subject: [PATCH 199/204] Update requirements.txt Fix the spglib version before they removed the ASE requirement --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 39182bbc..922ee4a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,4 @@ setuptools numpy scipy ase -spglib +spglib<=2.2 From abb5a9cd3b4814ca788bb3832afbfc5677192c8e Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 8 Feb 2024 09:19:44 +0100 Subject: [PATCH 200/204] Correct conversion factor when writing self-energy to a file --- cellconstructor/ThermalConductivity.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cellconstructor/ThermalConductivity.py b/cellconstructor/ThermalConductivity.py index 0e9343c2..223a63b6 100644 --- a/cellconstructor/ThermalConductivity.py +++ b/cellconstructor/ThermalConductivity.py @@ -1595,6 +1595,7 @@ def get_self_energy_at_q(self, iqpt, temperature, energies, mode_mixing = 'no', real_part = hilbert(self_energy.imag) self_energy.real = -1.0*real_part.imag + self_energy /= float(self.nkpt) if(write_self_energy): with open('Self_energy_' + str(iqpt + 1), 'w+') as outfile: outfile.write('# ' + format('Energy (THz)', STR_FMT)) @@ -1610,9 +1611,9 @@ def get_self_energy_at_q(self, iqpt, temperature, energies, mode_mixing = 'no', for iband in range(self.nband): if(mode_mixing == 'mode_mixing'): for jband in range(self.nband): - outfile.write(3*' ' + format(self_energy[ie, iband, jband].real*SSCHA_TO_THZ, '.12e') + ' ' + format(self_energy[ie, iband, jband].imag*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self_energy[ie, iband, jband].real*SSCHA_TO_THZ**2, '.12e') + ' ' + format(self_energy[ie, iband, jband].imag*SSCHA_TO_THZ**2, '.12e')) else: - outfile.write(3*' ' + format(self_energy[ie, iband].real*SSCHA_TO_THZ, '.12e') + ' ' + format(self_energy[ie, iband].imag*SSCHA_TO_THZ, '.12e')) + outfile.write(3*' ' + format(self_energy[ie, iband].real*SSCHA_TO_THZ**2, '.12e') + ' ' + format(self_energy[ie, iband].imag*SSCHA_TO_THZ**2, '.12e')) outfile.write('\n') return self_energy @@ -2212,10 +2213,10 @@ def calculate_kappa_srta_offdiag(self, temperature, ne, write_lifetimes, gauss_s for istar in self.qstar: for iqpt in istar: for iband in range(self.nband): - if(self.freqs[iqpt, iband] != 0.0): + if(self.freqs[iqpt, iband] != 0.0 and scatt_rates[iqpt, iband] != 0.0): for jband in range(self.nband): #if(self.freqs[iqpt, jband] != 0.0 and np.abs(self.freqs[iqpt, jband] - self.freqs[iqpt, iband]) > 1.0e-4/SSCHA_TO_THZ and iband != jband): - if(self.freqs[iqpt, jband] != 0.0 and iband != jband): + if(self.freqs[iqpt, jband] != 0.0 and scatt_rates[iqpt, jband] != 0.0 and iband != jband): if(self.group_velocity_mode == 'wigner'): vel_fact = 1.0 else: From decd343239d5c1df42f8a1ada4ba8f9e133651e0 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 8 Feb 2024 12:22:51 +0100 Subject: [PATCH 201/204] Simple test for thermal conductivity --- tests/TestTC/Phonon_harmonic_properties | 3001 +++++++++++++++++++++++ tests/TestTC/d3_realspace_sym.npy | Bin 0 -> 4251656 bytes tests/TestTC/final_dyn1 | 31 + tests/TestTC/final_dyn2 | 130 + tests/TestTC/final_dyn3 | 76 + tests/TestTC/final_dyn4 | 94 + tests/TestTC/standard.pkl | Bin 0 -> 4140313 bytes tests/TestTC/test_tc.py | 52 + 8 files changed, 3384 insertions(+) create mode 100644 tests/TestTC/Phonon_harmonic_properties create mode 100644 tests/TestTC/d3_realspace_sym.npy create mode 100644 tests/TestTC/final_dyn1 create mode 100644 tests/TestTC/final_dyn2 create mode 100644 tests/TestTC/final_dyn3 create mode 100644 tests/TestTC/final_dyn4 create mode 100644 tests/TestTC/standard.pkl create mode 100644 tests/TestTC/test_tc.py diff --git a/tests/TestTC/Phonon_harmonic_properties b/tests/TestTC/Phonon_harmonic_properties new file mode 100644 index 00000000..20a9d83c --- /dev/null +++ b/tests/TestTC/Phonon_harmonic_properties @@ -0,0 +1,3001 @@ +# Frequencies (THz) Group velocity x (m/s) Group velocity y (m/s) Group velocity z (m/s) Smearing par (THz) + 0.000000000000e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.845525421268e-08 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.262913027725e-08 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 -1.826703349744e+03+0.000000000000e+00j 1.826703349744e+03+0.000000000000e+00j 1.826703349744e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 -1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 -4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 -1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 -1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 -3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 -1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 -1.195877589768e+03+0.000000000000e+00j 1.195877589768e+03+0.000000000000e+00j 1.195877589768e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 -2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 -6.440774382714e+02+0.000000000000e+00j 6.440774382714e+02+0.000000000000e+00j 6.440774382714e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 -6.440774382617e+02+0.000000000000e+00j 6.440774382617e+02+0.000000000000e+00j 6.440774382617e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 -1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 4.650851100236e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.650851100245e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.033872196188e+01 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 6.440774382626e+02+0.000000000000e+00j -6.440774382626e+02+0.000000000000e+00j -6.440774382626e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 6.440774382705e+02+0.000000000000e+00j -6.440774382705e+02+0.000000000000e+00j -6.440774382705e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 1.195877589769e+03+0.000000000000e+00j -1.195877589769e+03+0.000000000000e+00j -1.195877589769e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 1.826703349756e+03+0.000000000000e+00j -1.826703349756e+03+0.000000000000e+00j -1.826703349756e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 1.826703349736e+03+0.000000000000e+00j -1.826703349736e+03+0.000000000000e+00j -1.826703349736e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 1.826703349744e+03+0.000000000000e+00j -1.826703349744e+03+0.000000000000e+00j 1.826703349744e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 -8.278577344925e-14+0.000000000000e+00j -7.579653920088e-13+0.000000000000e+00j 3.766177783513e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 -8.278577344950e-14+0.000000000000e+00j -7.579653920113e-13+0.000000000000e+00j 3.766177783525e+03+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 -1.394563859870e-13+0.000000000000e+00j -1.276827042489e-12+0.000000000000e+00j 6.344297103151e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -1.906161083910e+02+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j 3.621818540516e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -4.960658211669e+02+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j 3.298148639035e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -2.410990334891e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j 4.812325680570e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.541150241882e+02+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003413e+02+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j 2.570858259195e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -2.466222371689e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j 3.141814155967e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.089702533912e+02+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j 1.693883617056e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 3.331454318583e+01+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 2.983841276862e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640354e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 3.449549636351e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 7.484369549273e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 7.252539022866e+02+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 2.663991119437e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192902e+02+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j -7.537749369760e+01+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 8.326275941955e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j -1.095902598229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 1.515634023277e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 2.246901195615e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 6.390435888751e+02+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j -1.373374188791e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 1.287469747220e+03+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j -6.948254471676e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 2.218454428379e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 1.725508655138e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.011916748813e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j -2.139081422557e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 1.677827869087e+03+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j -8.010663469828e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 2.675742073398e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 1.061468362370e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 3.295829288952e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j -1.982424451087e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 1.952274616241e+03+0.000000000000e+00j -1.952274616241e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 2.793069604589e+03+0.000000000000e+00j -2.793069604589e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 4.353221992372e+03+0.000000000000e+00j -4.353221992372e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 1.906161083910e+02+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 3.621818540516e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 4.960658211669e+02+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 3.298148639035e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 2.410990334891e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 4.812325680570e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 -7.381782677592e-14+0.000000000000e+00j -6.758571633540e-13+0.000000000000e+00j 3.358198488067e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 -7.381782677541e-14+0.000000000000e+00j -6.758571633497e-13+0.000000000000e+00j 3.358198488046e+03+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 -1.125284788005e-13+0.000000000000e+00j -1.030282003691e-12+0.000000000000e+00j 5.119264327847e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -6.887815763756e+01+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j 2.849906817858e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -2.907876485096e+02+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j 3.298255165072e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 3.703285199892e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 1.611704542809e+02+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -2.103459518153e+02+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j 3.440855856631e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.305283557963e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j 1.749125406728e+03+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 5.511984988225e+02+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 1.170914963950e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 4.701433168759e+02+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 3.520407372805e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j -1.570279330060e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 9.813960230291e+02+0.000000000000e+00j -9.813960230291e+02+0.000000000000e+00j 3.903028684481e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 1.439610072415e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 3.181897710267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.539717814991e+02+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j -1.483189426179e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 1.362258017177e+03+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j -6.848654362207e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 2.277392898273e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 1.978995825490e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 9.309665228201e+02+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j -1.522129397376e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 1.629999833653e+03+0.000000000000e+00j -1.629999833653e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 2.668739100354e+03+0.000000000000e+00j -2.668739100354e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 2.239677814266e+03+0.000000000000e+00j -2.239677814266e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 1.677827869087e+03+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 8.010663469828e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 2.675742073398e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j -1.061468362370e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 3.295829288952e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 1.982424451087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 1.195877589768e+03+0.000000000000e+00j -1.195877589768e+03+0.000000000000e+00j 1.195877589768e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.541150241882e+02+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003413e+02+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 2.570858259195e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 2.466222371689e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 3.141814155967e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 6.887815763756e+01+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 2.849906817858e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 2.907876485096e+02+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 3.298255165072e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 3.703285199892e+03+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 -5.659317535623e-14+0.000000000000e+00j -5.181526554207e-13+0.000000000000e+00j 2.574596465599e+03+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 -5.659317535594e-14+0.000000000000e+00j -5.181526554196e-13+0.000000000000e+00j 2.574596465595e+03+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 -7.609702299079e-14+0.000000000000e+00j -6.967249016205e-13+0.000000000000e+00j 3.461886087898e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.955720814232e+02+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.931571181618e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -8.360286832812e+02+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j 2.327628679175e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -1.902976282779e+02+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j 2.153754821740e+03+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 5.453827687707e+02+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 1.132852811783e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -9.798348926358e+02+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j 2.474222927441e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 2.890782382811e+01+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 3.169800657838e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 9.221540938131e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 4.132400085451e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 1.118741331148e+02+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 2.947829831354e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -4.932098470685e+00+0.000000000000e+00j 4.932098470685e+00+0.000000000000e+00j -1.739754380415e+03+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 1.218893138247e+03+0.000000000000e+00j -1.218893138247e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 2.067573412721e+03+0.000000000000e+00j -2.067573412721e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 -4.039473572554e+02+0.000000000000e+00j 4.039473572554e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 1.362258017177e+03+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 6.848654362206e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 2.277392898273e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j -1.978995825490e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 9.309665228201e+02+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 1.522129397376e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 1.287469747220e+03+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 6.948254471676e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 2.218454428379e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j -1.725508655138e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.011916748813e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 2.139081422557e+03+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 6.440774382714e+02+0.000000000000e+00j -6.440774382714e+02+0.000000000000e+00j 6.440774382714e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 6.440774382617e+02+0.000000000000e+00j -6.440774382617e+02+0.000000000000e+00j 6.440774382617e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.089702533912e+02+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.693883617056e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -3.331454318583e+01+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j 2.983841276862e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640354e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -1.611704542809e+02+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 2.103459518153e+02+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 3.440855856631e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.305283557963e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.749125406728e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.955720814232e+02+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j 1.931571181618e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 8.360286832812e+02+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 2.327628679175e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 1.902976282779e+02+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 2.153754821740e+03+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 -3.097729547215e-14+0.000000000000e+00j -2.836202034201e-13+0.000000000000e+00j 1.409251821174e+03+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 -3.097729547222e-14+0.000000000000e+00j -2.836202034204e-13+0.000000000000e+00j 1.409251821176e+03+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 -3.751576875914e-14+0.000000000000e+00j -3.434847944191e-13+0.000000000000e+00j 1.706706949096e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 3.350650599558e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 6.851091907668e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -1.317747768132e+03+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j 8.546200435528e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 4.550013552696e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 6.775000304813e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 6.817503300498e+02+0.000000000000e+00j -6.817503300498e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 -1.880020318403e+03+0.000000000000e+00j 1.880020318403e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 1.091389803066e+03+0.000000000000e+00j -1.091389803066e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 9.221540938131e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j -4.132400085451e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 1.118741331148e+02+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j -2.947829831354e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -4.932098470682e+00+0.000000000000e+00j 4.932098470682e+00+0.000000000000e+00j 1.739754380415e+03+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 9.813960230292e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j -3.903028684481e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 1.439610072415e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j -3.181897710267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.539717814991e+02+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j 1.483189426179e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 8.326275941955e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 1.095902598229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 1.515634023277e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j -2.246901195615e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 6.390435888751e+02+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 1.373374188791e+03+0.000000000000e+00j 1.000000000000e-01 + 4.650851100236e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.650851100245e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.033872196188e+01 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -3.449549636351e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j 7.484369549273e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -7.252539022866e+02+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j 2.663991119437e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192902e+02+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j -7.537749369760e+01+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -5.511984988225e+02+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j 1.170914963950e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -4.701433168759e+02+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j 3.520407372805e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j -1.570279330060e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -5.453827687707e+02+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j 1.132852811783e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 9.798348926358e+02+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 2.474222927441e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -2.890782382811e+01+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j 3.169800657838e+02+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -3.350650599558e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j 6.851091907668e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 1.317747768132e+03+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 8.546200435528e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -4.550013552696e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j 6.775000304813e+02+0.000000000000e+00j 1.000000000000e-01 + 6.516302870694e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.516302870699e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.979040851872e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 3.350650599558e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j -6.851091907668e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -1.317747768132e+03+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j -8.546200435528e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 4.550013552696e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j -6.775000304813e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 5.453827687707e+02+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j -1.132852811783e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -9.798348926358e+02+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j -2.474222927441e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 2.890782382811e+01+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j -3.169800657838e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 5.511984988225e+02+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j -1.170914963950e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 4.701433168759e+02+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j -3.520407372805e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.570279330060e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 3.449549636351e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j -7.484369549273e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 7.252539022866e+02+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j -2.663991119437e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192902e+02+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j 7.537749369760e+01+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 -6.440774382626e+02+0.000000000000e+00j 6.440774382626e+02+0.000000000000e+00j -6.440774382626e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 -6.440774382705e+02+0.000000000000e+00j 6.440774382705e+02+0.000000000000e+00j -6.440774382705e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 -1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -8.326275941955e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j -1.095902598229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -1.515634023277e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j 2.246901195615e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -6.390435888751e+02+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j -1.373374188791e+03+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -9.813960230292e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j 3.903028684481e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -1.439610072415e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j 3.181897710267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.539717814991e+02+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j -1.483189426179e+03+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -9.221540938131e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j 4.132400085451e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -1.118741331148e+02+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j 2.947829831354e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 4.932098470682e+00+0.000000000000e+00j -4.932098470682e+00+0.000000000000e+00j -1.739754380415e+03+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 -6.817503300498e+02+0.000000000000e+00j 6.817503300498e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 1.880020318403e+03+0.000000000000e+00j -1.880020318403e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 -1.091389803066e+03+0.000000000000e+00j 1.091389803066e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -3.350650599558e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j -6.851091907668e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 1.317747768132e+03+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j -8.546200435528e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -4.550013552696e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j -6.775000304813e+02+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 3.097729547226e-14+0.000000000000e+00j 2.836202034206e-13+0.000000000000e+00j -1.409251821178e+03+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 3.097729547195e-14+0.000000000000e+00j 2.836202034195e-13+0.000000000000e+00j -1.409251821172e+03+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 3.751576875914e-14+0.000000000000e+00j 3.434847944191e-13+0.000000000000e+00j -1.706706949096e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.955720814232e+02+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j -1.931571181618e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -8.360286832812e+02+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j -2.327628679175e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -1.902976282779e+02+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j -2.153754821740e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 1.611704542809e+02+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -2.103459518153e+02+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j -3.440855856631e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.305283557963e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j -1.749125406728e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.089702533912e+02+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j -1.693883617056e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 3.331454318583e+01+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j -2.983841276862e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640354e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 -1.195877589769e+03+0.000000000000e+00j 1.195877589769e+03+0.000000000000e+00j -1.195877589769e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 -1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 -2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -1.287469747220e+03+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j -6.948254471676e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -2.218454428379e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j 1.725508655138e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.011916748813e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j -2.139081422557e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -1.362258017177e+03+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j -6.848654362206e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -2.277392898273e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j 1.978995825490e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -9.309665228201e+02+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j -1.522129397376e+03+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 -1.218893138247e+03+0.000000000000e+00j 1.218893138247e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 -2.067573412721e+03+0.000000000000e+00j 2.067573412721e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 4.039473572554e+02+0.000000000000e+00j -4.039473572554e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -9.221540938131e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j -4.132400085451e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -1.118741331148e+02+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j -2.947829831354e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 4.932098470685e+00+0.000000000000e+00j -4.932098470685e+00+0.000000000000e+00j 1.739754380415e+03+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -5.453827687707e+02+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j -1.132852811783e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 9.798348926358e+02+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j -2.474222927441e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -2.890782382811e+01+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j -3.169800657838e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.955720814232e+02+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j -1.931571181618e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 8.360286832812e+02+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j -2.327628679175e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 1.902976282779e+02+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j -2.153754821740e+03+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 5.659317535601e-14+0.000000000000e+00j 5.181526554206e-13+0.000000000000e+00j -2.574596465600e+03+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 5.659317535593e-14+0.000000000000e+00j 5.181526554197e-13+0.000000000000e+00j -2.574596465595e+03+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 7.609702299079e-14+0.000000000000e+00j 6.967249016205e-13+0.000000000000e+00j -3.461886087898e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -6.887815763756e+01+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j -2.849906817858e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -2.907876485096e+02+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j -3.298255165072e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j -3.703285199892e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.541150241882e+02+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003413e+02+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j -2.570858259195e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -2.466222371689e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j -3.141814155967e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 -1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 -1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 -3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -1.677827869087e+03+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j -8.010663469828e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -2.675742073398e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j 1.061468362370e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -3.295829288952e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j -1.982424451087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 -1.629999833653e+03+0.000000000000e+00j 1.629999833653e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 -2.668739100354e+03+0.000000000000e+00j 2.668739100354e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 -2.239677814266e+03+0.000000000000e+00j 2.239677814266e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -1.362258017177e+03+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j 6.848654362207e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -2.277392898273e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j -1.978995825490e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -9.309665228201e+02+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j 1.522129397376e+03+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -9.813960230291e+02+0.000000000000e+00j 9.813960230291e+02+0.000000000000e+00j -3.903028684481e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -1.439610072415e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j -3.181897710267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.539717814991e+02+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.483189426179e+03+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -5.511984988225e+02+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j -1.170914963950e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -4.701433168759e+02+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j -3.520407372805e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.570279330060e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -1.611704542809e+02+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 2.103459518153e+02+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j -3.440855856631e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.305283557963e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j -1.749125406728e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 6.887815763756e+01+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j -2.849906817858e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 2.907876485096e+02+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j -3.298255165072e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j -3.703285199892e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 7.381782677571e-14+0.000000000000e+00j 6.758571633516e-13+0.000000000000e+00j -3.358198488056e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 7.381782677566e-14+0.000000000000e+00j 6.758571633521e-13+0.000000000000e+00j -3.358198488058e+03+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 1.125284788005e-13+0.000000000000e+00j 1.030282003691e-12+0.000000000000e+00j -5.119264327847e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -1.906161083910e+02+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j -3.621818540516e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -4.960658211669e+02+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j -3.298148639035e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -2.410990334891e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j -4.812325680570e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 -1.826703349756e+03+0.000000000000e+00j 1.826703349756e+03+0.000000000000e+00j -1.826703349756e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 -1.826703349736e+03+0.000000000000e+00j 1.826703349736e+03+0.000000000000e+00j -1.826703349736e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 -4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 -1.952274616241e+03+0.000000000000e+00j 1.952274616241e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 -2.793069604589e+03+0.000000000000e+00j 2.793069604589e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 -4.353221992372e+03+0.000000000000e+00j 4.353221992372e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -1.677827869087e+03+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j 8.010663469828e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -2.675742073398e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j -1.061468362370e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -3.295829288952e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j 1.982424451087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -1.287469747220e+03+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j 6.948254471676e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -2.218454428379e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j -1.725508655138e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.011916748813e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j 2.139081422557e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -8.326275941955e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j 1.095902598229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -1.515634023277e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j -2.246901195615e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -6.390435888751e+02+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j 1.373374188791e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -3.449549636351e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j -7.484369549273e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -7.252539022866e+02+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j -2.663991119437e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192902e+02+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 7.537749369760e+01+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.089702533912e+02+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j -1.693883617056e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -3.331454318583e+01+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j -2.983841276862e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640354e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.541150241882e+02+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003413e+02+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j -2.570858259195e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 2.466222371689e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j -3.141814155967e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 1.906161083910e+02+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j -3.621818540516e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 4.960658211669e+02+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j -3.298148639035e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 2.410990334891e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j -4.812325680570e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 8.278577344986e-14+0.000000000000e+00j 7.579653920141e-13+0.000000000000e+00j -3.766177783539e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 8.278577344884e-14+0.000000000000e+00j 7.579653920062e-13+0.000000000000e+00j -3.766177783499e+03+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 1.394563859870e-13+0.000000000000e+00j 1.276827042489e-12+0.000000000000e+00j -6.344297103151e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 1.826703349744e+03+0.000000000000e+00j 1.826703349744e+03+0.000000000000e+00j -1.826703349744e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 -8.278577344925e-14+0.000000000000e+00j 3.766177783513e+03+0.000000000000e+00j 8.278577344905e-14+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 -8.278577344945e-14+0.000000000000e+00j 3.766177783525e+03+0.000000000000e+00j 8.278577344940e-14+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 -1.394563859887e-13+0.000000000000e+00j 6.344297103151e+03+0.000000000000e+00j 1.394563859879e-13+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -1.906161083910e+02+0.000000000000e+00j 3.621818540516e+03+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -4.960658211669e+02+0.000000000000e+00j 3.298148639035e+03+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -2.410990334891e+03+0.000000000000e+00j 4.812325680570e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.541150241882e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003413e+02+0.000000000000e+00j 2.570858259195e+03+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -2.466222371689e+03+0.000000000000e+00j 3.141814155967e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.089702533912e+02+0.000000000000e+00j 1.693883617056e+03+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 3.331454318583e+01+0.000000000000e+00j 2.983841276862e+03+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640354e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 3.449549636351e+02+0.000000000000e+00j 7.484369549273e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 7.252539022866e+02+0.000000000000e+00j 2.663991119437e+03+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192902e+02+0.000000000000e+00j -7.537749369760e+01+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 8.326275941955e+02+0.000000000000e+00j -1.095902598229e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 1.515634023277e+03+0.000000000000e+00j 2.246901195615e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 6.390435888751e+02+0.000000000000e+00j -1.373374188791e+03+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 1.287469747220e+03+0.000000000000e+00j -6.948254471676e+02+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 2.218454428379e+03+0.000000000000e+00j 1.725508655138e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.011916748813e+03+0.000000000000e+00j -2.139081422557e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 1.677827869087e+03+0.000000000000e+00j -8.010663469828e+02+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 2.675742073398e+03+0.000000000000e+00j 1.061468362370e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 3.295829288952e+03+0.000000000000e+00j -1.982424451087e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 1.952274616241e+03+0.000000000000e+00j 3.511634154721e-13+0.000000000000e+00j -1.952274616241e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 2.793069604589e+03+0.000000000000e+00j 5.024005607816e-13+0.000000000000e+00j -2.793069604589e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 4.353221992372e+03+0.000000000000e+00j 7.830313883266e-13+0.000000000000e+00j -4.353221992372e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 3.766177783513e+03+0.000000000000e+00j -7.829406600853e-14+0.000000000000e+00j 8.278577344925e-14+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 3.766177783525e+03+0.000000000000e+00j -7.829406600891e-14+0.000000000000e+00j 8.278577344945e-14+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 6.344297103151e+03+0.000000000000e+00j -1.318899013062e-13+0.000000000000e+00j 1.394563859887e-13+0.000000000000e+00j 1.000000000000e-01 + 1.392251140995e+00 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140995e+00 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227957e+00 4.091794716334e+03+0.000000000000e+00j 4.091794716334e+03+0.000000000000e+00j 4.091794716334e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 -8.582118183317e-14+0.000000000000e+00j 1.952274616239e+03+0.000000000000e+00j 1.952274616239e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 -1.227821805465e-13+0.000000000000e+00j 2.793069604590e+03+0.000000000000e+00j 2.793069604590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 -1.913658319664e-13+0.000000000000e+00j 4.353221992374e+03+0.000000000000e+00j 4.353221992374e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 -8.010663469824e+02+0.000000000000e+00j 1.677827869086e+03+0.000000000000e+00j 1.677827869086e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 1.061468362377e+03+0.000000000000e+00j 2.675742073388e+03+0.000000000000e+00j 2.675742073388e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 -1.982424451074e+03+0.000000000000e+00j 3.295829288950e+03+0.000000000000e+00j 3.295829288950e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 -6.948254471798e+02+0.000000000000e+00j 1.287469747221e+03+0.000000000000e+00j 1.287469747221e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 1.725508655145e+03+0.000000000000e+00j 2.218454428366e+03+0.000000000000e+00j 2.218454428366e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 -2.139081422556e+03+0.000000000000e+00j 2.011916748810e+03+0.000000000000e+00j 2.011916748810e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 -1.095902598382e+02+0.000000000000e+00j 8.326275941940e+02+0.000000000000e+00j 8.326275941940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 2.246901195613e+03+0.000000000000e+00j 1.515634023269e+03+0.000000000000e+00j 1.515634023269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 -1.373374188795e+03+0.000000000000e+00j 6.390435888739e+02+0.000000000000e+00j 6.390435888739e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 7.484369549179e+02+0.000000000000e+00j 3.449549636286e+02+0.000000000000e+00j 3.449549636286e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 2.663991119428e+03+0.000000000000e+00j 7.252539022881e+02+0.000000000000e+00j 7.252539022881e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -7.537749370039e+01+0.000000000000e+00j -6.906934192903e+02+0.000000000000e+00j -6.906934192903e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 1.693883617055e+03+0.000000000000e+00j -1.089702534022e+02+0.000000000000e+00j -1.089702534022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 2.983841276854e+03+0.000000000000e+00j 3.331454319420e+01+0.000000000000e+00j 3.331454319420e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.492388034645e+03+0.000000000000e+00j -1.792515640355e+03+0.000000000000e+00j -1.792515640355e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 3.270970228804e+03+0.000000000000e+00j -3.541150241791e+02+0.000000000000e+00j -3.541150241791e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 2.570858259196e+03+0.000000000000e+00j -4.336803003526e+02+0.000000000000e+00j -4.336803003526e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 3.141814155966e+03+0.000000000000e+00j -2.466222371691e+03+0.000000000000e+00j -2.466222371691e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 3.621818540528e+03+0.000000000000e+00j -1.906161083809e+02+0.000000000000e+00j -1.906161083809e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 3.298148639030e+03+0.000000000000e+00j -4.960658211723e+02+0.000000000000e+00j -4.960658211723e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 4.812325680568e+03+0.000000000000e+00j -2.410990334894e+03+0.000000000000e+00j -2.410990334894e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 3.621818540516e+03+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 3.298148639035e+03+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 4.812325680570e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 1.952274616239e+03+0.000000000000e+00j -4.323340486481e-13+0.000000000000e+00j 1.952274616239e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 2.793069604590e+03+0.000000000000e+00j -6.185293197299e-13+0.000000000000e+00j 2.793069604590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 4.353221992374e+03+0.000000000000e+00j -9.640273314895e-13+0.000000000000e+00j 4.353221992374e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 1.906161083847e+02+0.000000000000e+00j 1.906161083847e+02+0.000000000000e+00j 3.621818540520e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 4.960658211791e+02+0.000000000000e+00j 4.960658211791e+02+0.000000000000e+00j 3.298148639026e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 2.410990334911e+03+0.000000000000e+00j 2.410990334911e+03+0.000000000000e+00j 4.812325680560e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -6.764357585006e-14+0.000000000000e+00j -2.477472180376e+02+0.000000000000e+00j 3.326019148224e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -1.129703471491e-13+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 3.069970706092e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -1.411070412072e-13+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 3.909325828783e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -4.048846605891e+02+0.000000000000e+00j -1.167708252139e+02+0.000000000000e+00j 2.855339344599e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473744e+03+0.000000000000e+00j 2.133281238353e+03+0.000000000000e+00j 2.754226153072e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -1.439197506310e+03+0.000000000000e+00j 1.815457579590e+03+0.000000000000e+00j 2.292540364986e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.473510677568e+01+0.000000000000e+00j -1.347963952067e+02+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531749e+00 2.100426273078e+03+0.000000000000e+00j 1.383957859722e+03+0.000000000000e+00j 2.537027100001e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -1.600399579641e+03+0.000000000000e+00j 9.430387165091e+02+0.000000000000e+00j 5.951882676219e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 1.029630366773e+03+0.000000000000e+00j -2.274024116701e-13+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 2.417747879248e+03+0.000000000000e+00j -5.339796846459e-13+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -8.075401156421e+02+0.000000000000e+00j 1.783519365238e-13+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.107875696041e+03+0.000000000000e+00j 1.347963952064e+02+0.000000000000e+00j 2.473510678253e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 2.537027099992e+03+0.000000000000e+00j -1.383957859744e+03+0.000000000000e+00j 2.100426273090e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 5.951882676210e+02+0.000000000000e+00j -9.430387165139e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 2.855339344597e+03+0.000000000000e+00j 1.167708252121e+02+0.000000000000e+00j -4.048846605795e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153082e+03+0.000000000000e+00j -2.133281238364e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 2.292540364990e+03+0.000000000000e+00j -1.815457579598e+03+0.000000000000e+00j -1.439197506316e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 3.326019148229e+03+0.000000000000e+00j 2.477472180394e+02+0.000000000000e+00j 7.855630556088e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 3.069970706102e+03+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 2.197456241457e-14+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 3.909325828790e+03+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 3.073291132662e-14+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.270970228804e+03+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 2.570858259195e+03+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 3.141814155967e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 1.677827869086e+03+0.000000000000e+00j -8.010663469824e+02+0.000000000000e+00j 1.677827869086e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 2.675742073388e+03+0.000000000000e+00j 1.061468362377e+03+0.000000000000e+00j 2.675742073388e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 3.295829288950e+03+0.000000000000e+00j -1.982424451074e+03+0.000000000000e+00j 3.295829288950e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -2.477472180376e+02+0.000000000000e+00j -6.602848560321e-13+0.000000000000e+00j 3.326019148224e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 2.070280719288e+03+0.000000000000e+00j -6.572462202677e-13+0.000000000000e+00j 3.069970706092e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 2.511191789093e+03+0.000000000000e+00j -8.343416179370e-13+0.000000000000e+00j 3.909325828783e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 6.887815764670e+01+0.000000000000e+00j 6.887815764670e+01+0.000000000000e+00j 2.849906817857e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 2.907876484991e+02+0.000000000000e+00j 2.907876484991e+02+0.000000000000e+00j 3.298255165069e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 1.173822321991e+03+0.000000000000e+00j 1.173822321991e+03+0.000000000000e+00j 3.703285199880e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -5.505005122289e-14+0.000000000000e+00j -3.958756311590e+02+0.000000000000e+00j 2.901107133229e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -9.283214440852e-14+0.000000000000e+00j 1.768140685530e+03+0.000000000000e+00j 2.455785279109e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -7.602781419221e-14+0.000000000000e+00j 9.018856377877e+02+0.000000000000e+00j 2.557589353128e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 4.109790152335e+02+0.000000000000e+00j -2.235944633189e+02+0.000000000000e+00j 2.297162805675e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 3.866751154283e+02+0.000000000000e+00j 1.651408145566e+03+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -7.231958063081e+02+0.000000000000e+00j 3.249726472726e+02+0.000000000000e+00j 8.193662174822e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007856e+03+0.000000000000e+00j -7.962977582707e+00+0.000000000000e+00j 1.222381804899e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 9.408488419744e+02+0.000000000000e+00j 2.209454667211e+02+0.000000000000e+00j 2.773373845643e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -9.265906162360e+02+0.000000000000e+00j 5.737601261161e+01+0.000000000000e+00j -9.858366119327e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 2.228955124167e+03+0.000000000000e+00j 1.368428955981e+01+0.000000000000e+00j 3.405516824254e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 1.737759702183e+03+0.000000000000e+00j -1.664544017651e+03+0.000000000000e+00j 2.155507627743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -4.074490724557e+02+0.000000000000e+00j 8.232383415304e+01+0.000000000000e+00j -1.487864010830e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 2.658278854984e+03+0.000000000000e+00j -5.517436734322e+01+0.000000000000e+00j 5.721982093269e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 2.244897517883e+03+0.000000000000e+00j -2.407984538050e+03+0.000000000000e+00j -3.584877262922e-15+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 9.608585950775e+02+0.000000000000e+00j -6.727877776973e+02+0.000000000000e+00j 6.332193219660e-15+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 2.855339344604e+03+0.000000000000e+00j 1.167708252163e+02+0.000000000000e+00j 4.048846605874e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153081e+03+0.000000000000e+00j -2.133281238368e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 2.292540364991e+03+0.000000000000e+00j -1.815457579596e+03+0.000000000000e+00j 1.439197506317e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.693883617056e+03+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 2.983841276862e+03+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.492388034645e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 1.287469747221e+03+0.000000000000e+00j -6.948254471798e+02+0.000000000000e+00j 1.287469747221e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 2.218454428366e+03+0.000000000000e+00j 1.725508655145e+03+0.000000000000e+00j 2.218454428366e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 2.011916748810e+03+0.000000000000e+00j -2.139081422556e+03+0.000000000000e+00j 2.011916748810e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -1.167708252139e+02+0.000000000000e+00j -4.048846605891e+02+0.000000000000e+00j 2.855339344599e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238353e+03+0.000000000000e+00j 1.271754473744e+03+0.000000000000e+00j 2.754226153072e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 1.815457579590e+03+0.000000000000e+00j -1.439197506310e+03+0.000000000000e+00j 2.292540364986e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -3.958756311590e+02+0.000000000000e+00j -5.721934915843e-13+0.000000000000e+00j 2.901107133229e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.768140685530e+03+0.000000000000e+00j -5.280852999344e-13+0.000000000000e+00j 2.455785279109e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 9.018856377877e+02+0.000000000000e+00j -5.304448515487e-13+0.000000000000e+00j 2.557589353128e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 -1.955720814199e+02+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j 1.931571181621e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 8.360286832695e+02+0.000000000000e+00j 8.360286832695e+02+0.000000000000e+00j 2.327628679170e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 1.902976282771e+02+0.000000000000e+00j 1.902976282771e+02+0.000000000000e+00j 2.153754821733e+03+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -4.126833802048e-14+0.000000000000e+00j 1.389460562279e+02+0.000000000000e+00j 1.738978129235e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -6.562410480023e-14+0.000000000000e+00j 1.627322748356e+03+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.484688488775e-14+0.000000000000e+00j -4.535788174358e+02+0.000000000000e+00j 1.129334593094e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 1.565824031920e+03+0.000000000000e+00j 3.405764006341e+02+0.000000000000e+00j 8.165966244897e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.466859757966e+03+0.000000000000e+00j 1.674226432372e+03+0.000000000000e+00j 1.224827992553e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 2.837982416341e+02+0.000000000000e+00j -1.176647268022e+03+0.000000000000e+00j -1.160191764820e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 2.114543049917e+03+0.000000000000e+00j 1.994915061823e+02+0.000000000000e+00j 5.086566580890e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -1.516378160774e+03+0.000000000000e+00j 1.407377764407e+03+0.000000000000e+00j -2.395978798105e-15+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.161560904470e+03+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j -1.726362502259e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 2.228955124173e+03+0.000000000000e+00j 1.368428956505e+01+0.000000000000e+00j -3.405516824120e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 1.737759702187e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j -2.155507627736e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -4.074490724537e+02+0.000000000000e+00j 8.232383415397e+01+0.000000000000e+00j 1.487864010833e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 2.107875696050e+03+0.000000000000e+00j 1.347963952090e+02+0.000000000000e+00j -2.473510678724e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 2.537027100000e+03+0.000000000000e+00j -1.383957859743e+03+0.000000000000e+00j -2.100426273080e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 5.951882676235e+02+0.000000000000e+00j -9.430387165133e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 7.484369549273e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 2.663991119437e+03+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -7.537749369759e+01+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 8.326275941940e+02+0.000000000000e+00j -1.095902598382e+02+0.000000000000e+00j 8.326275941940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 1.515634023269e+03+0.000000000000e+00j 2.246901195613e+03+0.000000000000e+00j 1.515634023269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 6.390435888739e+02+0.000000000000e+00j -1.373374188795e+03+0.000000000000e+00j 6.390435888739e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -1.347963952067e+02+0.000000000000e+00j 2.473510677568e+01+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 1.383957859722e+03+0.000000000000e+00j 2.100426273078e+03+0.000000000000e+00j 2.537027100001e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 9.430387165091e+02+0.000000000000e+00j -1.600399579641e+03+0.000000000000e+00j 5.951882676219e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -2.235944633189e+02+0.000000000000e+00j 4.109790152335e+02+0.000000000000e+00j 2.297162805675e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 1.651408145566e+03+0.000000000000e+00j 3.866751154283e+02+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 3.249726472726e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 8.193662174822e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 1.389460562279e+02+0.000000000000e+00j -3.508051118168e-13+0.000000000000e+00j 1.738978129235e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 1.627322748356e+03+0.000000000000e+00j -3.056264820608e-13+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -4.535788174358e+02+0.000000000000e+00j -2.165161525830e-13+0.000000000000e+00j 1.129334593094e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -3.350650599564e+02+0.000000000000e+00j -3.350650599564e+02+0.000000000000e+00j 6.851091907693e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 1.317747768119e+03+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 8.546200435520e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -4.550013552749e+02+0.000000000000e+00j -4.550013552749e+02+0.000000000000e+00j 6.775000304802e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -1.105082526647e-14+0.000000000000e+00j 5.027358068558e+02+0.000000000000e+00j 1.105082526709e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -3.479796022509e-14+0.000000000000e+00j 1.583065534720e+03+0.000000000000e+00j 3.479796022530e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 2.341025136739e-14+0.000000000000e+00j -1.065003863972e+03+0.000000000000e+00j -2.341025136719e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 1.565824031920e+03+0.000000000000e+00j 3.405764006383e+02+0.000000000000e+00j -8.165966244787e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.466859757964e+03+0.000000000000e+00j 1.674226432375e+03+0.000000000000e+00j -1.224827992550e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 2.837982416353e+02+0.000000000000e+00j -1.176647268019e+03+0.000000000000e+00j 1.160191764851e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 1.436326007861e+03+0.000000000000e+00j -7.962977576046e+00+0.000000000000e+00j -1.222381804894e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 9.408488419796e+02+0.000000000000e+00j 2.209454667325e+02+0.000000000000e+00j -2.773373845637e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -9.265906162319e+02+0.000000000000e+00j 5.737601261443e+01+0.000000000000e+00j 9.858366119346e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 1.029630366785e+03+0.000000000000e+00j 1.845929892106e-13+0.000000000000e+00j -1.029630366785e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 2.417747879247e+03+0.000000000000e+00j 4.334558522989e-13+0.000000000000e+00j -2.417747879247e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 -8.075401156400e+02+0.000000000000e+00j -1.447764641197e-13+0.000000000000e+00j 8.075401156400e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -1.095902598229e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 2.246901195615e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -1.373374188791e+03+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 3.449549636286e+02+0.000000000000e+00j 7.484369549179e+02+0.000000000000e+00j 3.449549636286e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 7.252539022881e+02+0.000000000000e+00j 2.663991119428e+03+0.000000000000e+00j 7.252539022881e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192903e+02+0.000000000000e+00j -7.537749370039e+01+0.000000000000e+00j -6.906934192903e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -4.465139540329e-14+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -1.048490992744e-13+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 3.502013360440e-14+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977582710e+00+0.000000000000e+00j 1.436326007856e+03+0.000000000000e+00j 1.222381804899e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.209454667211e+02+0.000000000000e+00j 9.408488419744e+02+0.000000000000e+00j 2.773373845643e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 5.737601261161e+01+0.000000000000e+00j -9.265906162360e+02+0.000000000000e+00j -9.858366119327e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 3.405764006341e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 8.165966244897e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.674226432372e+03+0.000000000000e+00j -1.466859757966e+03+0.000000000000e+00j 1.224827992553e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -1.176647268022e+03+0.000000000000e+00j 2.837982416341e+02+0.000000000000e+00j -1.160191764820e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 5.027358068558e+02+0.000000000000e+00j -1.045124067564e-14+0.000000000000e+00j 1.105082526729e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 1.583065534720e+03+0.000000000000e+00j -3.290992741036e-14+0.000000000000e+00j 3.479796022550e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -1.065003863972e+03+0.000000000000e+00j 2.214008143469e-14+0.000000000000e+00j -2.341025136714e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -3.350650599560e+02+0.000000000000e+00j -3.350650599560e+02+0.000000000000e+00j -6.851091907684e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 1.317747768119e+03+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j -8.546200435459e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -4.550013552737e+02+0.000000000000e+00j -4.550013552737e+02+0.000000000000e+00j -6.775000304810e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 3.515988675151e-14+0.000000000000e+00j 1.389460562305e+02+0.000000000000e+00j -1.738978129230e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -5.917484640916e-15+0.000000000000e+00j 1.627322748360e+03+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 3.478745879567e-14+0.000000000000e+00j -4.535788174314e+02+0.000000000000e+00j -1.129334593096e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 4.109790152323e+02+0.000000000000e+00j -2.235944633154e+02+0.000000000000e+00j -2.297162805673e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 3.866751154334e+02+0.000000000000e+00j 1.651408145580e+03+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -7.231958063081e+02+0.000000000000e+00j 3.249726472798e+02+0.000000000000e+00j -8.193662174838e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 2.473510678724e+01+0.000000000000e+00j -1.347963952090e+02+0.000000000000e+00j -2.107875696050e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 2.100426273080e+03+0.000000000000e+00j 1.383957859743e+03+0.000000000000e+00j -2.537027100000e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -1.600399579637e+03+0.000000000000e+00j 9.430387165133e+02+0.000000000000e+00j -5.951882676235e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -6.948254471676e+02+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 1.725508655138e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.139081422557e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 -1.089702534022e+02+0.000000000000e+00j 1.693883617055e+03+0.000000000000e+00j -1.089702534022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 3.331454319421e+01+0.000000000000e+00j 2.983841276854e+03+0.000000000000e+00j 3.331454319421e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640355e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j -1.792515640355e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 1.347963952064e+02+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 2.473510678253e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -1.383957859744e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 2.100426273090e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -9.430387165139e+02+0.000000000000e+00j 5.951882676209e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 1.368428955981e+01+0.000000000000e+00j 2.228955124167e+03+0.000000000000e+00j 3.405516824254e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -1.664544017651e+03+0.000000000000e+00j 1.737759702183e+03+0.000000000000e+00j 2.155507627743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 8.232383415304e+01+0.000000000000e+00j -4.074490724557e+02+0.000000000000e+00j -1.487864010830e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 1.994915061823e+02+0.000000000000e+00j 2.114543049917e+03+0.000000000000e+00j 5.086566580890e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 1.407377764407e+03+0.000000000000e+00j -1.516378160774e+03+0.000000000000e+00j -2.395978798105e-15+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.946935955182e+03+0.000000000000e+00j 1.161560904470e+03+0.000000000000e+00j -1.726362502259e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 3.405764006383e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j -8.165966244787e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.674226432375e+03+0.000000000000e+00j -1.466859757964e+03+0.000000000000e+00j -1.224827992550e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -1.176647268019e+03+0.000000000000e+00j 2.837982416353e+02+0.000000000000e+00j 1.160191764851e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 1.389460562305e+02+0.000000000000e+00j 3.450280867670e-13+0.000000000000e+00j -1.738978129230e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 1.627322748360e+03+0.000000000000e+00j 2.379665244063e-13+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -4.535788174314e+02+0.000000000000e+00j 2.353748108371e-13+0.000000000000e+00j -1.129334593096e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 -1.955720814199e+02+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j -1.931571181623e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 8.360286832711e+02+0.000000000000e+00j 8.360286832711e+02+0.000000000000e+00j -2.327628679167e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 1.902976282757e+02+0.000000000000e+00j 1.902976282757e+02+0.000000000000e+00j -2.153754821741e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 7.245383415741e-14+0.000000000000e+00j -3.958756311563e+02+0.000000000000e+00j -2.901107133228e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.509981065686e-14+0.000000000000e+00j 1.768140685534e+03+0.000000000000e+00j -2.455785279116e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 3.637843788649e-14+0.000000000000e+00j 9.018856377917e+02+0.000000000000e+00j -2.557589353136e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -4.048846605874e+02+0.000000000000e+00j -1.167708252163e+02+0.000000000000e+00j -2.855339344604e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473743e+03+0.000000000000e+00j 2.133281238368e+03+0.000000000000e+00j -2.754226153081e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.439197506317e+03+0.000000000000e+00j 1.815457579596e+03+0.000000000000e+00j -2.292540364991e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -8.010663469828e+02+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 1.061468362370e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -1.982424451087e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 -3.541150241790e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j -3.541150241790e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 -4.336803003525e+02+0.000000000000e+00j 2.570858259196e+03+0.000000000000e+00j -4.336803003525e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 -2.466222371691e+03+0.000000000000e+00j 3.141814155966e+03+0.000000000000e+00j -2.466222371691e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 1.167708252121e+02+0.000000000000e+00j 2.855339344597e+03+0.000000000000e+00j -4.048846605795e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238364e+03+0.000000000000e+00j 2.754226153082e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.815457579598e+03+0.000000000000e+00j 2.292540364990e+03+0.000000000000e+00j -1.439197506316e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -5.517436734322e+01+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 5.721982093269e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -2.407984538050e+03+0.000000000000e+00j 2.244897517883e+03+0.000000000000e+00j -3.584877262922e-15+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -6.727877776973e+02+0.000000000000e+00j 9.608585950775e+02+0.000000000000e+00j 6.332193219660e-15+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 1.368428956505e+01+0.000000000000e+00j 2.228955124173e+03+0.000000000000e+00j -3.405516824120e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -1.664544017648e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j -2.155507627736e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 8.232383415397e+01+0.000000000000e+00j -4.074490724538e+02+0.000000000000e+00j 1.487864010833e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -7.962977576050e+00+0.000000000000e+00j 1.436326007861e+03+0.000000000000e+00j -1.222381804894e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 2.209454667325e+02+0.000000000000e+00j 9.408488419795e+02+0.000000000000e+00j -2.773373845637e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 5.737601261443e+01+0.000000000000e+00j -9.265906162319e+02+0.000000000000e+00j 9.858366119346e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -2.235944633154e+02+0.000000000000e+00j 4.109790152323e+02+0.000000000000e+00j -2.297162805673e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 1.651408145580e+03+0.000000000000e+00j 3.866751154334e+02+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 3.249726472798e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j -8.193662174838e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -3.958756311563e+02+0.000000000000e+00j 5.886529975209e-13+0.000000000000e+00j -2.901107133228e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.768140685534e+03+0.000000000000e+00j 4.545704891635e-13+0.000000000000e+00j -2.455785279116e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 9.018856377917e+02+0.000000000000e+00j 4.929467313251e-13+0.000000000000e+00j -2.557589353136e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 6.887815764371e+01+0.000000000000e+00j 6.887815764371e+01+0.000000000000e+00j -2.849906817861e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 2.907876484989e+02+0.000000000000e+00j 2.907876484989e+02+0.000000000000e+00j -3.298255165074e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j -3.703285199893e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 7.853522581700e-14+0.000000000000e+00j -2.477472180394e+02+0.000000000000e+00j -3.326019148229e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 2.195510546186e-14+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j -3.069970706102e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 3.070813468415e-14+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j -3.909325828790e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 -6.186592350803e-18+0.000000000000e+00j 1.952274616241e+03+0.000000000000e+00j -1.952274616241e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 -8.851000216431e-18+0.000000000000e+00j 2.793069604589e+03+0.000000000000e+00j -2.793069604589e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 -1.379499054850e-17+0.000000000000e+00j 4.353221992372e+03+0.000000000000e+00j -4.353221992372e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -1.906161083809e+02+0.000000000000e+00j 3.621818540528e+03+0.000000000000e+00j -1.906161083809e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 -4.960658211723e+02+0.000000000000e+00j 3.298148639030e+03+0.000000000000e+00j -4.960658211723e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 -2.410990334894e+03+0.000000000000e+00j 4.812325680568e+03+0.000000000000e+00j -2.410990334894e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 2.477472180394e+02+0.000000000000e+00j 3.326019148229e+03+0.000000000000e+00j 7.855630556088e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -2.070280719288e+03+0.000000000000e+00j 3.069970706102e+03+0.000000000000e+00j 2.197456241457e-14+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -2.511191789093e+03+0.000000000000e+00j 3.909325828790e+03+0.000000000000e+00j 3.073291132662e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 1.167708252163e+02+0.000000000000e+00j 2.855339344604e+03+0.000000000000e+00j 4.048846605874e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238368e+03+0.000000000000e+00j 2.754226153081e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.815457579596e+03+0.000000000000e+00j 2.292540364991e+03+0.000000000000e+00j 1.439197506317e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 1.347963952090e+02+0.000000000000e+00j 2.107875696050e+03+0.000000000000e+00j -2.473510678724e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -1.383957859743e+03+0.000000000000e+00j 2.537027100000e+03+0.000000000000e+00j -2.100426273080e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -9.430387165133e+02+0.000000000000e+00j 5.951882676234e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 -6.139909804282e-16+0.000000000000e+00j 1.029630366785e+03+0.000000000000e+00j -1.029630366785e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 -1.441755642311e-15+0.000000000000e+00j 2.417747879247e+03+0.000000000000e+00j -2.417747879247e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 4.815537335840e-16+0.000000000000e+00j -8.075401156400e+02+0.000000000000e+00j 8.075401156400e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -1.347963952090e+02+0.000000000000e+00j 2.473510678723e+01+0.000000000000e+00j -2.107875696050e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 1.383957859743e+03+0.000000000000e+00j 2.100426273080e+03+0.000000000000e+00j -2.537027100000e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 9.430387165133e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j -5.951882676234e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -1.167708252163e+02+0.000000000000e+00j -4.048846605874e+02+0.000000000000e+00j -2.855339344604e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238368e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j -2.754226153081e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.815457579596e+03+0.000000000000e+00j -1.439197506317e+03+0.000000000000e+00j -2.292540364991e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -2.477472180394e+02+0.000000000000e+00j 6.705855577827e-13+0.000000000000e+00j -3.326019148229e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 2.070280719288e+03+0.000000000000e+00j 5.711691922540e-13+0.000000000000e+00j -3.069970706102e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 2.511191789093e+03+0.000000000000e+00j 7.299326245236e-13+0.000000000000e+00j -3.909325828790e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 1.906161083809e+02+0.000000000000e+00j 1.906161083809e+02+0.000000000000e+00j -3.621818540528e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 4.960658211723e+02+0.000000000000e+00j 4.960658211723e+02+0.000000000000e+00j -3.298148639030e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 2.410990334894e+03+0.000000000000e+00j 2.410990334894e+03+0.000000000000e+00j -4.812325680568e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 1.906161083910e+02+0.000000000000e+00j 3.621818540516e+03+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 4.960658211669e+02+0.000000000000e+00j 3.298148639035e+03+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 2.410990334891e+03+0.000000000000e+00j 4.812325680570e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 -7.381782677602e-14+0.000000000000e+00j 3.358198488067e+03+0.000000000000e+00j 7.381782677612e-14+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 -7.381782677556e-14+0.000000000000e+00j 3.358198488046e+03+0.000000000000e+00j 7.381782677541e-14+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 -1.125284788007e-13+0.000000000000e+00j 5.119264327847e+03+0.000000000000e+00j 1.125284788001e-13+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -6.887815763756e+01+0.000000000000e+00j 2.849906817858e+03+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -2.907876485096e+02+0.000000000000e+00j 3.298255165072e+03+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -1.173822321981e+03+0.000000000000e+00j 3.703285199892e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 1.611704542809e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -2.103459518153e+02+0.000000000000e+00j 3.440855856631e+03+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.305283557963e+03+0.000000000000e+00j 1.749125406728e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 5.511984988225e+02+0.000000000000e+00j 1.170914963950e+03+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 4.701433168759e+02+0.000000000000e+00j 3.520407372805e+03+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -9.131359997239e+02+0.000000000000e+00j -1.570279330060e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 9.813960230292e+02+0.000000000000e+00j 3.903028684481e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 1.439610072415e+03+0.000000000000e+00j 3.181897710267e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.539717814991e+02+0.000000000000e+00j -1.483189426179e+03+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 1.362258017177e+03+0.000000000000e+00j -6.848654362207e+01+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 2.277392898273e+03+0.000000000000e+00j 1.978995825490e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 9.309665228201e+02+0.000000000000e+00j -1.522129397376e+03+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 1.629999833653e+03+0.000000000000e+00j 2.931945659913e-13+0.000000000000e+00j -1.629999833653e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 2.668739100354e+03+0.000000000000e+00j 4.800367375001e-13+0.000000000000e+00j -2.668739100354e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 2.239677814266e+03+0.000000000000e+00j 4.028597740666e-13+0.000000000000e+00j -2.239677814266e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 1.677827869087e+03+0.000000000000e+00j 8.010663469828e+02+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 2.675742073398e+03+0.000000000000e+00j -1.061468362370e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 3.295829288952e+03+0.000000000000e+00j 1.982424451087e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 3.621818540516e+03+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 3.298148639035e+03+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 4.812325680570e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 1.952274616239e+03+0.000000000000e+00j 1.952274616239e+03+0.000000000000e+00j 8.582736842465e-14+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 2.793069604590e+03+0.000000000000e+00j 2.793069604590e+03+0.000000000000e+00j 1.227910315474e-13+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 4.353221992374e+03+0.000000000000e+00j 4.353221992374e+03+0.000000000000e+00j 1.913796269578e-13+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 1.906161083847e+02+0.000000000000e+00j 3.621818540520e+03+0.000000000000e+00j 1.906161083847e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 4.960658211791e+02+0.000000000000e+00j 3.298148639026e+03+0.000000000000e+00j 4.960658211791e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 2.410990334911e+03+0.000000000000e+00j 4.812325680560e+03+0.000000000000e+00j 2.410990334911e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -6.766622577425e-14+0.000000000000e+00j 3.326019148224e+03+0.000000000000e+00j -2.477472180376e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -1.129766830150e-13+0.000000000000e+00j 3.069970706092e+03+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -1.411159023437e-13+0.000000000000e+00j 3.909325828783e+03+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -4.048846605891e+02+0.000000000000e+00j 2.855339344599e+03+0.000000000000e+00j -1.167708252139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473744e+03+0.000000000000e+00j 2.754226153072e+03+0.000000000000e+00j 2.133281238353e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -1.439197506310e+03+0.000000000000e+00j 2.292540364986e+03+0.000000000000e+00j 1.815457579590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.473510677568e+01+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j -1.347963952067e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531749e+00 2.100426273078e+03+0.000000000000e+00j 2.537027100001e+03+0.000000000000e+00j 1.383957859722e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -1.600399579641e+03+0.000000000000e+00j 5.951882676219e+02+0.000000000000e+00j 9.430387165091e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 1.029630366773e+03+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 4.526538638363e-14+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 2.417747879248e+03+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.062908549185e-13+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -8.075401156421e+02+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j -3.550168733787e-14+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.107875696041e+03+0.000000000000e+00j 2.473510678252e+01+0.000000000000e+00j 1.347963952064e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 2.537027099992e+03+0.000000000000e+00j 2.100426273090e+03+0.000000000000e+00j -1.383957859744e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 5.951882676210e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j -9.430387165139e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 2.855339344597e+03+0.000000000000e+00j -4.048846605795e+02+0.000000000000e+00j 1.167708252121e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153082e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j -2.133281238364e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 2.292540364990e+03+0.000000000000e+00j -1.439197506316e+03+0.000000000000e+00j -1.815457579598e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 3.326019148229e+03+0.000000000000e+00j -1.187104038179e-13+0.000000000000e+00j 2.477472180394e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 3.069970706102e+03+0.000000000000e+00j 3.503793619804e-13+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 3.909325828790e+03+0.000000000000e+00j 4.211431183806e-13+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 3.358198488067e+03+0.000000000000e+00j -6.981269318878e-14+0.000000000000e+00j 7.381782677602e-14+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 3.358198488046e+03+0.000000000000e+00j -6.981269318847e-14+0.000000000000e+00j 7.381782677551e-14+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 5.119264327847e+03+0.000000000000e+00j -1.064230214927e-13+0.000000000000e+00j 1.125284788005e-13+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 3.621818540520e+03+0.000000000000e+00j 1.906161083847e+02+0.000000000000e+00j 1.906161083847e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 3.298148639026e+03+0.000000000000e+00j 4.960658211791e+02+0.000000000000e+00j 4.960658211791e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 4.812325680560e+03+0.000000000000e+00j 2.410990334911e+03+0.000000000000e+00j 2.410990334911e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 1.595448846500e+03+0.000000000000e+00j 1.595448846500e+03+0.000000000000e+00j 1.595448846500e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 1.595448846500e+03+0.000000000000e+00j 1.595448846500e+03+0.000000000000e+00j 1.595448846500e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234903e+00 3.544786741863e+03+0.000000000000e+00j 3.544786741863e+03+0.000000000000e+00j 3.544786741863e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 8.010663469957e+02+0.000000000000e+00j 1.677827869084e+03+0.000000000000e+00j 1.677827869084e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 -1.061468362371e+03+0.000000000000e+00j 2.675742073394e+03+0.000000000000e+00j 2.675742073394e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 1.982424451106e+03+0.000000000000e+00j 3.295829288942e+03+0.000000000000e+00j 3.295829288942e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 -7.165411615119e-14+0.000000000000e+00j 1.629999833649e+03+0.000000000000e+00j 1.629999833649e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 -1.173166631837e-13+0.000000000000e+00j 2.668739100343e+03+0.000000000000e+00j 2.668739100343e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 -9.845530713205e-14+0.000000000000e+00j 2.239677814254e+03+0.000000000000e+00j 2.239677814254e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 -6.848654362995e+01+0.000000000000e+00j 1.362258017175e+03+0.000000000000e+00j 1.362258017175e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 1.978995825498e+03+0.000000000000e+00j 2.277392898260e+03+0.000000000000e+00j 2.277392898260e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 -1.522129397379e+03+0.000000000000e+00j 9.309665228146e+02+0.000000000000e+00j 9.309665228146e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 3.903028684352e+02+0.000000000000e+00j 9.813960230264e+02+0.000000000000e+00j 9.813960230264e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 3.181897710263e+03+0.000000000000e+00j 1.439610072411e+03+0.000000000000e+00j 1.439610072411e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 -1.483189426185e+03+0.000000000000e+00j -1.539717814987e+02+0.000000000000e+00j -1.539717814987e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 1.170914963942e+03+0.000000000000e+00j 5.511984988163e+02+0.000000000000e+00j 5.511984988163e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 3.520407372794e+03+0.000000000000e+00j 4.701433168860e+02+0.000000000000e+00j 4.701433168860e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 -1.570279330093e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 2.058840261207e+03+0.000000000000e+00j 1.611704542722e+02+0.000000000000e+00j 1.611704542722e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 3.440855856625e+03+0.000000000000e+00j -2.103459517991e+02+0.000000000000e+00j -2.103459517991e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 1.749125406727e+03+0.000000000000e+00j -1.305283557965e+03+0.000000000000e+00j -1.305283557965e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 2.849906817861e+03+0.000000000000e+00j -6.887815764371e+01+0.000000000000e+00j -6.887815764371e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 3.298255165074e+03+0.000000000000e+00j -2.907876484989e+02+0.000000000000e+00j -2.907876484989e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 3.703285199893e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 2.849906817858e+03+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 3.298255165072e+03+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 3.703285199892e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 3.326019148224e+03+0.000000000000e+00j -1.957704712401e-14+0.000000000000e+00j -2.477472180376e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 3.069970706092e+03+0.000000000000e+00j -4.780209673019e-13+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 3.909325828783e+03+0.000000000000e+00j -5.836829835087e-13+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 1.677827869084e+03+0.000000000000e+00j 8.010663469957e+02+0.000000000000e+00j 1.677827869084e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 2.675742073394e+03+0.000000000000e+00j -1.061468362371e+03+0.000000000000e+00j 2.675742073394e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 3.295829288942e+03+0.000000000000e+00j 1.982424451106e+03+0.000000000000e+00j 3.295829288942e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 3.541150241892e+02+0.000000000000e+00j 3.541150241892e+02+0.000000000000e+00j 3.270970228798e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003555e+02+0.000000000000e+00j 4.336803003555e+02+0.000000000000e+00j 2.570858259189e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 2.466222371692e+03+0.000000000000e+00j 2.466222371692e+03+0.000000000000e+00j 3.141814155950e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 4.048846605956e+02+0.000000000000e+00j -1.167708252118e+02+0.000000000000e+00j 2.855339344593e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -1.271754473739e+03+0.000000000000e+00j 2.133281238363e+03+0.000000000000e+00j 2.754226153073e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 1.439197506327e+03+0.000000000000e+00j 1.815457579586e+03+0.000000000000e+00j 2.292540364973e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -5.962859034522e-14+0.000000000000e+00j 5.517436734186e+01+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -1.022625265083e-13+0.000000000000e+00j 2.407984538040e+03+0.000000000000e+00j 2.244897517877e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -3.590370693328e-14+0.000000000000e+00j 6.727877776834e+02+0.000000000000e+00j 9.608585950688e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 3.405516824148e+02+0.000000000000e+00j -1.368428956439e+01+0.000000000000e+00j 2.228955124172e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 2.155507627740e+03+0.000000000000e+00j 1.664544017633e+03+0.000000000000e+00j 1.737759702190e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -1.487864010841e+03+0.000000000000e+00j -8.232383415556e+01+0.000000000000e+00j -4.074490724521e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804895e+03+0.000000000000e+00j 7.962977578280e+00+0.000000000000e+00j 1.436326007860e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 2.773373845625e+03+0.000000000000e+00j -2.209454667356e+02+0.000000000000e+00j 9.408488419984e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -9.858366119372e+02+0.000000000000e+00j -5.737601261432e+01+0.000000000000e+00j -9.265906162296e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 2.297162805671e+03+0.000000000000e+00j 2.235944633121e+02+0.000000000000e+00j 4.109790152451e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 2.349960447270e+03+0.000000000000e+00j -1.651408145570e+03+0.000000000000e+00j 3.866751154420e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 8.193662174821e+02+0.000000000000e+00j -3.249726472808e+02+0.000000000000e+00j -7.231958063048e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 2.901107133228e+03+0.000000000000e+00j 3.958756311563e+02+0.000000000000e+00j 7.247222087635e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 2.455785279116e+03+0.000000000000e+00j -1.768140685534e+03+0.000000000000e+00j 1.511537500763e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 2.557589353136e+03+0.000000000000e+00j -9.018856377917e+02+0.000000000000e+00j 3.639464745298e-14+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 2.058840261207e+03+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 3.440855856631e+03+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.749125406728e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 2.855339344599e+03+0.000000000000e+00j -4.048846605891e+02+0.000000000000e+00j -1.167708252139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153072e+03+0.000000000000e+00j 1.271754473744e+03+0.000000000000e+00j 2.133281238353e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 2.292540364986e+03+0.000000000000e+00j -1.439197506310e+03+0.000000000000e+00j 1.815457579590e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 1.629999833649e+03+0.000000000000e+00j -3.609658300711e-13+0.000000000000e+00j 1.629999833649e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 2.668739100343e+03+0.000000000000e+00j -5.909961490252e-13+0.000000000000e+00j 2.668739100343e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 2.239677814254e+03+0.000000000000e+00j -4.959799041839e-13+0.000000000000e+00j 2.239677814254e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -1.167708252118e+02+0.000000000000e+00j 4.048846605956e+02+0.000000000000e+00j 2.855339344593e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 2.133281238363e+03+0.000000000000e+00j -1.271754473739e+03+0.000000000000e+00j 2.754226153073e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 1.815457579586e+03+0.000000000000e+00j 1.439197506327e+03+0.000000000000e+00j 2.292540364973e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 -1.611704542705e+02+0.000000000000e+00j -1.611704542705e+02+0.000000000000e+00j 2.058840261201e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 2.103459518126e+02+0.000000000000e+00j 2.103459518126e+02+0.000000000000e+00j 3.440855856623e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 1.305283557962e+03+0.000000000000e+00j 1.305283557962e+03+0.000000000000e+00j 1.749125406708e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -4.109790152351e+02+0.000000000000e+00j -2.235944633120e+02+0.000000000000e+00j 2.297162805672e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -3.866751154302e+02+0.000000000000e+00j 1.651408145573e+03+0.000000000000e+00j 2.349960447269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 7.231958063040e+02+0.000000000000e+00j 3.249726472674e+02+0.000000000000e+00j 8.193662174715e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -4.707944915710e-14+0.000000000000e+00j -1.937303341824e+02+0.000000000000e+00j 2.336191913904e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -7.722889357983e-14+0.000000000000e+00j 2.256075560900e+03+0.000000000000e+00j 1.257665397688e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 2.479616510532e-14+0.000000000000e+00j -8.541533926821e+02+0.000000000000e+00j -2.739789173907e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 1.391753177029e+03+0.000000000000e+00j -3.073802396661e-13+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 1.140089543169e+03+0.000000000000e+00j -2.517982375066e-13+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -1.212226534588e+03+0.000000000000e+00j 2.677302907453e-13+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 2.336191913897e+03+0.000000000000e+00j 1.937303341826e+02+0.000000000000e+00j 5.561117454149e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 1.257665397683e+03+0.000000000000e+00j -2.256075560905e+03+0.000000000000e+00j -2.194643013012e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -2.739789173931e+02+0.000000000000e+00j 8.541533926711e+02+0.000000000000e+00j 1.275303382656e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 2.297162805673e+03+0.000000000000e+00j 2.235944633154e+02+0.000000000000e+00j -4.109790152323e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 2.349960447274e+03+0.000000000000e+00j -1.651408145580e+03+0.000000000000e+00j -3.866751154334e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 8.193662174838e+02+0.000000000000e+00j -3.249726472798e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 1.170914963950e+03+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 3.520407372805e+03+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -1.570279330060e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.107875696041e+03+0.000000000000e+00j 2.473510677568e+01+0.000000000000e+00j -1.347963952068e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 2.537027100001e+03+0.000000000000e+00j 2.100426273078e+03+0.000000000000e+00j 1.383957859722e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 5.951882676219e+02+0.000000000000e+00j -1.600399579641e+03+0.000000000000e+00j 9.430387165091e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 1.362258017175e+03+0.000000000000e+00j -6.848654362996e+01+0.000000000000e+00j 1.362258017175e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 2.277392898260e+03+0.000000000000e+00j 1.978995825498e+03+0.000000000000e+00j 2.277392898260e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 9.309665228146e+02+0.000000000000e+00j -1.522129397379e+03+0.000000000000e+00j 9.309665228146e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 5.517436734186e+01+0.000000000000e+00j -5.329877015703e-13+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 2.407984538040e+03+0.000000000000e+00j -4.991946203969e-13+0.000000000000e+00j 2.244897517877e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 6.727877776834e+02+0.000000000000e+00j -2.062249677019e-13+0.000000000000e+00j 9.608585950688e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -2.235944633120e+02+0.000000000000e+00j -4.109790152351e+02+0.000000000000e+00j 2.297162805672e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 1.651408145573e+03+0.000000000000e+00j -3.866751154302e+02+0.000000000000e+00j 2.349960447269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 3.249726472674e+02+0.000000000000e+00j 7.231958063040e+02+0.000000000000e+00j 8.193662174715e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 -5.453827687681e+02+0.000000000000e+00j -5.453827687681e+02+0.000000000000e+00j 1.132852811781e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 9.798348926316e+02+0.000000000000e+00j 9.798348926316e+02+0.000000000000e+00j 2.474222927435e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 -2.890782383714e+01+0.000000000000e+00j -2.890782383714e+01+0.000000000000e+00j 3.169800657750e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -1.565824031930e+03+0.000000000000e+00j 3.405764006429e+02+0.000000000000e+00j 8.165966244859e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.466859757958e+03+0.000000000000e+00j 1.674226432371e+03+0.000000000000e+00j 1.224827992548e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -2.837982416495e+02+0.000000000000e+00j -1.176647268028e+03+0.000000000000e+00j -1.160191764816e+02+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -6.603071664823e-15+0.000000000000e+00j 3.003939055115e+02+0.000000000000e+00j 6.603071664823e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -4.844139311901e-14+0.000000000000e+00j 2.203746984141e+03+0.000000000000e+00j 4.844139311901e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 4.182442897778e-14+0.000000000000e+00j -1.902721067418e+03+0.000000000000e+00j -4.182442897819e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 1.391753177018e+03+0.000000000000e+00j 2.495146680563e-13+0.000000000000e+00j -1.391753177018e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 1.140089543166e+03+0.000000000000e+00j 2.043962022971e-13+0.000000000000e+00j -1.140089543166e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 -1.212226534592e+03+0.000000000000e+00j -2.173289821661e-13+0.000000000000e+00j 1.212226534592e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 1.222381804894e+03+0.000000000000e+00j 7.962977576043e+00+0.000000000000e+00j -1.436326007861e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 2.773373845637e+03+0.000000000000e+00j -2.209454667325e+02+0.000000000000e+00j -9.408488419795e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -9.858366119346e+02+0.000000000000e+00j -5.737601261443e+01+0.000000000000e+00j 9.265906162319e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 3.903028684481e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 3.181897710267e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.483189426179e+03+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 1.029630366773e+03+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 4.526538638363e-14+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 2.417747879248e+03+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.062908549185e-13+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -8.075401156421e+02+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j -3.550168733787e-14+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 9.813960230264e+02+0.000000000000e+00j 3.903028684352e+02+0.000000000000e+00j 9.813960230264e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 1.439610072411e+03+0.000000000000e+00j 3.181897710263e+03+0.000000000000e+00j 1.439610072411e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 -1.539717814987e+02+0.000000000000e+00j -1.483189426185e+03+0.000000000000e+00j -1.539717814987e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509313e+00 -1.368428956439e+01+0.000000000000e+00j 3.405516824148e+02+0.000000000000e+00j 2.228955124172e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 1.664544017633e+03+0.000000000000e+00j 2.155507627740e+03+0.000000000000e+00j 1.737759702190e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -8.232383415556e+01+0.000000000000e+00j -1.487864010841e+03+0.000000000000e+00j -4.074490724521e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -1.937303341824e+02+0.000000000000e+00j -4.633734936205e-13+0.000000000000e+00j 2.336191913904e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 2.256075560900e+03+0.000000000000e+00j -2.985215235111e-13+0.000000000000e+00j 1.257665397688e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -8.541533926821e+02+0.000000000000e+00j 7.257161023991e-14+0.000000000000e+00j -2.739789173907e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 3.405764006429e+02+0.000000000000e+00j -1.565824031930e+03+0.000000000000e+00j 8.165966244859e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.674226432371e+03+0.000000000000e+00j 1.466859757958e+03+0.000000000000e+00j 1.224827992548e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -1.176647268028e+03+0.000000000000e+00j -2.837982416495e+02+0.000000000000e+00j -1.160191764816e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 -6.817503300509e+02+0.000000000000e+00j -6.817503300509e+02+0.000000000000e+00j -2.997162195563e-14+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 1.880020318391e+03+0.000000000000e+00j 1.880020318391e+03+0.000000000000e+00j 8.265087051369e-14+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 -1.091389803073e+03+0.000000000000e+00j -1.091389803073e+03+0.000000000000e+00j -4.798050128053e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -1.565824031931e+03+0.000000000000e+00j 3.405764006424e+02+0.000000000000e+00j -8.165966244843e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.466859757945e+03+0.000000000000e+00j 1.674226432366e+03+0.000000000000e+00j -1.224827992545e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -2.837982416423e+02+0.000000000000e+00j -1.176647268018e+03+0.000000000000e+00j 1.160191764878e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 5.559636815412e-14+0.000000000000e+00j -1.937303341826e+02+0.000000000000e+00j -2.336191913897e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -2.195440099959e-14+0.000000000000e+00j 2.256075560905e+03+0.000000000000e+00j -1.257665397683e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 1.275477025879e-14+0.000000000000e+00j -8.541533926711e+02+0.000000000000e+00j 2.739789173931e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 3.405516824120e+02+0.000000000000e+00j -1.368428956505e+01+0.000000000000e+00j -2.228955124173e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 2.155507627736e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -1.487864010833e+03+0.000000000000e+00j -8.232383415397e+01+0.000000000000e+00j 4.074490724537e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -6.848654362207e+01+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 1.978995825490e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -1.522129397376e+03+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.473510678253e+01+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 1.347963952064e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 2.100426273090e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j -1.383957859744e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -1.600399579637e+03+0.000000000000e+00j 5.951882676209e+02+0.000000000000e+00j -9.430387165139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 5.511984988163e+02+0.000000000000e+00j 1.170914963942e+03+0.000000000000e+00j 5.511984988163e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 4.701433168860e+02+0.000000000000e+00j 3.520407372794e+03+0.000000000000e+00j 4.701433168860e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 -9.131359997239e+02+0.000000000000e+00j -1.570279330093e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977578282e+00+0.000000000000e+00j 1.222381804895e+03+0.000000000000e+00j 1.436326007860e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -2.209454667356e+02+0.000000000000e+00j 2.773373845625e+03+0.000000000000e+00j 9.408488419985e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -5.737601261432e+01+0.000000000000e+00j -9.858366119372e+02+0.000000000000e+00j -9.265906162296e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -6.035536967110e-14+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -4.944161577763e-14+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 5.256993971911e-14+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 3.003939055115e+02+0.000000000000e+00j -6.244808826969e-15+0.000000000000e+00j 6.603071665027e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 2.203746984141e+03+0.000000000000e+00j -4.581310861134e-14+0.000000000000e+00j 4.844139311942e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -1.902721067418e+03+0.000000000000e+00j 3.955516107147e-14+0.000000000000e+00j -4.182442897778e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 3.405764006424e+02+0.000000000000e+00j -1.565824031931e+03+0.000000000000e+00j -8.165966244843e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.674226432366e+03+0.000000000000e+00j 1.466859757945e+03+0.000000000000e+00j -1.224827992545e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -1.176647268018e+03+0.000000000000e+00j -2.837982416423e+02+0.000000000000e+00j 1.160191764878e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 -5.453827687685e+02+0.000000000000e+00j -5.453827687685e+02+0.000000000000e+00j -1.132852811782e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 9.798348926173e+02+0.000000000000e+00j 9.798348926173e+02+0.000000000000e+00j -2.474222927432e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 -2.890782382813e+01+0.000000000000e+00j -2.890782382813e+01+0.000000000000e+00j -3.169800657809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -4.109790152451e+02+0.000000000000e+00j -2.235944633121e+02+0.000000000000e+00j -2.297162805671e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -3.866751154420e+02+0.000000000000e+00j 1.651408145570e+03+0.000000000000e+00j -2.349960447270e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 7.231958063048e+02+0.000000000000e+00j 3.249726472808e+02+0.000000000000e+00j -8.193662174821e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 5.720297321478e-14+0.000000000000e+00j 5.517436734322e+01+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -3.599105041853e-15+0.000000000000e+00j 2.407984538050e+03+0.000000000000e+00j -2.244897517883e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 6.326103461314e-15+0.000000000000e+00j 6.727877776973e+02+0.000000000000e+00j -9.608585950775e+02+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 -5.165330952277e-18+0.000000000000e+00j 1.629999833653e+03+0.000000000000e+00j -1.629999833653e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 -8.457007414379e-18+0.000000000000e+00j 2.668739100354e+03+0.000000000000e+00j -2.668739100354e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 -7.097348661245e-18+0.000000000000e+00j 2.239677814266e+03+0.000000000000e+00j -2.239677814266e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -4.048846605795e+02+0.000000000000e+00j 2.855339344597e+03+0.000000000000e+00j 1.167708252121e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473743e+03+0.000000000000e+00j 2.754226153082e+03+0.000000000000e+00j -2.133281238364e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.439197506316e+03+0.000000000000e+00j 2.292540364990e+03+0.000000000000e+00j -1.815457579598e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 1.611704542722e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j 1.611704542722e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 -2.103459517990e+02+0.000000000000e+00j 3.440855856625e+03+0.000000000000e+00j -2.103459517990e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 -1.305283557965e+03+0.000000000000e+00j 1.749125406727e+03+0.000000000000e+00j -1.305283557965e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 2.235944633121e+02+0.000000000000e+00j 2.297162805671e+03+0.000000000000e+00j 4.109790152452e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -1.651408145570e+03+0.000000000000e+00j 2.349960447270e+03+0.000000000000e+00j 3.866751154420e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -3.249726472808e+02+0.000000000000e+00j 8.193662174821e+02+0.000000000000e+00j -7.231958063048e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 1.937303341826e+02+0.000000000000e+00j 2.336191913897e+03+0.000000000000e+00j 5.561117454149e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -2.256075560905e+03+0.000000000000e+00j 1.257665397683e+03+0.000000000000e+00j -2.194643013012e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 8.541533926711e+02+0.000000000000e+00j -2.739789173931e+02+0.000000000000e+00j 1.275303382656e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 -8.299326877272e-16+0.000000000000e+00j 1.391753177018e+03+0.000000000000e+00j -1.391753177018e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 -6.798601896037e-16+0.000000000000e+00j 1.140089543166e+03+0.000000000000e+00j -1.140089543166e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 7.228770464487e-16+0.000000000000e+00j -1.212226534592e+03+0.000000000000e+00j 1.212226534592e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -1.937303341826e+02+0.000000000000e+00j 4.714283101705e-13+0.000000000000e+00j -2.336191913897e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 2.256075560905e+03+0.000000000000e+00j 2.047196166226e-13+0.000000000000e+00j -1.257665397683e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -8.541533926711e+02+0.000000000000e+00j -3.705807585546e-14+0.000000000000e+00j 2.739789173931e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -2.235944633121e+02+0.000000000000e+00j -4.109790152451e+02+0.000000000000e+00j -2.297162805671e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 1.651408145570e+03+0.000000000000e+00j -3.866751154420e+02+0.000000000000e+00j -2.349960447270e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 3.249726472808e+02+0.000000000000e+00j 7.231958063048e+02+0.000000000000e+00j -8.193662174821e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 -1.611704542722e+02+0.000000000000e+00j -1.611704542722e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 2.103459517990e+02+0.000000000000e+00j 2.103459517990e+02+0.000000000000e+00j -3.440855856625e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 1.305283557965e+03+0.000000000000e+00j 1.305283557965e+03+0.000000000000e+00j -1.749125406727e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 4.048846605795e+02+0.000000000000e+00j -1.167708252121e+02+0.000000000000e+00j -2.855339344597e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473743e+03+0.000000000000e+00j 2.133281238364e+03+0.000000000000e+00j -2.754226153082e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.439197506316e+03+0.000000000000e+00j 1.815457579598e+03+0.000000000000e+00j -2.292540364990e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 8.010663469828e+02+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -1.061468362370e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 1.982424451087e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -7.855473538139e-14+0.000000000000e+00j 3.326019148229e+03+0.000000000000e+00j 2.477472180394e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -2.198768350179e-14+0.000000000000e+00j 3.069970706102e+03+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -3.074882683382e-14+0.000000000000e+00j 3.909325828790e+03+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 -6.887815764371e+01+0.000000000000e+00j 2.849906817861e+03+0.000000000000e+00j -6.887815764371e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 -2.907876484989e+02+0.000000000000e+00j 3.298255165074e+03+0.000000000000e+00j -2.907876484989e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 -1.173822321981e+03+0.000000000000e+00j 3.703285199893e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 3.958756311563e+02+0.000000000000e+00j 2.901107133228e+03+0.000000000000e+00j 7.247222087635e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.768140685534e+03+0.000000000000e+00j 2.455785279116e+03+0.000000000000e+00j 1.511537500763e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -9.018856377917e+02+0.000000000000e+00j 2.557589353136e+03+0.000000000000e+00j 3.639464745298e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 2.235944633154e+02+0.000000000000e+00j 2.297162805673e+03+0.000000000000e+00j -4.109790152323e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -1.651408145580e+03+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j -3.866751154334e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -3.249726472798e+02+0.000000000000e+00j 8.193662174838e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 7.962977576046e+00+0.000000000000e+00j 1.222381804894e+03+0.000000000000e+00j -1.436326007861e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -2.209454667325e+02+0.000000000000e+00j 2.773373845637e+03+0.000000000000e+00j -9.408488419795e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -5.737601261443e+01+0.000000000000e+00j -9.858366119346e+02+0.000000000000e+00j 9.265906162319e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -1.368428956506e+01+0.000000000000e+00j 3.405516824120e+02+0.000000000000e+00j -2.228955124173e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 1.664544017648e+03+0.000000000000e+00j 2.155507627736e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -8.232383415397e+01+0.000000000000e+00j -1.487864010833e+03+0.000000000000e+00j 4.074490724537e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 5.517436734321e+01+0.000000000000e+00j 5.306936911409e-13+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 2.407984538050e+03+0.000000000000e+00j 3.990767230459e-13+0.000000000000e+00j -2.244897517883e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 6.727877776973e+02+0.000000000000e+00j 1.782521561667e-13+0.000000000000e+00j -9.608585950775e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -1.167708252122e+02+0.000000000000e+00j 4.048846605795e+02+0.000000000000e+00j -2.855339344597e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238364e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j -2.754226153082e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.815457579598e+03+0.000000000000e+00j 1.439197506316e+03+0.000000000000e+00j -2.292540364990e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 3.541150241790e+02+0.000000000000e+00j 3.541150241790e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 4.336803003525e+02+0.000000000000e+00j 4.336803003525e+02+0.000000000000e+00j -2.570858259196e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 2.466222371691e+03+0.000000000000e+00j 2.466222371691e+03+0.000000000000e+00j -3.141814155966e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 1.195877589768e+03+0.000000000000e+00j 1.195877589768e+03+0.000000000000e+00j -1.195877589768e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.541150241882e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003413e+02+0.000000000000e+00j 2.570858259195e+03+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 2.466222371689e+03+0.000000000000e+00j 3.141814155967e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 6.887815763755e+01+0.000000000000e+00j 2.849906817858e+03+0.000000000000e+00j -6.887815763755e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 2.907876485096e+02+0.000000000000e+00j 3.298255165072e+03+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 1.173822321981e+03+0.000000000000e+00j 3.703285199892e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 -5.659317535582e-14+0.000000000000e+00j 2.574596465599e+03+0.000000000000e+00j 5.659317535603e-14+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 -5.659317535593e-14+0.000000000000e+00j 2.574596465595e+03+0.000000000000e+00j 5.659317535590e-14+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 -7.609702299110e-14+0.000000000000e+00j 3.461886087898e+03+0.000000000000e+00j 7.609702299089e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.955720814232e+02+0.000000000000e+00j 1.931571181618e+03+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -8.360286832812e+02+0.000000000000e+00j 2.327628679175e+03+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -1.902976282779e+02+0.000000000000e+00j 2.153754821739e+03+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 5.453827687707e+02+0.000000000000e+00j 1.132852811783e+03+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -9.798348926358e+02+0.000000000000e+00j 2.474222927441e+03+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 2.890782382811e+01+0.000000000000e+00j 3.169800657838e+02+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 9.221540938131e+02+0.000000000000e+00j 4.132400085451e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 1.118741331148e+02+0.000000000000e+00j 2.947829831354e+03+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -4.932098470677e+00+0.000000000000e+00j -1.739754380415e+03+0.000000000000e+00j 4.932098470677e+00+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 1.218893138247e+03+0.000000000000e+00j 2.192471663369e-13+0.000000000000e+00j -1.218893138247e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 2.067573412721e+03+0.000000000000e+00j 3.719026694865e-13+0.000000000000e+00j -2.067573412721e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 -4.039473572554e+02+0.000000000000e+00j -7.265962096967e-14+0.000000000000e+00j 4.039473572554e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 1.362258017177e+03+0.000000000000e+00j 6.848654362207e+01+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 2.277392898273e+03+0.000000000000e+00j -1.978995825490e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 9.309665228201e+02+0.000000000000e+00j 1.522129397376e+03+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 1.287469747220e+03+0.000000000000e+00j 6.948254471676e+02+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 2.218454428379e+03+0.000000000000e+00j -1.725508655138e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.011916748813e+03+0.000000000000e+00j 2.139081422557e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.270970228804e+03+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 2.570858259195e+03+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 3.141814155967e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 1.677827869086e+03+0.000000000000e+00j 1.677827869086e+03+0.000000000000e+00j -8.010663469824e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 2.675742073388e+03+0.000000000000e+00j 2.675742073388e+03+0.000000000000e+00j 1.061468362377e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 3.295829288950e+03+0.000000000000e+00j 3.295829288950e+03+0.000000000000e+00j -1.982424451074e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -2.477472180376e+02+0.000000000000e+00j 3.326019148224e+03+0.000000000000e+00j 6.766465559394e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 2.070280719288e+03+0.000000000000e+00j 3.069970706092e+03+0.000000000000e+00j 1.129898041029e-13+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 2.511191789093e+03+0.000000000000e+00j 3.909325828783e+03+0.000000000000e+00j 1.411318178507e-13+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 6.887815764670e+01+0.000000000000e+00j 2.849906817857e+03+0.000000000000e+00j 6.887815764670e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 2.907876484991e+02+0.000000000000e+00j 3.298255165069e+03+0.000000000000e+00j 2.907876484991e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 1.173822321991e+03+0.000000000000e+00j 3.703285199880e+03+0.000000000000e+00j 1.173822321991e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -5.507094693915e-14+0.000000000000e+00j 2.901107133229e+03+0.000000000000e+00j -3.958756311590e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -9.283650258301e-14+0.000000000000e+00j 2.455785279109e+03+0.000000000000e+00j 1.768140685530e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -7.603830776159e-14+0.000000000000e+00j 2.557589353128e+03+0.000000000000e+00j 9.018856377877e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 4.109790152335e+02+0.000000000000e+00j 2.297162805675e+03+0.000000000000e+00j -2.235944633189e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 3.866751154283e+02+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 1.651408145566e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -7.231958063081e+02+0.000000000000e+00j 8.193662174822e+02+0.000000000000e+00j 3.249726472726e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007856e+03+0.000000000000e+00j 1.222381804899e+03+0.000000000000e+00j -7.962977582707e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 9.408488419744e+02+0.000000000000e+00j 2.773373845643e+03+0.000000000000e+00j 2.209454667211e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -9.265906162360e+02+0.000000000000e+00j -9.858366119327e+02+0.000000000000e+00j 5.737601261161e+01+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 2.228955124167e+03+0.000000000000e+00j 3.405516824254e+02+0.000000000000e+00j 1.368428955981e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 1.737759702183e+03+0.000000000000e+00j 2.155507627743e+03+0.000000000000e+00j -1.664544017651e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -4.074490724557e+02+0.000000000000e+00j -1.487864010830e+03+0.000000000000e+00j 8.232383415304e+01+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 2.658278854984e+03+0.000000000000e+00j -4.422353879147e-14+0.000000000000e+00j -5.517436734322e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 2.244897517883e+03+0.000000000000e+00j 4.350958449511e-13+0.000000000000e+00j -2.407984538050e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 9.608585950775e+02+0.000000000000e+00j 1.146293253740e-13+0.000000000000e+00j -6.727877776973e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 2.855339344604e+03+0.000000000000e+00j 4.048846605874e+02+0.000000000000e+00j 1.167708252163e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153081e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j -2.133281238368e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 2.292540364991e+03+0.000000000000e+00j 1.439197506317e+03+0.000000000000e+00j -1.815457579596e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 2.849906817858e+03+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 3.298255165072e+03+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 3.703285199892e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 3.326019148224e+03+0.000000000000e+00j -2.477472180376e+02+0.000000000000e+00j 6.766465559394e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 3.069970706092e+03+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 1.129898041029e-13+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 3.909325828783e+03+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 1.411318178507e-13+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 1.677827869084e+03+0.000000000000e+00j 1.677827869084e+03+0.000000000000e+00j 8.010663469957e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 2.675742073394e+03+0.000000000000e+00j 2.675742073394e+03+0.000000000000e+00j -1.061468362371e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 3.295829288942e+03+0.000000000000e+00j 3.295829288942e+03+0.000000000000e+00j 1.982424451106e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 3.541150241892e+02+0.000000000000e+00j 3.270970228798e+03+0.000000000000e+00j 3.541150241892e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003555e+02+0.000000000000e+00j 2.570858259189e+03+0.000000000000e+00j 4.336803003555e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 2.466222371692e+03+0.000000000000e+00j 3.141814155950e+03+0.000000000000e+00j 2.466222371692e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 4.048846605956e+02+0.000000000000e+00j 2.855339344593e+03+0.000000000000e+00j -1.167708252118e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -1.271754473739e+03+0.000000000000e+00j 2.754226153073e+03+0.000000000000e+00j 2.133281238363e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 1.439197506327e+03+0.000000000000e+00j 2.292540364973e+03+0.000000000000e+00j 1.815457579586e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -5.964508837937e-14+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 5.517436734186e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -1.022614928906e-13+0.000000000000e+00j 2.244897517877e+03+0.000000000000e+00j 2.407984538040e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -3.590553267715e-14+0.000000000000e+00j 9.608585950688e+02+0.000000000000e+00j 6.727877776834e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 3.405516824148e+02+0.000000000000e+00j 2.228955124172e+03+0.000000000000e+00j -1.368428956439e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 2.155507627740e+03+0.000000000000e+00j 1.737759702190e+03+0.000000000000e+00j 1.664544017633e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -1.487864010841e+03+0.000000000000e+00j -4.074490724521e+02+0.000000000000e+00j -8.232383415556e+01+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804895e+03+0.000000000000e+00j 1.436326007860e+03+0.000000000000e+00j 7.962977578284e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 2.773373845625e+03+0.000000000000e+00j 9.408488419984e+02+0.000000000000e+00j -2.209454667356e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -9.858366119372e+02+0.000000000000e+00j -9.265906162296e+02+0.000000000000e+00j -5.737601261432e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 2.297162805671e+03+0.000000000000e+00j 4.109790152451e+02+0.000000000000e+00j 2.235944633121e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 2.349960447270e+03+0.000000000000e+00j 3.866751154420e+02+0.000000000000e+00j -1.651408145570e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 8.193662174821e+02+0.000000000000e+00j -7.231958063048e+02+0.000000000000e+00j -3.249726472808e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 2.901107133228e+03+0.000000000000e+00j -1.395130085044e-13+0.000000000000e+00j 3.958756311563e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 2.455785279116e+03+0.000000000000e+00j 3.026984737295e-13+0.000000000000e+00j -1.768140685534e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 2.557589353136e+03+0.000000000000e+00j 1.272708246782e-13+0.000000000000e+00j -9.018856377917e+02+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 2.574596465599e+03+0.000000000000e+00j -5.352259962500e-14+0.000000000000e+00j 5.659317535582e-14+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 2.574596465595e+03+0.000000000000e+00j -5.352259962481e-14+0.000000000000e+00j 5.659317535593e-14+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 3.461886087898e+03+0.000000000000e+00j -7.196822706245e-14+0.000000000000e+00j 7.609702299110e-14+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 2.849906817857e+03+0.000000000000e+00j 6.887815764670e+01+0.000000000000e+00j 6.887815764670e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 3.298255165069e+03+0.000000000000e+00j 2.907876484991e+02+0.000000000000e+00j 2.907876484991e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 3.703285199880e+03+0.000000000000e+00j 1.173822321991e+03+0.000000000000e+00j 1.173822321991e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 3.270970228798e+03+0.000000000000e+00j 3.541150241892e+02+0.000000000000e+00j 3.541150241892e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 2.570858259189e+03+0.000000000000e+00j 4.336803003555e+02+0.000000000000e+00j 4.336803003555e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 3.141814155950e+03+0.000000000000e+00j 2.466222371692e+03+0.000000000000e+00j 2.466222371692e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175701e+00 1.195877589777e+03+0.000000000000e+00j 1.195877589777e+03+0.000000000000e+00j 1.195877589777e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175701e+00 1.195877589777e+03+0.000000000000e+00j 1.195877589777e+03+0.000000000000e+00j 1.195877589777e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501187e+00 2.632351875665e+03+0.000000000000e+00j 2.632351875665e+03+0.000000000000e+00j 2.632351875665e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 6.948254471858e+02+0.000000000000e+00j 1.287469747217e+03+0.000000000000e+00j 1.287469747217e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 -1.725508655129e+03+0.000000000000e+00j 2.218454428373e+03+0.000000000000e+00j 2.218454428373e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 2.139081422565e+03+0.000000000000e+00j 2.011916748796e+03+0.000000000000e+00j 2.011916748796e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 6.848654363584e+01+0.000000000000e+00j 1.362258017173e+03+0.000000000000e+00j 1.362258017173e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 -1.978995825481e+03+0.000000000000e+00j 2.277392898267e+03+0.000000000000e+00j 2.277392898267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 1.522129397386e+03+0.000000000000e+00j 9.309665228030e+02+0.000000000000e+00j 9.309665228030e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 -5.358203645235e-14+0.000000000000e+00j 1.218893138245e+03+0.000000000000e+00j 1.218893138245e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 -9.088966907112e-14+0.000000000000e+00j 2.067573412718e+03+0.000000000000e+00j 2.067573412718e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 1.775735816788e-14+0.000000000000e+00j -4.039473572620e+02+0.000000000000e+00j -4.039473572620e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 4.132400085402e+02+0.000000000000e+00j 9.221540938127e+02+0.000000000000e+00j 9.221540938127e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 2.947829831349e+03+0.000000000000e+00j 1.118741331224e+02+0.000000000000e+00j 1.118741331224e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 -1.739754380418e+03+0.000000000000e+00j -4.932098469478e+00+0.000000000000e+00j -4.932098469478e+00+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 1.132852811782e+03+0.000000000000e+00j 5.453827687685e+02+0.000000000000e+00j 5.453827687685e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 2.474222927432e+03+0.000000000000e+00j -9.798348926173e+02+0.000000000000e+00j -9.798348926173e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 3.169800657809e+02+0.000000000000e+00j 2.890782382813e+01+0.000000000000e+00j 2.890782382813e+01+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 1.931571181623e+03+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 2.327628679167e+03+0.000000000000e+00j -8.360286832711e+02+0.000000000000e+00j -8.360286832711e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 2.153754821741e+03+0.000000000000e+00j -1.902976282757e+02+0.000000000000e+00j -1.902976282757e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.931571181618e+03+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 2.327628679175e+03+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 2.153754821740e+03+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 2.901107133229e+03+0.000000000000e+00j 1.889232278849e-14+0.000000000000e+00j -3.958756311590e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 2.455785279109e+03+0.000000000000e+00j -4.048038048095e-13+0.000000000000e+00j 1.768140685530e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 2.557589353128e+03+0.000000000000e+00j -2.336089112722e-13+0.000000000000e+00j 9.018856377877e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 2.855339344593e+03+0.000000000000e+00j 4.048846605956e+02+0.000000000000e+00j -1.167708252118e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 2.754226153073e+03+0.000000000000e+00j -1.271754473739e+03+0.000000000000e+00j 2.133281238363e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 2.292540364973e+03+0.000000000000e+00j 1.439197506327e+03+0.000000000000e+00j 1.815457579586e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 1.287469747217e+03+0.000000000000e+00j 6.948254471858e+02+0.000000000000e+00j 1.287469747217e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 2.218454428373e+03+0.000000000000e+00j -1.725508655129e+03+0.000000000000e+00j 2.218454428373e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 2.011916748796e+03+0.000000000000e+00j 2.139081422565e+03+0.000000000000e+00j 2.011916748796e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 1.089702534039e+02+0.000000000000e+00j 1.089702534039e+02+0.000000000000e+00j 1.693883617047e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 -3.331454318132e+01+0.000000000000e+00j -3.331454318132e+01+0.000000000000e+00j 2.983841276852e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 1.792515640352e+03+0.000000000000e+00j 1.792515640352e+03+0.000000000000e+00j 1.492388034624e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -2.473510677022e+01+0.000000000000e+00j -1.347963952060e+02+0.000000000000e+00j 2.107875696037e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -2.100426273073e+03+0.000000000000e+00j 1.383957859739e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 1.600399579646e+03+0.000000000000e+00j 9.430387165019e+02+0.000000000000e+00j 5.951882676022e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -3.405516824124e+02+0.000000000000e+00j -1.368428956543e+01+0.000000000000e+00j 2.228955124171e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -2.155507627730e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 1.487864010835e+03+0.000000000000e+00j -8.232383416614e+01+0.000000000000e+00j -4.074490724641e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -4.208206821108e-14+0.000000000000e+00j -1.994915061874e+02+0.000000000000e+00j 2.114543049926e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 6.425857051679e-14+0.000000000000e+00j -1.407377764408e+03+0.000000000000e+00j -1.516378160767e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -6.832167937031e-14+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.161560904478e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 8.165966244843e+02+0.000000000000e+00j -3.405764006424e+02+0.000000000000e+00j 1.565824031931e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.224827992545e+03+0.000000000000e+00j -1.674226432366e+03+0.000000000000e+00j -1.466859757945e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -1.160191764878e+02+0.000000000000e+00j 1.176647268018e+03+0.000000000000e+00j 2.837982416423e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 1.738978129230e+03+0.000000000000e+00j -1.389460562305e+02+0.000000000000e+00j 3.517090809638e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 1.358509986833e+03+0.000000000000e+00j -1.627322748360e+03+0.000000000000e+00j -5.908874633701e-15+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.129334593096e+03+0.000000000000e+00j 4.535788174314e+02+0.000000000000e+00j 3.479461632554e-14+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 1.132852811783e+03+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 2.474222927441e+03+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 3.169800657838e+02+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 2.297162805675e+03+0.000000000000e+00j 4.109790152335e+02+0.000000000000e+00j -2.235944633189e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 2.349960447274e+03+0.000000000000e+00j 3.866751154283e+02+0.000000000000e+00j 1.651408145566e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 8.193662174822e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 3.249726472726e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 2.658278854984e+03+0.000000000000e+00j -6.630096222960e-14+0.000000000000e+00j 5.517436734185e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 2.244897517877e+03+0.000000000000e+00j -5.284329971235e-13+0.000000000000e+00j 2.407984538040e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 9.608585950688e+02+0.000000000000e+00j -1.545793917739e-13+0.000000000000e+00j 6.727877776834e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 1.362258017173e+03+0.000000000000e+00j 6.848654363585e+01+0.000000000000e+00j 1.362258017173e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 2.277392898267e+03+0.000000000000e+00j -1.978995825481e+03+0.000000000000e+00j 2.277392898267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 9.309665228030e+02+0.000000000000e+00j 1.522129397386e+03+0.000000000000e+00j 9.309665228030e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -1.347963952060e+02+0.000000000000e+00j -2.473510677021e+01+0.000000000000e+00j 2.107875696037e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 1.383957859739e+03+0.000000000000e+00j -2.100426273073e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 9.430387165019e+02+0.000000000000e+00j 1.600399579646e+03+0.000000000000e+00j 5.951882676022e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -5.511984988142e+02+0.000000000000e+00j -5.511984988142e+02+0.000000000000e+00j 1.170914963937e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 -4.701433168732e+02+0.000000000000e+00j -4.701433168732e+02+0.000000000000e+00j 3.520407372796e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 9.131359997229e+02+0.000000000000e+00j 9.131359997229e+02+0.000000000000e+00j -1.570279330276e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007859e+03+0.000000000000e+00j -7.962977575716e+00+0.000000000000e+00j 1.222381804892e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -9.408488419780e+02+0.000000000000e+00j 2.209454667337e+02+0.000000000000e+00j 2.773373845634e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 9.265906162318e+02+0.000000000000e+00j 5.737601260710e+01+0.000000000000e+00j -9.858366119468e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 -1.391753177029e+03+0.000000000000e+00j -2.495146680582e-13+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 -1.140089543169e+03+0.000000000000e+00j -2.043962022977e-13+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 1.212226534583e+03+0.000000000000e+00j 2.173289821645e-13+0.000000000000e+00j -1.212226534583e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 6.603071665027e-15+0.000000000000e+00j -3.003939055115e+02+0.000000000000e+00j -6.603071664925e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 4.844139311901e-14+0.000000000000e+00j -2.203746984141e+03+0.000000000000e+00j -4.844139311983e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -4.182442897778e-14+0.000000000000e+00j 1.902721067418e+03+0.000000000000e+00j 4.182442897737e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 8.165966244787e+02+0.000000000000e+00j -3.405764006383e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.224827992550e+03+0.000000000000e+00j -1.674226432375e+03+0.000000000000e+00j 1.466859757964e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -1.160191764851e+02+0.000000000000e+00j 1.176647268019e+03+0.000000000000e+00j -2.837982416353e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 4.132400085451e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 2.947829831354e+03+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -1.739754380415e+03+0.000000000000e+00j -4.932098470680e+00+0.000000000000e+00j 4.932098470680e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804899e+03+0.000000000000e+00j 1.436326007856e+03+0.000000000000e+00j -7.962977582709e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.773373845643e+03+0.000000000000e+00j 9.408488419744e+02+0.000000000000e+00j 2.209454667211e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -9.858366119327e+02+0.000000000000e+00j -9.265906162360e+02+0.000000000000e+00j 5.737601261161e+01+0.000000000000e+00j 1.000000000000e-01 + 5.505235509313e+00 2.228955124172e+03+0.000000000000e+00j 3.405516824148e+02+0.000000000000e+00j -1.368428956439e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 1.737759702190e+03+0.000000000000e+00j 2.155507627740e+03+0.000000000000e+00j 1.664544017633e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -4.074490724521e+02+0.000000000000e+00j -1.487864010841e+03+0.000000000000e+00j -8.232383415556e+01+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 1.218893138245e+03+0.000000000000e+00j -2.699256554091e-13+0.000000000000e+00j 1.218893138245e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 2.067573412718e+03+0.000000000000e+00j -4.578671345525e-13+0.000000000000e+00j 2.067573412718e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 -4.039473572620e+02+0.000000000000e+00j 8.945472883516e-14+0.000000000000e+00j -4.039473572620e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -1.368428956542e+01+0.000000000000e+00j -3.405516824124e+02+0.000000000000e+00j 2.228955124171e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 1.664544017648e+03+0.000000000000e+00j -2.155507627730e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -8.232383416614e+01+0.000000000000e+00j 1.487864010835e+03+0.000000000000e+00j -4.074490724641e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977575724e+00+0.000000000000e+00j -1.436326007859e+03+0.000000000000e+00j 1.222381804892e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.209454667337e+02+0.000000000000e+00j -9.408488419780e+02+0.000000000000e+00j 2.773373845634e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 5.737601260710e+01+0.000000000000e+00j 9.265906162318e+02+0.000000000000e+00j -9.858366119468e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -9.221540938118e+02+0.000000000000e+00j -9.221540938118e+02+0.000000000000e+00j 4.132400085402e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 -1.118741331111e+02+0.000000000000e+00j -1.118741331111e+02+0.000000000000e+00j 2.947829831351e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 4.932098463223e+00+0.000000000000e+00j 4.932098463223e+00+0.000000000000e+00j -1.739754380424e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -2.114543049926e+03+0.000000000000e+00j 1.994915061874e+02+0.000000000000e+00j -4.209546982558e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 1.516378160767e+03+0.000000000000e+00j 1.407377764408e+03+0.000000000000e+00j 6.426818105996e-14+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -1.161560904478e+03+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j -6.832904117004e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -1.391753177029e+03+0.000000000000e+00j 3.073802396661e-13+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -1.140089543169e+03+0.000000000000e+00j 2.517982375066e-13+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 1.212226534588e+03+0.000000000000e+00j -2.677302907453e-13+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 5.085226419478e-14+0.000000000000e+00j -1.994915061823e+02+0.000000000000e+00j -2.114543049917e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -2.386368251168e-15+0.000000000000e+00j -1.407377764407e+03+0.000000000000e+00j 1.516378160774e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.727098679786e-14+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j -1.161560904470e+03+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 -3.862568771178e-18+0.000000000000e+00j 1.218893138247e+03+0.000000000000e+00j -1.218893138247e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 -6.551964438533e-18+0.000000000000e+00j 2.067573412721e+03+0.000000000000e+00j -2.067573412721e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 1.280074846913e-18+0.000000000000e+00j -4.039473572554e+02+0.000000000000e+00j 4.039473572554e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 3.405516824254e+02+0.000000000000e+00j 2.228955124167e+03+0.000000000000e+00j 1.368428955981e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 2.155507627743e+03+0.000000000000e+00j 1.737759702183e+03+0.000000000000e+00j -1.664544017651e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -1.487864010830e+03+0.000000000000e+00j -4.074490724557e+02+0.000000000000e+00j 8.232383415304e+01+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007860e+03+0.000000000000e+00j 1.222381804895e+03+0.000000000000e+00j 7.962977578282e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 9.408488419985e+02+0.000000000000e+00j 2.773373845625e+03+0.000000000000e+00j -2.209454667356e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -9.265906162296e+02+0.000000000000e+00j -9.858366119372e+02+0.000000000000e+00j -5.737601261432e+01+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 9.221540938127e+02+0.000000000000e+00j 4.132400085402e+02+0.000000000000e+00j 9.221540938127e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 1.118741331224e+02+0.000000000000e+00j 2.947829831349e+03+0.000000000000e+00j 1.118741331224e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 -4.932098469481e+00+0.000000000000e+00j -1.739754380418e+03+0.000000000000e+00j -4.932098469481e+00+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -1.994915061874e+02+0.000000000000e+00j -4.189085341701e-13+0.000000000000e+00j 2.114543049926e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -1.407377764408e+03+0.000000000000e+00j 3.326387214441e-13+0.000000000000e+00j -1.516378160767e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 1.946935955182e+03+0.000000000000e+00j -2.728673184233e-13+0.000000000000e+00j 1.161560904478e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 8.299326877334e-16+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 6.798601896056e-16+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 -7.228770464433e-16+0.000000000000e+00j 1.212226534583e+03+0.000000000000e+00j -1.212226534583e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 1.994915061874e+02+0.000000000000e+00j -2.114543049926e+03+0.000000000000e+00j -4.209546982558e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 1.407377764408e+03+0.000000000000e+00j 1.516378160767e+03+0.000000000000e+00j 6.426818105996e-14+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -1.946935955182e+03+0.000000000000e+00j -1.161560904478e+03+0.000000000000e+00j -6.832904117004e-14+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -9.221540938127e+02+0.000000000000e+00j -9.221540938127e+02+0.000000000000e+00j -4.132400085402e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 -1.118741331224e+02+0.000000000000e+00j -1.118741331224e+02+0.000000000000e+00j -2.947829831349e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 4.932098469482e+00+0.000000000000e+00j 4.932098469482e+00+0.000000000000e+00j 1.739754380418e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007860e+03+0.000000000000e+00j -7.962977578278e+00+0.000000000000e+00j -1.222381804895e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -9.408488419985e+02+0.000000000000e+00j 2.209454667356e+02+0.000000000000e+00j -2.773373845625e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 9.265906162296e+02+0.000000000000e+00j 5.737601261432e+01+0.000000000000e+00j 9.858366119372e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -3.405516824254e+02+0.000000000000e+00j -1.368428955981e+01+0.000000000000e+00j -2.228955124167e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -2.155507627743e+03+0.000000000000e+00j 1.664544017651e+03+0.000000000000e+00j -1.737759702183e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 1.487864010830e+03+0.000000000000e+00j -8.232383415304e+01+0.000000000000e+00j 4.074490724557e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 6.848654362207e+01+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -1.978995825490e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 1.522129397376e+03+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -5.722017061889e-14+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j -5.517436734321e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 3.569615866223e-15+0.000000000000e+00j 2.244897517883e+03+0.000000000000e+00j -2.407984538050e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -6.336457234320e-15+0.000000000000e+00j 9.608585950775e+02+0.000000000000e+00j -6.727877776973e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 4.109790152451e+02+0.000000000000e+00j 2.297162805671e+03+0.000000000000e+00j 2.235944633121e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 3.866751154420e+02+0.000000000000e+00j 2.349960447270e+03+0.000000000000e+00j -1.651408145570e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -7.231958063048e+02+0.000000000000e+00j 8.193662174821e+02+0.000000000000e+00j -3.249726472808e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 5.453827687685e+02+0.000000000000e+00j 1.132852811782e+03+0.000000000000e+00j 5.453827687685e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -9.798348926173e+02+0.000000000000e+00j 2.474222927432e+03+0.000000000000e+00j -9.798348926173e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 2.890782382813e+01+0.000000000000e+00j 3.169800657809e+02+0.000000000000e+00j 2.890782382813e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -3.405764006424e+02+0.000000000000e+00j 8.165966244843e+02+0.000000000000e+00j 1.565824031931e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.674226432366e+03+0.000000000000e+00j 1.224827992545e+03+0.000000000000e+00j -1.466859757945e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 1.176647268018e+03+0.000000000000e+00j -1.160191764878e+02+0.000000000000e+00j 2.837982416423e+02+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -3.003939055115e+02+0.000000000000e+00j 6.244808827275e-15+0.000000000000e+00j -6.603071664823e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -2.203746984141e+03+0.000000000000e+00j 4.581310861114e-14+0.000000000000e+00j -4.844139311901e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 1.902721067418e+03+0.000000000000e+00j -3.955516107126e-14+0.000000000000e+00j 4.182442897778e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 6.035536967115e-14+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 4.944161577763e-14+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -5.256993971890e-14+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977578283e+00+0.000000000000e+00j -1.436326007860e+03+0.000000000000e+00j -1.222381804895e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 2.209454667356e+02+0.000000000000e+00j -9.408488419984e+02+0.000000000000e+00j -2.773373845625e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 5.737601261432e+01+0.000000000000e+00j 9.265906162296e+02+0.000000000000e+00j 9.858366119372e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -5.511984988163e+02+0.000000000000e+00j -5.511984988163e+02+0.000000000000e+00j -1.170914963942e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 -4.701433168860e+02+0.000000000000e+00j -4.701433168860e+02+0.000000000000e+00j -3.520407372794e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.570279330093e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.473510678253e+01+0.000000000000e+00j -1.347963952064e+02+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -2.100426273090e+03+0.000000000000e+00j 1.383957859744e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 1.600399579637e+03+0.000000000000e+00j 9.430387165139e+02+0.000000000000e+00j -5.951882676210e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 6.948254471676e+02+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -1.725508655138e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.139081422557e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 4.048846605874e+02+0.000000000000e+00j 2.855339344604e+03+0.000000000000e+00j 1.167708252163e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473743e+03+0.000000000000e+00j 2.754226153081e+03+0.000000000000e+00j -2.133281238368e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.439197506317e+03+0.000000000000e+00j 2.292540364991e+03+0.000000000000e+00j -1.815457579596e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -7.246971188759e-14+0.000000000000e+00j 2.901107133228e+03+0.000000000000e+00j 3.958756311563e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.512658118036e-14+0.000000000000e+00j 2.455785279116e+03+0.000000000000e+00j -1.768140685534e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -3.640036345111e-14+0.000000000000e+00j 2.557589353136e+03+0.000000000000e+00j -9.018856377917e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 1.955720814199e+02+0.000000000000e+00j 1.931571181623e+03+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 -8.360286832711e+02+0.000000000000e+00j 2.327628679167e+03+0.000000000000e+00j -8.360286832711e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 -1.902976282757e+02+0.000000000000e+00j 2.153754821741e+03+0.000000000000e+00j -1.902976282757e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -1.389460562305e+02+0.000000000000e+00j 1.738978129230e+03+0.000000000000e+00j 3.517090809638e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -1.627322748360e+03+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j -5.908874633701e-15+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 4.535788174314e+02+0.000000000000e+00j 1.129334593096e+03+0.000000000000e+00j 3.479461632554e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -3.405764006383e+02+0.000000000000e+00j 8.165966244787e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.674226432375e+03+0.000000000000e+00j 1.224827992550e+03+0.000000000000e+00j 1.466859757964e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 1.176647268019e+03+0.000000000000e+00j -1.160191764851e+02+0.000000000000e+00j -2.837982416353e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -1.994915061823e+02+0.000000000000e+00j 4.272028856579e-13+0.000000000000e+00j -2.114543049917e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -1.407377764407e+03+0.000000000000e+00j -2.741235190650e-13+0.000000000000e+00j 1.516378160774e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.946935955182e+03+0.000000000000e+00j 1.919186532488e-13+0.000000000000e+00j -1.161560904470e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -1.368428955981e+01+0.000000000000e+00j -3.405516824254e+02+0.000000000000e+00j -2.228955124167e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 1.664544017651e+03+0.000000000000e+00j -2.155507627743e+03+0.000000000000e+00j -1.737759702183e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -8.232383415304e+01+0.000000000000e+00j 1.487864010830e+03+0.000000000000e+00j 4.074490724557e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -1.347963952064e+02+0.000000000000e+00j -2.473510678252e+01+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 1.383957859744e+03+0.000000000000e+00j -2.100426273090e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 9.430387165139e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j -5.951882676210e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 1.089702534022e+02+0.000000000000e+00j 1.089702534022e+02+0.000000000000e+00j -1.693883617055e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 -3.331454319420e+01+0.000000000000e+00j -3.331454319420e+01+0.000000000000e+00j -2.983841276854e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640355e+03+0.000000000000e+00j 1.792515640355e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 6.440774382714e+02+0.000000000000e+00j 6.440774382714e+02+0.000000000000e+00j -6.440774382714e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 6.440774382617e+02+0.000000000000e+00j 6.440774382617e+02+0.000000000000e+00j -6.440774382617e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.089702533912e+02+0.000000000000e+00j 1.693883617056e+03+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -3.331454318583e+01+0.000000000000e+00j 2.983841276862e+03+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640354e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -1.611704542809e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 2.103459518153e+02+0.000000000000e+00j 3.440855856631e+03+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.305283557963e+03+0.000000000000e+00j 1.749125406728e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.955720814232e+02+0.000000000000e+00j 1.931571181618e+03+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 8.360286832812e+02+0.000000000000e+00j 2.327628679175e+03+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 1.902976282779e+02+0.000000000000e+00j 2.153754821739e+03+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 -3.097729547195e-14+0.000000000000e+00j 1.409251821174e+03+0.000000000000e+00j 3.097729547225e-14+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 -3.097729547222e-14+0.000000000000e+00j 1.409251821176e+03+0.000000000000e+00j 3.097729547223e-14+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 -3.751576875907e-14+0.000000000000e+00j 1.706706949096e+03+0.000000000000e+00j 3.751576875904e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 3.350650599558e+02+0.000000000000e+00j 6.851091907668e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -1.317747768132e+03+0.000000000000e+00j 8.546200435528e+02+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 4.550013552696e+02+0.000000000000e+00j 6.775000304813e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 6.817503300498e+02+0.000000000000e+00j 1.226291487929e-13+0.000000000000e+00j -6.817503300498e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 -1.880020318403e+03+0.000000000000e+00j -3.381667469706e-13+0.000000000000e+00j 1.880020318403e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 1.091389803066e+03+0.000000000000e+00j 1.963126333089e-13+0.000000000000e+00j -1.091389803066e+03+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 9.221540938131e+02+0.000000000000e+00j -4.132400085451e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 1.118741331148e+02+0.000000000000e+00j -2.947829831354e+03+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -4.932098470679e+00+0.000000000000e+00j 1.739754380415e+03+0.000000000000e+00j 4.932098470679e+00+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 9.813960230292e+02+0.000000000000e+00j -3.903028684481e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 1.439610072415e+03+0.000000000000e+00j -3.181897710267e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.539717814991e+02+0.000000000000e+00j 1.483189426179e+03+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 8.326275941955e+02+0.000000000000e+00j 1.095902598229e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 1.515634023277e+03+0.000000000000e+00j -2.246901195615e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 6.390435888751e+02+0.000000000000e+00j 1.373374188791e+03+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.693883617056e+03+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 2.983841276862e+03+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.492388034645e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 1.287469747221e+03+0.000000000000e+00j 1.287469747221e+03+0.000000000000e+00j -6.948254471798e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 2.218454428366e+03+0.000000000000e+00j 2.218454428366e+03+0.000000000000e+00j 1.725508655145e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 2.011916748810e+03+0.000000000000e+00j 2.011916748810e+03+0.000000000000e+00j -2.139081422556e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -1.167708252139e+02+0.000000000000e+00j 2.855339344599e+03+0.000000000000e+00j -4.048846605891e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238353e+03+0.000000000000e+00j 2.754226153072e+03+0.000000000000e+00j 1.271754473744e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 1.815457579590e+03+0.000000000000e+00j 2.292540364986e+03+0.000000000000e+00j -1.439197506310e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -3.958756311590e+02+0.000000000000e+00j 2.901107133229e+03+0.000000000000e+00j 5.506843794693e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.768140685530e+03+0.000000000000e+00j 2.455785279109e+03+0.000000000000e+00j 9.284770875828e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 9.018856377877e+02+0.000000000000e+00j 2.557589353128e+03+0.000000000000e+00j 7.604402375890e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 -1.955720814199e+02+0.000000000000e+00j 1.931571181621e+03+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 8.360286832695e+02+0.000000000000e+00j 2.327628679170e+03+0.000000000000e+00j 8.360286832695e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 1.902976282771e+02+0.000000000000e+00j 2.153754821733e+03+0.000000000000e+00j 1.902976282771e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -4.127847875246e-14+0.000000000000e+00j 1.738978129235e+03+0.000000000000e+00j 1.389460562279e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -6.562240111066e-14+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 1.627322748356e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.485691712351e-14+0.000000000000e+00j 1.129334593094e+03+0.000000000000e+00j -4.535788174358e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 1.565824031920e+03+0.000000000000e+00j 8.165966244897e+02+0.000000000000e+00j 3.405764006341e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.466859757966e+03+0.000000000000e+00j 1.224827992553e+03+0.000000000000e+00j 1.674226432372e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 2.837982416341e+02+0.000000000000e+00j -1.160191764820e+02+0.000000000000e+00j -1.176647268022e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 2.114543049917e+03+0.000000000000e+00j -8.387085082777e-14+0.000000000000e+00j 1.994915061823e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -1.516378160774e+03+0.000000000000e+00j -2.500498769047e-13+0.000000000000e+00j 1.407377764407e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.161560904470e+03+0.000000000000e+00j 3.653752512289e-13+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 2.228955124173e+03+0.000000000000e+00j -3.405516824120e+02+0.000000000000e+00j 1.368428956506e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 1.737759702187e+03+0.000000000000e+00j -2.155507627736e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -4.074490724537e+02+0.000000000000e+00j 1.487864010833e+03+0.000000000000e+00j 8.232383415397e+01+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 2.107875696050e+03+0.000000000000e+00j -2.473510678724e+01+0.000000000000e+00j 1.347963952090e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 2.537027100000e+03+0.000000000000e+00j -2.100426273080e+03+0.000000000000e+00j -1.383957859743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 5.951882676235e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j -9.430387165133e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 2.058840261207e+03+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 3.440855856631e+03+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.749125406728e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 2.855339344599e+03+0.000000000000e+00j -1.167708252139e+02+0.000000000000e+00j -4.048846605891e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.754226153072e+03+0.000000000000e+00j 2.133281238353e+03+0.000000000000e+00j 1.271754473744e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 2.292540364986e+03+0.000000000000e+00j 1.815457579590e+03+0.000000000000e+00j -1.439197506310e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 1.629999833649e+03+0.000000000000e+00j 1.629999833649e+03+0.000000000000e+00j 7.165928148162e-14+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 2.668739100343e+03+0.000000000000e+00j 2.668739100343e+03+0.000000000000e+00j 1.173251201912e-13+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 2.239677814254e+03+0.000000000000e+00j 2.239677814254e+03+0.000000000000e+00j 9.846240447617e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -1.167708252118e+02+0.000000000000e+00j 2.855339344593e+03+0.000000000000e+00j 4.048846605956e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 2.133281238363e+03+0.000000000000e+00j 2.754226153073e+03+0.000000000000e+00j -1.271754473739e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 1.815457579586e+03+0.000000000000e+00j 2.292540364973e+03+0.000000000000e+00j 1.439197506327e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 -1.611704542705e+02+0.000000000000e+00j 2.058840261201e+03+0.000000000000e+00j -1.611704542705e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 2.103459518126e+02+0.000000000000e+00j 3.440855856623e+03+0.000000000000e+00j 2.103459518126e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 1.305283557962e+03+0.000000000000e+00j 1.749125406708e+03+0.000000000000e+00j 1.305283557962e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -4.109790152351e+02+0.000000000000e+00j 2.297162805672e+03+0.000000000000e+00j -2.235944633120e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -3.866751154302e+02+0.000000000000e+00j 2.349960447269e+03+0.000000000000e+00j 1.651408145573e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 7.231958063040e+02+0.000000000000e+00j 8.193662174715e+02+0.000000000000e+00j 3.249726472674e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -4.709548337438e-14+0.000000000000e+00j 2.336191913904e+03+0.000000000000e+00j -1.937303341824e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -7.722256582591e-14+0.000000000000e+00j 1.257665397688e+03+0.000000000000e+00j 2.256075560900e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 2.479248805700e-14+0.000000000000e+00j -2.739789173907e+02+0.000000000000e+00j -8.541533926821e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 6.118530235880e-14+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 5.012147596807e-14+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -1.212226534588e+03+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j -5.329281676556e-14+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 2.336191913897e+03+0.000000000000e+00j -8.732601479631e-14+0.000000000000e+00j 1.937303341826e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 1.257665397683e+03+0.000000000000e+00j 4.252267872340e-13+0.000000000000e+00j -2.256075560905e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -2.739789173931e+02+0.000000000000e+00j -1.651944237380e-13+0.000000000000e+00j 8.541533926711e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 2.297162805673e+03+0.000000000000e+00j -4.109790152323e+02+0.000000000000e+00j 2.235944633154e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 2.349960447274e+03+0.000000000000e+00j -3.866751154334e+02+0.000000000000e+00j -1.651408145580e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 8.193662174838e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j -3.249726472798e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.931571181618e+03+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 2.327628679175e+03+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 2.153754821740e+03+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 2.901107133229e+03+0.000000000000e+00j -3.958756311590e+02+0.000000000000e+00j 5.506843794693e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 2.455785279109e+03+0.000000000000e+00j 1.768140685530e+03+0.000000000000e+00j 9.284770875828e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 2.557589353128e+03+0.000000000000e+00j 9.018856377877e+02+0.000000000000e+00j 7.604402375890e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 2.855339344593e+03+0.000000000000e+00j -1.167708252118e+02+0.000000000000e+00j 4.048846605956e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 2.754226153073e+03+0.000000000000e+00j 2.133281238363e+03+0.000000000000e+00j -1.271754473739e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 2.292540364973e+03+0.000000000000e+00j 1.815457579586e+03+0.000000000000e+00j 1.439197506327e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 1.287469747217e+03+0.000000000000e+00j 1.287469747217e+03+0.000000000000e+00j 6.948254471858e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 2.218454428373e+03+0.000000000000e+00j 2.218454428373e+03+0.000000000000e+00j -1.725508655129e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 2.011916748796e+03+0.000000000000e+00j 2.011916748796e+03+0.000000000000e+00j 2.139081422565e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 1.089702534039e+02+0.000000000000e+00j 1.693883617047e+03+0.000000000000e+00j 1.089702534039e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 -3.331454318132e+01+0.000000000000e+00j 2.983841276852e+03+0.000000000000e+00j -3.331454318132e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 1.792515640352e+03+0.000000000000e+00j 1.492388034624e+03+0.000000000000e+00j 1.792515640352e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -2.473510677022e+01+0.000000000000e+00j 2.107875696037e+03+0.000000000000e+00j -1.347963952060e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -2.100426273073e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 1.383957859739e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 1.600399579646e+03+0.000000000000e+00j 5.951882676022e+02+0.000000000000e+00j 9.430387165019e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -3.405516824124e+02+0.000000000000e+00j 2.228955124171e+03+0.000000000000e+00j -1.368428956542e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -2.155507627730e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 1.487864010835e+03+0.000000000000e+00j -4.074490724641e+02+0.000000000000e+00j -8.232383416614e+01+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -4.209673416884e-14+0.000000000000e+00j 2.114543049926e+03+0.000000000000e+00j -1.994915061874e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 6.425926131698e-14+0.000000000000e+00j -1.516378160767e+03+0.000000000000e+00j -1.407377764408e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -6.831670181286e-14+0.000000000000e+00j 1.161560904478e+03+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 8.165966244843e+02+0.000000000000e+00j 1.565824031931e+03+0.000000000000e+00j -3.405764006424e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.224827992545e+03+0.000000000000e+00j -1.466859757945e+03+0.000000000000e+00j -1.674226432366e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -1.160191764878e+02+0.000000000000e+00j 2.837982416423e+02+0.000000000000e+00j 1.176647268018e+03+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 1.738978129230e+03+0.000000000000e+00j -8.352275633580e-15+0.000000000000e+00j -1.389460562305e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 1.358509986833e+03+0.000000000000e+00j 2.973360537346e-13+0.000000000000e+00j -1.627322748360e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.129334593096e+03+0.000000000000e+00j -1.142247528847e-13+0.000000000000e+00j 4.535788174314e+02+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 1.409251821174e+03+0.000000000000e+00j -2.929656045223e-14+0.000000000000e+00j 3.097729547205e-14+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 1.409251821176e+03+0.000000000000e+00j -2.929656045263e-14+0.000000000000e+00j 3.097729547222e-14+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 1.706706949096e+03+0.000000000000e+00j -3.548027581567e-14+0.000000000000e+00j 3.751576875909e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 1.931571181621e+03+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 2.327628679170e+03+0.000000000000e+00j 8.360286832695e+02+0.000000000000e+00j 8.360286832695e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 2.153754821733e+03+0.000000000000e+00j 1.902976282771e+02+0.000000000000e+00j 1.902976282771e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 2.058840261201e+03+0.000000000000e+00j -1.611704542705e+02+0.000000000000e+00j -1.611704542705e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 3.440855856623e+03+0.000000000000e+00j 2.103459518126e+02+0.000000000000e+00j 2.103459518126e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 1.749125406708e+03+0.000000000000e+00j 1.305283557962e+03+0.000000000000e+00j 1.305283557962e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 1.693883617047e+03+0.000000000000e+00j 1.089702534039e+02+0.000000000000e+00j 1.089702534039e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 2.983841276852e+03+0.000000000000e+00j -3.331454318132e+01+0.000000000000e+00j -3.331454318132e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 1.492388034624e+03+0.000000000000e+00j 1.792515640352e+03+0.000000000000e+00j 1.792515640352e+03+0.000000000000e+00j 1.000000000000e-01 + 4.408824939138e+00 6.440774382689e+02+0.000000000000e+00j 6.440774382689e+02+0.000000000000e+00j 6.440774382689e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939138e+00 6.440774382689e+02+0.000000000000e+00j 6.440774382689e+02+0.000000000000e+00j 6.440774382689e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103772e+00 1.407846987100e+03+0.000000000000e+00j 1.407846987100e+03+0.000000000000e+00j 1.407846987100e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 1.095902598418e+02+0.000000000000e+00j 8.326275941904e+02+0.000000000000e+00j 8.326275941904e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 -2.246901195603e+03+0.000000000000e+00j 1.515634023272e+03+0.000000000000e+00j 1.515634023272e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 1.373374188802e+03+0.000000000000e+00j 6.390435888622e+02+0.000000000000e+00j 6.390435888622e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 -3.903028684318e+02+0.000000000000e+00j 9.813960230235e+02+0.000000000000e+00j 9.813960230235e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 -3.181897710259e+03+0.000000000000e+00j 1.439610072412e+03+0.000000000000e+00j 1.439610072412e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 1.483189426196e+03+0.000000000000e+00j -1.539717815092e+02+0.000000000000e+00j -1.539717815092e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -4.132400085402e+02+0.000000000000e+00j 9.221540938118e+02+0.000000000000e+00j 9.221540938118e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 -2.947829831351e+03+0.000000000000e+00j 1.118741331111e+02+0.000000000000e+00j 1.118741331111e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 1.739754380424e+03+0.000000000000e+00j -4.932098463212e+00+0.000000000000e+00j -4.932098463212e+00+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 -2.996946154672e-14+0.000000000000e+00j 6.817503300509e+02+0.000000000000e+00j 6.817503300509e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 8.264491288887e-14+0.000000000000e+00j -1.880020318391e+03+0.000000000000e+00j -1.880020318391e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 -4.797704275929e-14+0.000000000000e+00j 1.091389803073e+03+0.000000000000e+00j 1.091389803073e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 6.851091907684e+02+0.000000000000e+00j 3.350650599560e+02+0.000000000000e+00j 3.350650599560e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 8.546200435459e+02+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 6.775000304810e+02+0.000000000000e+00j 4.550013552737e+02+0.000000000000e+00j 4.550013552737e+02+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 6.851091907668e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 8.546200435528e+02+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 6.775000304813e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 1.738978129235e+03+0.000000000000e+00j -6.395002991878e-14+0.000000000000e+00j 1.389460562279e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 1.358509986833e+03+0.000000000000e+00j -3.538194577033e-13+0.000000000000e+00j 1.627322748356e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.129334593094e+03+0.000000000000e+00j 6.726988125714e-14+0.000000000000e+00j -4.535788174358e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 2.297162805672e+03+0.000000000000e+00j -4.109790152351e+02+0.000000000000e+00j -2.235944633120e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 2.349960447269e+03+0.000000000000e+00j -3.866751154302e+02+0.000000000000e+00j 1.651408145573e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 8.193662174715e+02+0.000000000000e+00j 7.231958063040e+02+0.000000000000e+00j 3.249726472674e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 2.107875696037e+03+0.000000000000e+00j -2.473510677021e+01+0.000000000000e+00j -1.347963952060e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 2.537027099992e+03+0.000000000000e+00j -2.100426273073e+03+0.000000000000e+00j 1.383957859739e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 5.951882676022e+02+0.000000000000e+00j 1.600399579646e+03+0.000000000000e+00j 9.430387165019e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 8.326275941904e+02+0.000000000000e+00j 1.095902598418e+02+0.000000000000e+00j 8.326275941904e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 1.515634023272e+03+0.000000000000e+00j -2.246901195603e+03+0.000000000000e+00j 1.515634023272e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 6.390435888622e+02+0.000000000000e+00j 1.373374188802e+03+0.000000000000e+00j 6.390435888622e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 -3.449549636261e+02+0.000000000000e+00j -3.449549636261e+02+0.000000000000e+00j 7.484369549129e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 -7.252539022813e+02+0.000000000000e+00j -7.252539022813e+02+0.000000000000e+00j 2.663991119425e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192940e+02+0.000000000000e+00j 6.906934192940e+02+0.000000000000e+00j -7.537749371539e+01+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 -1.029630366767e+03+0.000000000000e+00j -1.845929892073e-13+0.000000000000e+00j 1.029630366767e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 -2.417747879241e+03+0.000000000000e+00j -4.334558522978e-13+0.000000000000e+00j 2.417747879241e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 8.075401156560e+02+0.000000000000e+00j 1.447764641226e-13+0.000000000000e+00j -8.075401156560e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804892e+03+0.000000000000e+00j 7.962977575720e+00+0.000000000000e+00j 1.436326007859e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.773373845634e+03+0.000000000000e+00j -2.209454667337e+02+0.000000000000e+00j 9.408488419780e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 9.858366119468e+02+0.000000000000e+00j -5.737601260710e+01+0.000000000000e+00j -9.265906162318e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -8.165966244859e+02+0.000000000000e+00j -3.405764006429e+02+0.000000000000e+00j 1.565824031930e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.224827992548e+03+0.000000000000e+00j -1.674226432371e+03+0.000000000000e+00j -1.466859757958e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 1.160191764816e+02+0.000000000000e+00j 1.176647268028e+03+0.000000000000e+00j 2.837982416495e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 1.105082526729e-14+0.000000000000e+00j -5.027358068558e+02+0.000000000000e+00j -1.105082526810e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 3.479796022550e-14+0.000000000000e+00j -1.583065534720e+03+0.000000000000e+00j -3.479796022469e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -2.341025136709e-14+0.000000000000e+00j 1.065003863972e+03+0.000000000000e+00j 2.341025136698e-14+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 -2.160408859439e-18+0.000000000000e+00j 6.817503300498e+02+0.000000000000e+00j -6.817503300498e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 5.957624621233e-18+0.000000000000e+00j -1.880020318403e+03+0.000000000000e+00j 1.880020318403e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 -3.458521537439e-18+0.000000000000e+00j 1.091389803066e+03+0.000000000000e+00j -1.091389803066e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 8.165966244897e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 3.405764006341e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.224827992553e+03+0.000000000000e+00j -1.466859757966e+03+0.000000000000e+00j 1.674226432372e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -1.160191764820e+02+0.000000000000e+00j 2.837982416341e+02+0.000000000000e+00j -1.176647268022e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 2.336191913904e+03+0.000000000000e+00j -9.806927103340e-15+0.000000000000e+00j -1.937303341824e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 1.257665397688e+03+0.000000000000e+00j -4.775173286376e-13+0.000000000000e+00j 2.256075560900e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -2.739789173907e+02+0.000000000000e+00j 1.765857731010e-13+0.000000000000e+00j -8.541533926821e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 2.228955124171e+03+0.000000000000e+00j -3.405516824124e+02+0.000000000000e+00j -1.368428956543e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 1.737759702187e+03+0.000000000000e+00j -2.155507627730e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -4.074490724641e+02+0.000000000000e+00j 1.487864010835e+03+0.000000000000e+00j -8.232383416614e+01+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 9.813960230235e+02+0.000000000000e+00j -3.903028684318e+02+0.000000000000e+00j 9.813960230235e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 1.439610072412e+03+0.000000000000e+00j -3.181897710259e+03+0.000000000000e+00j 1.439610072412e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 -1.539717815092e+02+0.000000000000e+00j 1.483189426196e+03+0.000000000000e+00j -1.539717815092e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 6.139909804174e-16+0.000000000000e+00j -1.029630366767e+03+0.000000000000e+00j 1.029630366767e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 1.441755642307e-15+0.000000000000e+00j -2.417747879241e+03+0.000000000000e+00j 2.417747879241e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 -4.815537335936e-16+0.000000000000e+00j 8.075401156560e+02+0.000000000000e+00j -8.075401156560e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 -9.813960230235e+02+0.000000000000e+00j -9.813960230235e+02+0.000000000000e+00j 3.903028684318e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 -1.439610072412e+03+0.000000000000e+00j -1.439610072412e+03+0.000000000000e+00j 3.181897710259e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 1.539717815092e+02+0.000000000000e+00j 1.539717815092e+02+0.000000000000e+00j -1.483189426196e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -2.228955124171e+03+0.000000000000e+00j 1.368428956543e+01+0.000000000000e+00j 3.405516824124e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -1.737759702187e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 2.155507627730e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 4.074490724641e+02+0.000000000000e+00j 8.232383416614e+01+0.000000000000e+00j -1.487864010835e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -2.336191913904e+03+0.000000000000e+00j 1.937303341824e+02+0.000000000000e+00j -4.709425554437e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -1.257665397688e+03+0.000000000000e+00j -2.256075560900e+03+0.000000000000e+00j -7.723686444910e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 2.739789173907e+02+0.000000000000e+00j 8.541533926821e+02+0.000000000000e+00j 2.479790153572e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -8.165966244897e+02+0.000000000000e+00j -3.405764006341e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.224827992553e+03+0.000000000000e+00j -1.674226432372e+03+0.000000000000e+00j 1.466859757966e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 1.160191764820e+02+0.000000000000e+00j 1.176647268022e+03+0.000000000000e+00j -2.837982416341e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -4.132400085451e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -2.947829831354e+03+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 1.739754380415e+03+0.000000000000e+00j -4.932098470682e+00+0.000000000000e+00j 4.932098470682e+00+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -5.086440146715e-14+0.000000000000e+00j 2.114543049917e+03+0.000000000000e+00j 1.994915061823e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 2.404898519274e-15+0.000000000000e+00j -1.516378160774e+03+0.000000000000e+00j 1.407377764407e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.725128567274e-14+0.000000000000e+00j 1.161560904470e+03+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 6.118530235880e-14+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 5.012147596807e-14+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -1.212226534588e+03+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j -5.329281676556e-14+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 2.114543049926e+03+0.000000000000e+00j -4.046492772342e-15+0.000000000000e+00j -1.994915061874e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -1.516378160767e+03+0.000000000000e+00j 3.130970396574e-13+0.000000000000e+00j -1.407377764408e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 1.161560904478e+03+0.000000000000e+00j -4.136700112417e-13+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 9.221540938119e+02+0.000000000000e+00j -4.132400085402e+02+0.000000000000e+00j 9.221540938119e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 1.118741331111e+02+0.000000000000e+00j -2.947829831351e+03+0.000000000000e+00j 1.118741331111e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 -4.932098463216e+00+0.000000000000e+00j 1.739754380424e+03+0.000000000000e+00j -4.932098463216e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977575725e+00+0.000000000000e+00j -1.222381804892e+03+0.000000000000e+00j 1.436326007859e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.209454667337e+02+0.000000000000e+00j -2.773373845634e+03+0.000000000000e+00j 9.408488419780e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -5.737601260710e+01+0.000000000000e+00j 9.858366119468e+02+0.000000000000e+00j -9.265906162318e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 1.368428956542e+01+0.000000000000e+00j -2.228955124171e+03+0.000000000000e+00j 3.405516824124e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -1.664544017648e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 2.155507627730e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 8.232383416614e+01+0.000000000000e+00j 4.074490724641e+02+0.000000000000e+00j -1.487864010835e+03+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 -1.218893138245e+03+0.000000000000e+00j -1.218893138245e+03+0.000000000000e+00j -5.358589902119e-14+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 -2.067573412718e+03+0.000000000000e+00j -2.067573412718e+03+0.000000000000e+00j -9.089622103384e-14+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 4.039473572620e+02+0.000000000000e+00j 4.039473572620e+02+0.000000000000e+00j 1.775863823788e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -2.228955124172e+03+0.000000000000e+00j 1.368428956439e+01+0.000000000000e+00j -3.405516824148e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -1.737759702190e+03+0.000000000000e+00j -1.664544017633e+03+0.000000000000e+00j -2.155507627740e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 4.074490724521e+02+0.000000000000e+00j 8.232383415556e+01+0.000000000000e+00j 1.487864010841e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804899e+03+0.000000000000e+00j 7.962977582706e+00+0.000000000000e+00j -1.436326007856e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.773373845643e+03+0.000000000000e+00j -2.209454667211e+02+0.000000000000e+00j -9.408488419744e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 9.858366119327e+02+0.000000000000e+00j -5.737601261161e+01+0.000000000000e+00j 9.265906162360e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -3.903028684481e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -3.181897710267e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.483189426179e+03+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -3.405516824120e+02+0.000000000000e+00j 2.228955124173e+03+0.000000000000e+00j 1.368428956506e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -2.155507627736e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 1.487864010833e+03+0.000000000000e+00j -4.074490724538e+02+0.000000000000e+00j 8.232383415397e+01+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -5.560994671281e-14+0.000000000000e+00j 2.336191913897e+03+0.000000000000e+00j 1.937303341826e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 2.193213150591e-14+0.000000000000e+00j 1.257665397683e+03+0.000000000000e+00j -2.256075560905e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -1.274762034804e-14+0.000000000000e+00j -2.739789173931e+02+0.000000000000e+00j 8.541533926711e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 1.565824031931e+03+0.000000000000e+00j 8.165966244843e+02+0.000000000000e+00j -3.405764006424e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.466859757945e+03+0.000000000000e+00j 1.224827992545e+03+0.000000000000e+00j -1.674226432366e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 2.837982416423e+02+0.000000000000e+00j -1.160191764878e+02+0.000000000000e+00j 1.176647268018e+03+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 6.817503300509e+02+0.000000000000e+00j -1.509746005538e-13+0.000000000000e+00j 6.817503300509e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 -1.880020318391e+03+0.000000000000e+00j 4.163332294696e-13+0.000000000000e+00j -1.880020318391e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 1.091389803073e+03+0.000000000000e+00j -2.416898566889e-13+0.000000000000e+00j 1.091389803073e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -3.405764006429e+02+0.000000000000e+00j -8.165966244859e+02+0.000000000000e+00j 1.565824031930e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.674226432371e+03+0.000000000000e+00j -1.224827992548e+03+0.000000000000e+00j -1.466859757958e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 1.176647268028e+03+0.000000000000e+00j 1.160191764816e+02+0.000000000000e+00j 2.837982416495e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 1.937303341824e+02+0.000000000000e+00j -2.336191913904e+03+0.000000000000e+00j -4.709425554437e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -2.256075560900e+03+0.000000000000e+00j -1.257665397688e+03+0.000000000000e+00j -7.723686444910e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 8.541533926821e+02+0.000000000000e+00j 2.739789173907e+02+0.000000000000e+00j 2.479790153572e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 1.368428956438e+01+0.000000000000e+00j -2.228955124172e+03+0.000000000000e+00j -3.405516824148e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -1.664544017633e+03+0.000000000000e+00j -1.737759702190e+03+0.000000000000e+00j -2.155507627740e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 8.232383415556e+01+0.000000000000e+00j 4.074490724521e+02+0.000000000000e+00j 1.487864010841e+03+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 -9.813960230264e+02+0.000000000000e+00j -9.813960230264e+02+0.000000000000e+00j -3.903028684352e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 -1.439610072411e+03+0.000000000000e+00j -1.439610072411e+03+0.000000000000e+00j -3.181897710263e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 1.539717814987e+02+0.000000000000e+00j 1.539717814987e+02+0.000000000000e+00j 1.483189426185e+03+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -1.029630366773e+03+0.000000000000e+00j 2.274024116701e-13+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -2.417747879248e+03+0.000000000000e+00j 5.339796846459e-13+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 8.075401156421e+02+0.000000000000e+00j -1.783519365236e-13+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 1.095902598229e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -2.246901195615e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 1.373374188791e+03+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -2.473510678724e+01+0.000000000000e+00j 2.107875696050e+03+0.000000000000e+00j 1.347963952090e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -2.100426273080e+03+0.000000000000e+00j 2.537027100000e+03+0.000000000000e+00j -1.383957859743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 1.600399579637e+03+0.000000000000e+00j 5.951882676234e+02+0.000000000000e+00j -9.430387165133e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -4.109790152323e+02+0.000000000000e+00j 2.297162805673e+03+0.000000000000e+00j 2.235944633154e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -3.866751154334e+02+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j -1.651408145580e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 7.231958063081e+02+0.000000000000e+00j 8.193662174838e+02+0.000000000000e+00j -3.249726472798e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -3.517178871334e-14+0.000000000000e+00j 1.738978129230e+03+0.000000000000e+00j -1.389460562305e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 5.898560940771e-15+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j -1.627322748360e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -3.479174162067e-14+0.000000000000e+00j 1.129334593096e+03+0.000000000000e+00j 4.535788174314e+02+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 3.350650599560e+02+0.000000000000e+00j 6.851091907684e+02+0.000000000000e+00j 3.350650599560e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 -1.317747768119e+03+0.000000000000e+00j 8.546200435459e+02+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 4.550013552737e+02+0.000000000000e+00j 6.775000304810e+02+0.000000000000e+00j 4.550013552737e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -5.027358068558e+02+0.000000000000e+00j 1.045124067706e-14+0.000000000000e+00j -1.105082526647e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -1.583065534720e+03+0.000000000000e+00j 3.290992741067e-14+0.000000000000e+00j -3.479796022509e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 1.065003863972e+03+0.000000000000e+00j -2.214008143490e-14+0.000000000000e+00j 2.341025136739e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -3.405764006341e+02+0.000000000000e+00j -8.165966244897e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.674226432372e+03+0.000000000000e+00j -1.224827992553e+03+0.000000000000e+00j 1.466859757966e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 1.176647268022e+03+0.000000000000e+00j 1.160191764820e+02+0.000000000000e+00j -2.837982416341e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977582707e+00+0.000000000000e+00j -1.222381804899e+03+0.000000000000e+00j -1.436326007856e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.209454667211e+02+0.000000000000e+00j -2.773373845643e+03+0.000000000000e+00j -9.408488419744e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -5.737601261161e+01+0.000000000000e+00j 9.858366119327e+02+0.000000000000e+00j 9.265906162360e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 4.465139540329e-14+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 1.048490992744e-13+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -3.502013360440e-14+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 -3.449549636286e+02+0.000000000000e+00j -3.449549636286e+02+0.000000000000e+00j -7.484369549179e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 -7.252539022881e+02+0.000000000000e+00j -7.252539022881e+02+0.000000000000e+00j -2.663991119428e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192903e+02+0.000000000000e+00j 6.906934192903e+02+0.000000000000e+00j 7.537749370039e+01+0.000000000000e+00j 1.000000000000e-01 + 4.650851100236e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.650851100245e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.033872196188e+01 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -3.449549636351e+02+0.000000000000e+00j 7.484369549273e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -7.252539022866e+02+0.000000000000e+00j 2.663991119437e+03+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192902e+02+0.000000000000e+00j -7.537749369760e+01+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -5.511984988225e+02+0.000000000000e+00j 1.170914963950e+03+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -4.701433168759e+02+0.000000000000e+00j 3.520407372805e+03+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 9.131359997239e+02+0.000000000000e+00j -1.570279330060e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -5.453827687707e+02+0.000000000000e+00j 1.132852811783e+03+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 9.798348926358e+02+0.000000000000e+00j 2.474222927441e+03+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -2.890782382811e+01+0.000000000000e+00j 3.169800657838e+02+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -3.350650599558e+02+0.000000000000e+00j 6.851091907668e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 1.317747768132e+03+0.000000000000e+00j 8.546200435528e+02+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -4.550013552696e+02+0.000000000000e+00j 6.775000304813e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.516302870694e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.516302870699e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.979040851872e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 3.350650599558e+02+0.000000000000e+00j -6.851091907668e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -1.317747768132e+03+0.000000000000e+00j -8.546200435528e+02+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 4.550013552696e+02+0.000000000000e+00j -6.775000304813e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 5.453827687707e+02+0.000000000000e+00j -1.132852811783e+03+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -9.798348926358e+02+0.000000000000e+00j -2.474222927441e+03+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 2.890782382811e+01+0.000000000000e+00j -3.169800657838e+02+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 5.511984988225e+02+0.000000000000e+00j -1.170914963950e+03+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 4.701433168759e+02+0.000000000000e+00j -3.520407372805e+03+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -9.131359997239e+02+0.000000000000e+00j 1.570279330060e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 3.449549636351e+02+0.000000000000e+00j -7.484369549273e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 7.252539022866e+02+0.000000000000e+00j -2.663991119437e+03+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192902e+02+0.000000000000e+00j 7.537749369760e+01+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 7.484369549273e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 2.663991119437e+03+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -7.537749369760e+01+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 8.326275941940e+02+0.000000000000e+00j 8.326275941940e+02+0.000000000000e+00j -1.095902598382e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 1.515634023269e+03+0.000000000000e+00j 1.515634023269e+03+0.000000000000e+00j 2.246901195613e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 6.390435888739e+02+0.000000000000e+00j 6.390435888739e+02+0.000000000000e+00j -1.373374188795e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -1.347963952067e+02+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 2.473510677569e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 1.383957859722e+03+0.000000000000e+00j 2.537027100001e+03+0.000000000000e+00j 2.100426273078e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 9.430387165091e+02+0.000000000000e+00j 5.951882676219e+02+0.000000000000e+00j -1.600399579641e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -2.235944633189e+02+0.000000000000e+00j 2.297162805675e+03+0.000000000000e+00j 4.109790152335e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 1.651408145566e+03+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 3.866751154283e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 3.249726472726e+02+0.000000000000e+00j 8.193662174822e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 1.389460562279e+02+0.000000000000e+00j 1.738978129235e+03+0.000000000000e+00j 4.127935937023e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 1.627322748356e+03+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 6.563271480564e-14+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -4.535788174358e+02+0.000000000000e+00j 1.129334593094e+03+0.000000000000e+00j 1.485404241843e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -3.350650599564e+02+0.000000000000e+00j 6.851091907693e+02+0.000000000000e+00j -3.350650599564e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 1.317747768119e+03+0.000000000000e+00j 8.546200435520e+02+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -4.550013552749e+02+0.000000000000e+00j 6.775000304802e+02+0.000000000000e+00j -4.550013552749e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -1.105082526729e-14+0.000000000000e+00j -1.011785329383e-13+0.000000000000e+00j 5.027358068558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -3.479796022550e-14+0.000000000000e+00j -3.186012338166e-13+0.000000000000e+00j 1.583065534720e+03+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 2.341025136698e-14+0.000000000000e+00j 2.143382807844e-13+0.000000000000e+00j -1.065003863972e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 1.565824031920e+03+0.000000000000e+00j -8.165966244787e+02+0.000000000000e+00j 3.405764006383e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.466859757964e+03+0.000000000000e+00j -1.224827992550e+03+0.000000000000e+00j 1.674226432375e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 2.837982416353e+02+0.000000000000e+00j 1.160191764851e+02+0.000000000000e+00j -1.176647268019e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 1.436326007861e+03+0.000000000000e+00j -1.222381804894e+03+0.000000000000e+00j -7.962977576047e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 9.408488419796e+02+0.000000000000e+00j -2.773373845637e+03+0.000000000000e+00j 2.209454667325e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -9.265906162319e+02+0.000000000000e+00j 9.858366119346e+02+0.000000000000e+00j 5.737601261443e+01+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 1.029630366785e+03+0.000000000000e+00j -1.029630366785e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 2.417747879247e+03+0.000000000000e+00j -2.417747879247e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 -8.075401156400e+02+0.000000000000e+00j 8.075401156400e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 1.170914963950e+03+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 3.520407372805e+03+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 -1.570279330060e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.107875696041e+03+0.000000000000e+00j -1.347963952067e+02+0.000000000000e+00j 2.473510677569e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531749e+00 2.537027100001e+03+0.000000000000e+00j 1.383957859722e+03+0.000000000000e+00j 2.100426273078e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 5.951882676219e+02+0.000000000000e+00j 9.430387165091e+02+0.000000000000e+00j -1.600399579641e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 1.362258017175e+03+0.000000000000e+00j 1.362258017175e+03+0.000000000000e+00j -6.848654362995e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 2.277392898260e+03+0.000000000000e+00j 2.277392898260e+03+0.000000000000e+00j 1.978995825498e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 9.309665228146e+02+0.000000000000e+00j 9.309665228146e+02+0.000000000000e+00j -1.522129397379e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 5.517436734186e+01+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 5.964543806476e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 2.407984538040e+03+0.000000000000e+00j 2.244897517877e+03+0.000000000000e+00j 1.022767542874e-13+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 6.727877776834e+02+0.000000000000e+00j 9.608585950688e+02+0.000000000000e+00j 3.590979669168e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -2.235944633120e+02+0.000000000000e+00j 2.297162805672e+03+0.000000000000e+00j -4.109790152351e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 1.651408145573e+03+0.000000000000e+00j 2.349960447269e+03+0.000000000000e+00j -3.866751154302e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 3.249726472674e+02+0.000000000000e+00j 8.193662174715e+02+0.000000000000e+00j 7.231958063040e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 -5.453827687681e+02+0.000000000000e+00j 1.132852811781e+03+0.000000000000e+00j -5.453827687681e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 9.798348926316e+02+0.000000000000e+00j 2.474222927435e+03+0.000000000000e+00j 9.798348926316e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 -2.890782383714e+01+0.000000000000e+00j 3.169800657750e+02+0.000000000000e+00j -2.890782383714e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -1.565824031930e+03+0.000000000000e+00j 8.165966244859e+02+0.000000000000e+00j 3.405764006429e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.466859757958e+03+0.000000000000e+00j 1.224827992548e+03+0.000000000000e+00j 1.674226432371e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -2.837982416495e+02+0.000000000000e+00j -1.160191764816e+02+0.000000000000e+00j -1.176647268028e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -6.603071664874e-15+0.000000000000e+00j -6.045603724411e-14+0.000000000000e+00j 3.003939055115e+02+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -4.844139311983e-14+0.000000000000e+00j -4.435170198378e-13+0.000000000000e+00j 2.203746984141e+03+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 4.182442897798e-14+0.000000000000e+00j 3.829337866263e-13+0.000000000000e+00j -1.902721067418e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 1.391753177018e+03+0.000000000000e+00j -1.391753177018e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 1.140089543166e+03+0.000000000000e+00j -1.140089543166e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 -1.212226534592e+03+0.000000000000e+00j 1.212226534592e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 1.222381804894e+03+0.000000000000e+00j -1.436326007861e+03+0.000000000000e+00j 7.962977576049e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 2.773373845637e+03+0.000000000000e+00j -9.408488419795e+02+0.000000000000e+00j -2.209454667325e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -9.858366119346e+02+0.000000000000e+00j 9.265906162319e+02+0.000000000000e+00j -5.737601261443e+01+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 1.132852811783e+03+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 2.474222927441e+03+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 3.169800657838e+02+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 2.297162805675e+03+0.000000000000e+00j -2.235944633189e+02+0.000000000000e+00j 4.109790152335e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 2.349960447274e+03+0.000000000000e+00j 1.651408145566e+03+0.000000000000e+00j 3.866751154283e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 8.193662174822e+02+0.000000000000e+00j 3.249726472726e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 2.658278854984e+03+0.000000000000e+00j 5.517436734186e+01+0.000000000000e+00j 5.964543806476e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 2.244897517877e+03+0.000000000000e+00j 2.407984538040e+03+0.000000000000e+00j 1.022767542874e-13+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 9.608585950688e+02+0.000000000000e+00j 6.727877776834e+02+0.000000000000e+00j 3.590979669168e-14+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 1.362258017173e+03+0.000000000000e+00j 1.362258017173e+03+0.000000000000e+00j 6.848654363584e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 2.277392898267e+03+0.000000000000e+00j 2.277392898267e+03+0.000000000000e+00j -1.978995825481e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 9.309665228030e+02+0.000000000000e+00j 9.309665228030e+02+0.000000000000e+00j 1.522129397386e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -1.347963952060e+02+0.000000000000e+00j 2.107875696037e+03+0.000000000000e+00j -2.473510677022e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 1.383957859739e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j -2.100426273073e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 9.430387165019e+02+0.000000000000e+00j 5.951882676022e+02+0.000000000000e+00j 1.600399579646e+03+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -5.511984988142e+02+0.000000000000e+00j 1.170914963937e+03+0.000000000000e+00j -5.511984988142e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 -4.701433168732e+02+0.000000000000e+00j 3.520407372796e+03+0.000000000000e+00j -4.701433168732e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 9.131359997229e+02+0.000000000000e+00j -1.570279330276e+02+0.000000000000e+00j 9.131359997229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007859e+03+0.000000000000e+00j 1.222381804892e+03+0.000000000000e+00j -7.962977575720e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -9.408488419780e+02+0.000000000000e+00j 2.773373845634e+03+0.000000000000e+00j 2.209454667337e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 9.265906162318e+02+0.000000000000e+00j -9.858366119468e+02+0.000000000000e+00j 5.737601260710e+01+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 -1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 -1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 1.212226534583e+03+0.000000000000e+00j -1.212226534583e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 6.603071664925e-15+0.000000000000e+00j 6.045603724411e-14+0.000000000000e+00j -3.003939055115e+02+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 4.844139311942e-14+0.000000000000e+00j 4.435170198374e-13+0.000000000000e+00j -2.203746984141e+03+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -4.182442897798e-14+0.000000000000e+00j -3.829337866263e-13+0.000000000000e+00j 1.902721067418e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 8.165966244787e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j -3.405764006383e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.224827992550e+03+0.000000000000e+00j 1.466859757964e+03+0.000000000000e+00j -1.674226432375e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -1.160191764851e+02+0.000000000000e+00j -2.837982416352e+02+0.000000000000e+00j 1.176647268019e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 6.851091907668e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 8.546200435528e+02+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 6.775000304813e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 1.738978129235e+03+0.000000000000e+00j 1.389460562279e+02+0.000000000000e+00j 4.127935937023e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 1.358509986833e+03+0.000000000000e+00j 1.627322748356e+03+0.000000000000e+00j 6.563271480564e-14+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.129334593094e+03+0.000000000000e+00j -4.535788174358e+02+0.000000000000e+00j 1.485404241843e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 2.297162805672e+03+0.000000000000e+00j -2.235944633120e+02+0.000000000000e+00j -4.109790152351e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 2.349960447269e+03+0.000000000000e+00j 1.651408145573e+03+0.000000000000e+00j -3.866751154302e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 8.193662174715e+02+0.000000000000e+00j 3.249726472674e+02+0.000000000000e+00j 7.231958063040e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 2.107875696037e+03+0.000000000000e+00j -1.347963952060e+02+0.000000000000e+00j -2.473510677022e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 2.537027099992e+03+0.000000000000e+00j 1.383957859739e+03+0.000000000000e+00j -2.100426273073e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 5.951882676022e+02+0.000000000000e+00j 9.430387165019e+02+0.000000000000e+00j 1.600399579646e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 8.326275941904e+02+0.000000000000e+00j 8.326275941904e+02+0.000000000000e+00j 1.095902598418e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 1.515634023272e+03+0.000000000000e+00j 1.515634023272e+03+0.000000000000e+00j -2.246901195603e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 6.390435888622e+02+0.000000000000e+00j 6.390435888622e+02+0.000000000000e+00j 1.373374188802e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 -3.449549636261e+02+0.000000000000e+00j 7.484369549129e+02+0.000000000000e+00j -3.449549636261e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 -7.252539022813e+02+0.000000000000e+00j 2.663991119425e+03+0.000000000000e+00j -7.252539022813e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192940e+02+0.000000000000e+00j -7.537749371540e+01+0.000000000000e+00j 6.906934192940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 -1.029630366767e+03+0.000000000000e+00j 1.029630366767e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 -2.417747879241e+03+0.000000000000e+00j 2.417747879241e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 8.075401156560e+02+0.000000000000e+00j -8.075401156560e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804892e+03+0.000000000000e+00j 1.436326007859e+03+0.000000000000e+00j 7.962977575724e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.773373845634e+03+0.000000000000e+00j 9.408488419780e+02+0.000000000000e+00j -2.209454667337e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 9.858366119468e+02+0.000000000000e+00j -9.265906162318e+02+0.000000000000e+00j -5.737601260710e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -8.165966244859e+02+0.000000000000e+00j 1.565824031930e+03+0.000000000000e+00j -3.405764006429e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.224827992548e+03+0.000000000000e+00j -1.466859757958e+03+0.000000000000e+00j -1.674226432371e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 1.160191764816e+02+0.000000000000e+00j 2.837982416495e+02+0.000000000000e+00j 1.176647268028e+03+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 1.105082526729e-14+0.000000000000e+00j 1.011785329388e-13+0.000000000000e+00j -5.027358068558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 3.479796022540e-14+0.000000000000e+00j 3.186012338166e-13+0.000000000000e+00j -1.583065534720e+03+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -2.341025136711e-14+0.000000000000e+00j -2.143382807843e-13+0.000000000000e+00j 1.065003863972e+03+0.000000000000e+00j 1.000000000000e-01 + 6.516302870694e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.516302870699e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.979040851872e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 6.851091907693e+02+0.000000000000e+00j -3.350650599564e+02+0.000000000000e+00j -3.350650599564e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 8.546200435520e+02+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 6.775000304802e+02+0.000000000000e+00j -4.550013552749e+02+0.000000000000e+00j -4.550013552749e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 1.132852811781e+03+0.000000000000e+00j -5.453827687681e+02+0.000000000000e+00j -5.453827687681e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 2.474222927435e+03+0.000000000000e+00j 9.798348926316e+02+0.000000000000e+00j 9.798348926316e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 3.169800657750e+02+0.000000000000e+00j -2.890782383714e+01+0.000000000000e+00j -2.890782383714e+01+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 1.170914963937e+03+0.000000000000e+00j -5.511984988142e+02+0.000000000000e+00j -5.511984988142e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 3.520407372796e+03+0.000000000000e+00j -4.701433168732e+02+0.000000000000e+00j -4.701433168732e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 -1.570279330276e+02+0.000000000000e+00j 9.131359997229e+02+0.000000000000e+00j 9.131359997229e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 7.484369549129e+02+0.000000000000e+00j -3.449549636261e+02+0.000000000000e+00j -3.449549636261e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 2.663991119425e+03+0.000000000000e+00j -7.252539022813e+02+0.000000000000e+00j -7.252539022813e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -7.537749371539e+01+0.000000000000e+00j 6.906934192940e+02+0.000000000000e+00j 6.906934192940e+02+0.000000000000e+00j 1.000000000000e-01 + 4.650851100250e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.650851100250e+00 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 1.033872196189e+01 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 -7.484369549129e+02+0.000000000000e+00j 3.449549636261e+02+0.000000000000e+00j 3.449549636261e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 -2.663991119425e+03+0.000000000000e+00j 7.252539022813e+02+0.000000000000e+00j 7.252539022813e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 7.537749371539e+01+0.000000000000e+00j -6.906934192940e+02+0.000000000000e+00j -6.906934192940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -1.170914963937e+03+0.000000000000e+00j 5.511984988142e+02+0.000000000000e+00j 5.511984988142e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 -3.520407372796e+03+0.000000000000e+00j 4.701433168732e+02+0.000000000000e+00j 4.701433168732e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 1.570279330276e+02+0.000000000000e+00j -9.131359997229e+02+0.000000000000e+00j -9.131359997229e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 -1.132852811781e+03+0.000000000000e+00j 5.453827687681e+02+0.000000000000e+00j 5.453827687681e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -2.474222927435e+03+0.000000000000e+00j -9.798348926316e+02+0.000000000000e+00j -9.798348926316e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 -3.169800657750e+02+0.000000000000e+00j 2.890782383714e+01+0.000000000000e+00j 2.890782383714e+01+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -6.851091907693e+02+0.000000000000e+00j 3.350650599564e+02+0.000000000000e+00j 3.350650599564e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 -8.546200435520e+02+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -6.775000304802e+02+0.000000000000e+00j 4.550013552749e+02+0.000000000000e+00j 4.550013552749e+02+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -6.851091907668e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -8.546200435528e+02+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -6.775000304813e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -1.105082526729e-14+0.000000000000e+00j -1.011785329388e-13+0.000000000000e+00j 5.027358068558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -3.479796022540e-14+0.000000000000e+00j -3.186012338166e-13+0.000000000000e+00j 1.583065534720e+03+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 2.341025136711e-14+0.000000000000e+00j 2.143382807843e-13+0.000000000000e+00j -1.065003863972e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 8.165966244859e+02+0.000000000000e+00j -1.565824031930e+03+0.000000000000e+00j 3.405764006429e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.224827992548e+03+0.000000000000e+00j 1.466859757958e+03+0.000000000000e+00j 1.674226432371e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -1.160191764816e+02+0.000000000000e+00j -2.837982416495e+02+0.000000000000e+00j -1.176647268028e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804892e+03+0.000000000000e+00j -1.436326007859e+03+0.000000000000e+00j -7.962977575725e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.773373845634e+03+0.000000000000e+00j -9.408488419780e+02+0.000000000000e+00j 2.209454667337e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -9.858366119468e+02+0.000000000000e+00j 9.265906162318e+02+0.000000000000e+00j 5.737601260710e+01+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 1.029630366767e+03+0.000000000000e+00j -1.029630366767e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 2.417747879241e+03+0.000000000000e+00j -2.417747879241e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 -8.075401156560e+02+0.000000000000e+00j 8.075401156560e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 3.449549636261e+02+0.000000000000e+00j -7.484369549129e+02+0.000000000000e+00j 3.449549636261e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 7.252539022813e+02+0.000000000000e+00j -2.663991119425e+03+0.000000000000e+00j 7.252539022813e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192940e+02+0.000000000000e+00j 7.537749371540e+01+0.000000000000e+00j -6.906934192940e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 -8.326275941904e+02+0.000000000000e+00j -8.326275941904e+02+0.000000000000e+00j -1.095902598418e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 -1.515634023272e+03+0.000000000000e+00j -1.515634023272e+03+0.000000000000e+00j 2.246901195603e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 -6.390435888622e+02+0.000000000000e+00j -6.390435888622e+02+0.000000000000e+00j -1.373374188802e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -2.107875696037e+03+0.000000000000e+00j 1.347963952060e+02+0.000000000000e+00j 2.473510677022e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -2.537027099992e+03+0.000000000000e+00j -1.383957859739e+03+0.000000000000e+00j 2.100426273073e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -5.951882676022e+02+0.000000000000e+00j -9.430387165019e+02+0.000000000000e+00j -1.600399579646e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -2.297162805672e+03+0.000000000000e+00j 2.235944633120e+02+0.000000000000e+00j 4.109790152351e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -2.349960447269e+03+0.000000000000e+00j -1.651408145573e+03+0.000000000000e+00j 3.866751154302e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -8.193662174715e+02+0.000000000000e+00j -3.249726472674e+02+0.000000000000e+00j -7.231958063040e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -1.738978129235e+03+0.000000000000e+00j -1.389460562279e+02+0.000000000000e+00j -4.127935937023e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -1.358509986833e+03+0.000000000000e+00j -1.627322748356e+03+0.000000000000e+00j -6.563271480564e-14+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.129334593094e+03+0.000000000000e+00j 4.535788174358e+02+0.000000000000e+00j -1.485404241843e-14+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -1.132852811783e+03+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -2.474222927441e+03+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -3.169800657838e+02+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -8.165966244787e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 3.405764006383e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.224827992550e+03+0.000000000000e+00j -1.466859757964e+03+0.000000000000e+00j 1.674226432375e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 1.160191764851e+02+0.000000000000e+00j 2.837982416352e+02+0.000000000000e+00j -1.176647268019e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -6.603071664925e-15+0.000000000000e+00j -6.045603724411e-14+0.000000000000e+00j 3.003939055115e+02+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -4.844139311942e-14+0.000000000000e+00j -4.435170198374e-13+0.000000000000e+00j 2.203746984141e+03+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 4.182442897798e-14+0.000000000000e+00j 3.829337866263e-13+0.000000000000e+00j -1.902721067418e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 -1.212226534583e+03+0.000000000000e+00j 1.212226534583e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007859e+03+0.000000000000e+00j -1.222381804892e+03+0.000000000000e+00j 7.962977575720e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 9.408488419780e+02+0.000000000000e+00j -2.773373845634e+03+0.000000000000e+00j -2.209454667337e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -9.265906162318e+02+0.000000000000e+00j 9.858366119468e+02+0.000000000000e+00j -5.737601260710e+01+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 5.511984988142e+02+0.000000000000e+00j -1.170914963937e+03+0.000000000000e+00j 5.511984988142e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 4.701433168732e+02+0.000000000000e+00j -3.520407372796e+03+0.000000000000e+00j 4.701433168732e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 -9.131359997229e+02+0.000000000000e+00j 1.570279330276e+02+0.000000000000e+00j -9.131359997229e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 1.347963952060e+02+0.000000000000e+00j -2.107875696037e+03+0.000000000000e+00j 2.473510677022e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -1.383957859739e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 2.100426273073e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -9.430387165019e+02+0.000000000000e+00j -5.951882676022e+02+0.000000000000e+00j -1.600399579646e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 -1.362258017173e+03+0.000000000000e+00j -1.362258017173e+03+0.000000000000e+00j -6.848654363584e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 -2.277392898267e+03+0.000000000000e+00j -2.277392898267e+03+0.000000000000e+00j 1.978995825481e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 -9.309665228030e+02+0.000000000000e+00j -9.309665228030e+02+0.000000000000e+00j -1.522129397386e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -2.658278854984e+03+0.000000000000e+00j -5.517436734186e+01+0.000000000000e+00j -5.964543806476e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -2.244897517877e+03+0.000000000000e+00j -2.407984538040e+03+0.000000000000e+00j -1.022767542874e-13+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -9.608585950688e+02+0.000000000000e+00j -6.727877776834e+02+0.000000000000e+00j -3.590979669168e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -2.297162805675e+03+0.000000000000e+00j 2.235944633189e+02+0.000000000000e+00j -4.109790152335e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -2.349960447274e+03+0.000000000000e+00j -1.651408145566e+03+0.000000000000e+00j -3.866751154283e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -8.193662174822e+02+0.000000000000e+00j -3.249726472726e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -1.170914963950e+03+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -3.520407372805e+03+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 1.570279330060e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -1.222381804894e+03+0.000000000000e+00j 1.436326007861e+03+0.000000000000e+00j -7.962977576048e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -2.773373845637e+03+0.000000000000e+00j 9.408488419795e+02+0.000000000000e+00j 2.209454667325e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 9.858366119346e+02+0.000000000000e+00j -9.265906162319e+02+0.000000000000e+00j 5.737601261443e+01+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 -1.391753177018e+03+0.000000000000e+00j 1.391753177018e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 -1.140089543166e+03+0.000000000000e+00j 1.140089543166e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 1.212226534592e+03+0.000000000000e+00j -1.212226534592e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 6.603071664874e-15+0.000000000000e+00j 6.045603724411e-14+0.000000000000e+00j -3.003939055115e+02+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 4.844139311983e-14+0.000000000000e+00j 4.435170198378e-13+0.000000000000e+00j -2.203746984141e+03+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -4.182442897798e-14+0.000000000000e+00j -3.829337866263e-13+0.000000000000e+00j 1.902721067418e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 1.565824031930e+03+0.000000000000e+00j -8.165966244859e+02+0.000000000000e+00j -3.405764006429e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.466859757958e+03+0.000000000000e+00j -1.224827992548e+03+0.000000000000e+00j -1.674226432371e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 2.837982416495e+02+0.000000000000e+00j 1.160191764816e+02+0.000000000000e+00j 1.176647268028e+03+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 5.453827687681e+02+0.000000000000e+00j -1.132852811781e+03+0.000000000000e+00j 5.453827687681e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -9.798348926316e+02+0.000000000000e+00j -2.474222927435e+03+0.000000000000e+00j -9.798348926316e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 2.890782383714e+01+0.000000000000e+00j -3.169800657750e+02+0.000000000000e+00j 2.890782383714e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 2.235944633120e+02+0.000000000000e+00j -2.297162805672e+03+0.000000000000e+00j 4.109790152351e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -1.651408145573e+03+0.000000000000e+00j -2.349960447269e+03+0.000000000000e+00j 3.866751154302e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -3.249726472674e+02+0.000000000000e+00j -8.193662174715e+02+0.000000000000e+00j -7.231958063040e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -5.517436734186e+01+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j -5.964543806476e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -2.407984538040e+03+0.000000000000e+00j -2.244897517877e+03+0.000000000000e+00j -1.022767542874e-13+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -6.727877776834e+02+0.000000000000e+00j -9.608585950688e+02+0.000000000000e+00j -3.590979669168e-14+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 -1.362258017175e+03+0.000000000000e+00j -1.362258017175e+03+0.000000000000e+00j 6.848654362995e+01+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 -2.277392898260e+03+0.000000000000e+00j -2.277392898260e+03+0.000000000000e+00j -1.978995825498e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 -9.309665228146e+02+0.000000000000e+00j -9.309665228146e+02+0.000000000000e+00j 1.522129397379e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.107875696041e+03+0.000000000000e+00j 1.347963952067e+02+0.000000000000e+00j -2.473510677569e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 -2.537027100001e+03+0.000000000000e+00j -1.383957859722e+03+0.000000000000e+00j -2.100426273078e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -5.951882676219e+02+0.000000000000e+00j -9.430387165091e+02+0.000000000000e+00j 1.600399579641e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -7.484369549273e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -2.663991119437e+03+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 7.537749369760e+01+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 -1.029630366785e+03+0.000000000000e+00j 1.029630366785e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 -2.417747879247e+03+0.000000000000e+00j 2.417747879247e+03+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 8.075401156400e+02+0.000000000000e+00j -8.075401156400e+02+0.000000000000e+00j 0.000000000000e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -1.436326007861e+03+0.000000000000e+00j 1.222381804894e+03+0.000000000000e+00j 7.962977576049e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -9.408488419796e+02+0.000000000000e+00j 2.773373845637e+03+0.000000000000e+00j -2.209454667325e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 9.265906162319e+02+0.000000000000e+00j -9.858366119346e+02+0.000000000000e+00j -5.737601261443e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -1.565824031920e+03+0.000000000000e+00j 8.165966244787e+02+0.000000000000e+00j -3.405764006383e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.466859757964e+03+0.000000000000e+00j 1.224827992550e+03+0.000000000000e+00j -1.674226432375e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -2.837982416353e+02+0.000000000000e+00j -1.160191764851e+02+0.000000000000e+00j 1.176647268019e+03+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 1.105082526729e-14+0.000000000000e+00j 1.011785329383e-13+0.000000000000e+00j -5.027358068558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 3.479796022550e-14+0.000000000000e+00j 3.186012338166e-13+0.000000000000e+00j -1.583065534720e+03+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -2.341025136698e-14+0.000000000000e+00j -2.143382807844e-13+0.000000000000e+00j 1.065003863972e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 3.350650599564e+02+0.000000000000e+00j -6.851091907693e+02+0.000000000000e+00j 3.350650599564e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 -1.317747768119e+03+0.000000000000e+00j -8.546200435520e+02+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 4.550013552749e+02+0.000000000000e+00j -6.775000304802e+02+0.000000000000e+00j 4.550013552749e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -1.389460562279e+02+0.000000000000e+00j -1.738978129235e+03+0.000000000000e+00j -4.127935937023e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -1.627322748356e+03+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j -6.563271480564e-14+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 4.535788174358e+02+0.000000000000e+00j -1.129334593094e+03+0.000000000000e+00j -1.485404241843e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 2.235944633189e+02+0.000000000000e+00j -2.297162805675e+03+0.000000000000e+00j -4.109790152335e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -1.651408145566e+03+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j -3.866751154283e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -3.249726472726e+02+0.000000000000e+00j -8.193662174822e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 1.347963952067e+02+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j -2.473510677569e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 -1.383957859722e+03+0.000000000000e+00j -2.537027100001e+03+0.000000000000e+00j -2.100426273078e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -9.430387165091e+02+0.000000000000e+00j -5.951882676219e+02+0.000000000000e+00j 1.600399579641e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 -8.326275941940e+02+0.000000000000e+00j -8.326275941940e+02+0.000000000000e+00j 1.095902598382e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 -1.515634023269e+03+0.000000000000e+00j -1.515634023269e+03+0.000000000000e+00j -2.246901195613e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 -6.390435888739e+02+0.000000000000e+00j -6.390435888739e+02+0.000000000000e+00j 1.373374188795e+03+0.000000000000e+00j 1.000000000000e-01 + 4.408824939127e+00 -6.440774382626e+02+0.000000000000e+00j -6.440774382626e+02+0.000000000000e+00j 6.440774382626e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939133e+00 -6.440774382705e+02+0.000000000000e+00j -6.440774382705e+02+0.000000000000e+00j 6.440774382705e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103762e+00 -1.407846987107e+03+0.000000000000e+00j -1.407846987107e+03+0.000000000000e+00j 1.407846987107e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -8.326275941955e+02+0.000000000000e+00j -1.095902598229e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -1.515634023277e+03+0.000000000000e+00j 2.246901195615e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -6.390435888751e+02+0.000000000000e+00j -1.373374188791e+03+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -9.813960230292e+02+0.000000000000e+00j 3.903028684481e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -1.439610072415e+03+0.000000000000e+00j 3.181897710267e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.539717814991e+02+0.000000000000e+00j -1.483189426179e+03+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -9.221540938131e+02+0.000000000000e+00j 4.132400085451e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -1.118741331148e+02+0.000000000000e+00j 2.947829831354e+03+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 4.932098470679e+00+0.000000000000e+00j -1.739754380415e+03+0.000000000000e+00j -4.932098470679e+00+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 -6.817503300498e+02+0.000000000000e+00j -1.226291487929e-13+0.000000000000e+00j 6.817503300498e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 1.880020318403e+03+0.000000000000e+00j 3.381667469706e-13+0.000000000000e+00j -1.880020318403e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 -1.091389803066e+03+0.000000000000e+00j -1.963126333089e-13+0.000000000000e+00j 1.091389803066e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -3.350650599558e+02+0.000000000000e+00j -6.851091907668e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 1.317747768132e+03+0.000000000000e+00j -8.546200435528e+02+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -4.550013552696e+02+0.000000000000e+00j -6.775000304813e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 3.097729547225e-14+0.000000000000e+00j -1.409251821178e+03+0.000000000000e+00j -3.097729547227e-14+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 3.097729547185e-14+0.000000000000e+00j -1.409251821172e+03+0.000000000000e+00j -3.097729547205e-14+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 3.751576875907e-14+0.000000000000e+00j -1.706706949096e+03+0.000000000000e+00j -3.751576875904e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 1.955720814232e+02+0.000000000000e+00j -1.931571181618e+03+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -8.360286832812e+02+0.000000000000e+00j -2.327628679175e+03+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -1.902976282779e+02+0.000000000000e+00j -2.153754821739e+03+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 1.611704542809e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -2.103459518153e+02+0.000000000000e+00j -3.440855856631e+03+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.305283557963e+03+0.000000000000e+00j -1.749125406728e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.089702533912e+02+0.000000000000e+00j -1.693883617056e+03+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 3.331454318583e+01+0.000000000000e+00j -2.983841276862e+03+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640354e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -1.095902598229e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 2.246901195615e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -1.373374188791e+03+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 3.449549636286e+02+0.000000000000e+00j 3.449549636286e+02+0.000000000000e+00j 7.484369549179e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 7.252539022881e+02+0.000000000000e+00j 7.252539022881e+02+0.000000000000e+00j 2.663991119428e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192903e+02+0.000000000000e+00j -6.906934192903e+02+0.000000000000e+00j -7.537749370039e+01+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -4.465139540329e-14+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -1.048490992744e-13+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 3.502013360440e-14+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977582707e+00+0.000000000000e+00j 1.222381804899e+03+0.000000000000e+00j 1.436326007856e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.209454667211e+02+0.000000000000e+00j 2.773373845643e+03+0.000000000000e+00j 9.408488419744e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 5.737601261161e+01+0.000000000000e+00j -9.858366119327e+02+0.000000000000e+00j -9.265906162360e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 3.405764006341e+02+0.000000000000e+00j 8.165966244897e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.674226432372e+03+0.000000000000e+00j 1.224827992553e+03+0.000000000000e+00j -1.466859757966e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -1.176647268022e+03+0.000000000000e+00j -1.160191764820e+02+0.000000000000e+00j 2.837982416341e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 5.027358068558e+02+0.000000000000e+00j -1.045124067686e-14+0.000000000000e+00j 1.105082526647e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 1.583065534720e+03+0.000000000000e+00j -3.290992741067e-14+0.000000000000e+00j 3.479796022509e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -1.065003863972e+03+0.000000000000e+00j 2.214008143490e-14+0.000000000000e+00j -2.341025136739e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -3.350650599560e+02+0.000000000000e+00j -6.851091907684e+02+0.000000000000e+00j -3.350650599560e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 1.317747768119e+03+0.000000000000e+00j -8.546200435459e+02+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -4.550013552737e+02+0.000000000000e+00j -6.775000304810e+02+0.000000000000e+00j -4.550013552737e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 3.517178871334e-14+0.000000000000e+00j -1.738978129230e+03+0.000000000000e+00j 1.389460562305e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -5.898560940771e-15+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 1.627322748360e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 3.479174162067e-14+0.000000000000e+00j -1.129334593096e+03+0.000000000000e+00j -4.535788174314e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 4.109790152323e+02+0.000000000000e+00j -2.297162805673e+03+0.000000000000e+00j -2.235944633154e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 3.866751154334e+02+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 1.651408145580e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -7.231958063081e+02+0.000000000000e+00j -8.193662174838e+02+0.000000000000e+00j 3.249726472798e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 2.473510678724e+01+0.000000000000e+00j -2.107875696050e+03+0.000000000000e+00j -1.347963952090e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 2.100426273080e+03+0.000000000000e+00j -2.537027100000e+03+0.000000000000e+00j 1.383957859743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -1.600399579637e+03+0.000000000000e+00j -5.951882676234e+02+0.000000000000e+00j 9.430387165133e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 3.903028684481e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 3.181897710267e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 -1.483189426179e+03+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 1.029630366773e+03+0.000000000000e+00j -2.274024116701e-13+0.000000000000e+00j 1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 2.417747879248e+03+0.000000000000e+00j -5.339796846459e-13+0.000000000000e+00j 2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -8.075401156421e+02+0.000000000000e+00j 1.783519365236e-13+0.000000000000e+00j -8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 9.813960230264e+02+0.000000000000e+00j 9.813960230264e+02+0.000000000000e+00j 3.903028684352e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 1.439610072411e+03+0.000000000000e+00j 1.439610072411e+03+0.000000000000e+00j 3.181897710263e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 -1.539717814987e+02+0.000000000000e+00j -1.539717814987e+02+0.000000000000e+00j -1.483189426185e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -1.368428956438e+01+0.000000000000e+00j 2.228955124172e+03+0.000000000000e+00j 3.405516824148e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 1.664544017633e+03+0.000000000000e+00j 1.737759702190e+03+0.000000000000e+00j 2.155507627740e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -8.232383415556e+01+0.000000000000e+00j -4.074490724521e+02+0.000000000000e+00j -1.487864010841e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -1.937303341824e+02+0.000000000000e+00j 2.336191913904e+03+0.000000000000e+00j 4.709425554437e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 2.256075560900e+03+0.000000000000e+00j 1.257665397688e+03+0.000000000000e+00j 7.723686444910e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -8.541533926821e+02+0.000000000000e+00j -2.739789173907e+02+0.000000000000e+00j -2.479790153572e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 3.405764006429e+02+0.000000000000e+00j 8.165966244859e+02+0.000000000000e+00j -1.565824031930e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.674226432371e+03+0.000000000000e+00j 1.224827992548e+03+0.000000000000e+00j 1.466859757958e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -1.176647268028e+03+0.000000000000e+00j -1.160191764816e+02+0.000000000000e+00j -2.837982416495e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 -6.817503300509e+02+0.000000000000e+00j 1.509746005538e-13+0.000000000000e+00j -6.817503300509e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 1.880020318391e+03+0.000000000000e+00j -4.163332294696e-13+0.000000000000e+00j 1.880020318391e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 -1.091389803073e+03+0.000000000000e+00j 2.416898566889e-13+0.000000000000e+00j -1.091389803073e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -1.565824031931e+03+0.000000000000e+00j -8.165966244843e+02+0.000000000000e+00j 3.405764006424e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.466859757945e+03+0.000000000000e+00j -1.224827992545e+03+0.000000000000e+00j 1.674226432366e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -2.837982416423e+02+0.000000000000e+00j 1.160191764878e+02+0.000000000000e+00j -1.176647268018e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 5.560994671281e-14+0.000000000000e+00j -2.336191913897e+03+0.000000000000e+00j -1.937303341826e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -2.193213150591e-14+0.000000000000e+00j -1.257665397683e+03+0.000000000000e+00j 2.256075560905e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 1.274762034804e-14+0.000000000000e+00j 2.739789173931e+02+0.000000000000e+00j -8.541533926711e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 3.405516824120e+02+0.000000000000e+00j -2.228955124173e+03+0.000000000000e+00j -1.368428956506e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 2.155507627736e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -1.487864010833e+03+0.000000000000e+00j 4.074490724538e+02+0.000000000000e+00j -8.232383415397e+01+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 4.132400085451e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 2.947829831354e+03+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 -1.739754380415e+03+0.000000000000e+00j 4.932098470682e+00+0.000000000000e+00j -4.932098470682e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804899e+03+0.000000000000e+00j -7.962977582706e+00+0.000000000000e+00j 1.436326007856e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.773373845643e+03+0.000000000000e+00j 2.209454667211e+02+0.000000000000e+00j 9.408488419744e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -9.858366119327e+02+0.000000000000e+00j 5.737601261161e+01+0.000000000000e+00j -9.265906162360e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 2.228955124172e+03+0.000000000000e+00j -1.368428956439e+01+0.000000000000e+00j 3.405516824148e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 1.737759702190e+03+0.000000000000e+00j 1.664544017633e+03+0.000000000000e+00j 2.155507627740e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 -4.074490724521e+02+0.000000000000e+00j -8.232383415556e+01+0.000000000000e+00j -1.487864010841e+03+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 1.218893138245e+03+0.000000000000e+00j 1.218893138245e+03+0.000000000000e+00j 5.358589902119e-14+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 2.067573412718e+03+0.000000000000e+00j 2.067573412718e+03+0.000000000000e+00j 9.089622103384e-14+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 -4.039473572620e+02+0.000000000000e+00j -4.039473572620e+02+0.000000000000e+00j -1.775863823788e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -1.368428956542e+01+0.000000000000e+00j 2.228955124171e+03+0.000000000000e+00j -3.405516824124e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 1.664544017648e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j -2.155507627730e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -8.232383416614e+01+0.000000000000e+00j -4.074490724641e+02+0.000000000000e+00j 1.487864010835e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977575723e+00+0.000000000000e+00j 1.222381804892e+03+0.000000000000e+00j -1.436326007859e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.209454667337e+02+0.000000000000e+00j 2.773373845634e+03+0.000000000000e+00j -9.408488419780e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 5.737601260710e+01+0.000000000000e+00j -9.858366119468e+02+0.000000000000e+00j 9.265906162318e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -9.221540938119e+02+0.000000000000e+00j 4.132400085402e+02+0.000000000000e+00j -9.221540938119e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 -1.118741331111e+02+0.000000000000e+00j 2.947829831351e+03+0.000000000000e+00j -1.118741331111e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 4.932098463216e+00+0.000000000000e+00j -1.739754380424e+03+0.000000000000e+00j 4.932098463216e+00+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -2.114543049926e+03+0.000000000000e+00j 4.046492772342e-15+0.000000000000e+00j 1.994915061874e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 1.516378160767e+03+0.000000000000e+00j -3.130970396574e-13+0.000000000000e+00j 1.407377764408e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -1.161560904478e+03+0.000000000000e+00j 4.136700112417e-13+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j -6.118530235880e-14+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j -5.012147596807e-14+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 1.212226534588e+03+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 5.329281676556e-14+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 5.086440146715e-14+0.000000000000e+00j -2.114543049917e+03+0.000000000000e+00j -1.994915061823e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -2.404898519274e-15+0.000000000000e+00j 1.516378160774e+03+0.000000000000e+00j -1.407377764407e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.725128567274e-14+0.000000000000e+00j -1.161560904470e+03+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 6.171043712422e+00 2.160408859439e-18+0.000000000000e+00j -6.817503300498e+02+0.000000000000e+00j 6.817503300498e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566863e+00 -5.957624621233e-18+0.000000000000e+00j 1.880020318403e+03+0.000000000000e+00j -1.880020318403e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280855e+00 3.458521537439e-18+0.000000000000e+00j -1.091389803066e+03+0.000000000000e+00j 1.091389803066e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 8.165966244897e+02+0.000000000000e+00j 3.405764006341e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.224827992553e+03+0.000000000000e+00j 1.674226432372e+03+0.000000000000e+00j -1.466859757966e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -1.160191764820e+02+0.000000000000e+00j -1.176647268022e+03+0.000000000000e+00j 2.837982416341e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 2.336191913904e+03+0.000000000000e+00j -1.937303341824e+02+0.000000000000e+00j 4.709425554437e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 1.257665397688e+03+0.000000000000e+00j 2.256075560900e+03+0.000000000000e+00j 7.723686444910e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -2.739789173907e+02+0.000000000000e+00j -8.541533926821e+02+0.000000000000e+00j -2.479790153572e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 2.228955124171e+03+0.000000000000e+00j -1.368428956543e+01+0.000000000000e+00j -3.405516824124e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 1.737759702187e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j -2.155507627730e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -4.074490724641e+02+0.000000000000e+00j -8.232383416614e+01+0.000000000000e+00j 1.487864010835e+03+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 9.813960230235e+02+0.000000000000e+00j 9.813960230235e+02+0.000000000000e+00j -3.903028684318e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 1.439610072412e+03+0.000000000000e+00j 1.439610072412e+03+0.000000000000e+00j -3.181897710259e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 -1.539717815092e+02+0.000000000000e+00j -1.539717815092e+02+0.000000000000e+00j 1.483189426196e+03+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 -6.139909804174e-16+0.000000000000e+00j 1.029630366767e+03+0.000000000000e+00j -1.029630366767e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 -1.441755642307e-15+0.000000000000e+00j 2.417747879241e+03+0.000000000000e+00j -2.417747879241e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 4.815537335936e-16+0.000000000000e+00j -8.075401156560e+02+0.000000000000e+00j 8.075401156560e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 -9.813960230235e+02+0.000000000000e+00j 3.903028684318e+02+0.000000000000e+00j -9.813960230235e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 -1.439610072412e+03+0.000000000000e+00j 3.181897710259e+03+0.000000000000e+00j -1.439610072412e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 1.539717815092e+02+0.000000000000e+00j -1.483189426196e+03+0.000000000000e+00j 1.539717815092e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -2.228955124171e+03+0.000000000000e+00j 3.405516824124e+02+0.000000000000e+00j 1.368428956543e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -1.737759702187e+03+0.000000000000e+00j 2.155507627730e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 4.074490724641e+02+0.000000000000e+00j -1.487864010835e+03+0.000000000000e+00j 8.232383416614e+01+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 -2.336191913904e+03+0.000000000000e+00j 9.806927103340e-15+0.000000000000e+00j 1.937303341824e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -1.257665397688e+03+0.000000000000e+00j 4.775173286376e-13+0.000000000000e+00j -2.256075560900e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 2.739789173907e+02+0.000000000000e+00j -1.765857731010e-13+0.000000000000e+00j 8.541533926821e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -8.165966244897e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j -3.405764006341e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.224827992553e+03+0.000000000000e+00j 1.466859757966e+03+0.000000000000e+00j -1.674226432372e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 1.160191764820e+02+0.000000000000e+00j -2.837982416341e+02+0.000000000000e+00j 1.176647268022e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112450e+00 -6.851091907668e+02+0.000000000000e+00j -3.350650599558e+02+0.000000000000e+00j 3.350650599558e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093594e+00 -8.546200435528e+02+0.000000000000e+00j 1.317747768132e+03+0.000000000000e+00j -1.317747768132e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721147e+00 -6.775000304813e+02+0.000000000000e+00j -4.550013552696e+02+0.000000000000e+00j 4.550013552696e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -1.105082526729e-14+0.000000000000e+00j 5.027358068558e+02+0.000000000000e+00j 1.105082526810e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -3.479796022550e-14+0.000000000000e+00j 1.583065534720e+03+0.000000000000e+00j 3.479796022469e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 2.341025136709e-14+0.000000000000e+00j -1.065003863972e+03+0.000000000000e+00j -2.341025136698e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 8.165966244859e+02+0.000000000000e+00j 3.405764006429e+02+0.000000000000e+00j -1.565824031930e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.224827992548e+03+0.000000000000e+00j 1.674226432371e+03+0.000000000000e+00j 1.466859757958e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 -1.160191764816e+02+0.000000000000e+00j -1.176647268028e+03+0.000000000000e+00j -2.837982416495e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.222381804892e+03+0.000000000000e+00j -7.962977575721e+00+0.000000000000e+00j -1.436326007859e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 2.773373845634e+03+0.000000000000e+00j 2.209454667337e+02+0.000000000000e+00j -9.408488419780e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -9.858366119468e+02+0.000000000000e+00j 5.737601260710e+01+0.000000000000e+00j 9.265906162318e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236689e+00 1.029630366767e+03+0.000000000000e+00j 1.845929892073e-13+0.000000000000e+00j -1.029630366767e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845307e+00 2.417747879241e+03+0.000000000000e+00j 4.334558522978e-13+0.000000000000e+00j -2.417747879241e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592373e+00 -8.075401156560e+02+0.000000000000e+00j -1.447764641226e-13+0.000000000000e+00j 8.075401156560e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181330e+00 3.449549636261e+02+0.000000000000e+00j 3.449549636261e+02+0.000000000000e+00j -7.484369549129e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658496e+00 7.252539022813e+02+0.000000000000e+00j 7.252539022813e+02+0.000000000000e+00j -2.663991119425e+03+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 -6.906934192940e+02+0.000000000000e+00j -6.906934192940e+02+0.000000000000e+00j 7.537749371539e+01+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 -8.326275941904e+02+0.000000000000e+00j -1.095902598418e+02+0.000000000000e+00j -8.326275941904e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 -1.515634023272e+03+0.000000000000e+00j 2.246901195603e+03+0.000000000000e+00j -1.515634023272e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 -6.390435888622e+02+0.000000000000e+00j -1.373374188802e+03+0.000000000000e+00j -6.390435888622e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 -2.107875696037e+03+0.000000000000e+00j 2.473510677021e+01+0.000000000000e+00j 1.347963952060e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -2.537027099992e+03+0.000000000000e+00j 2.100426273073e+03+0.000000000000e+00j -1.383957859739e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -5.951882676022e+02+0.000000000000e+00j -1.600399579646e+03+0.000000000000e+00j -9.430387165019e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 -2.297162805672e+03+0.000000000000e+00j 4.109790152351e+02+0.000000000000e+00j 2.235944633120e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -2.349960447269e+03+0.000000000000e+00j 3.866751154302e+02+0.000000000000e+00j -1.651408145573e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -8.193662174715e+02+0.000000000000e+00j -7.231958063040e+02+0.000000000000e+00j -3.249726472674e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -1.738978129235e+03+0.000000000000e+00j 6.395002991878e-14+0.000000000000e+00j -1.389460562279e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -1.358509986833e+03+0.000000000000e+00j 3.538194577033e-13+0.000000000000e+00j -1.627322748356e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.129334593094e+03+0.000000000000e+00j -6.726988125714e-14+0.000000000000e+00j 4.535788174358e+02+0.000000000000e+00j 1.000000000000e-01 + 6.162247816937e+00 -1.409251821178e+03+0.000000000000e+00j 2.929656045266e-14+0.000000000000e+00j -3.097729547225e-14+0.000000000000e+00j 1.000000000000e-01 + 6.162247816944e+00 -1.409251821172e+03+0.000000000000e+00j 2.929656045223e-14+0.000000000000e+00j -3.097729547185e-14+0.000000000000e+00j 1.000000000000e-01 + 9.558851750691e+00 -1.706706949096e+03+0.000000000000e+00j 3.548027581567e-14+0.000000000000e+00j -3.751576875909e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 -6.851091907684e+02+0.000000000000e+00j -3.350650599560e+02+0.000000000000e+00j -3.350650599560e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 -8.546200435459e+02+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.317747768119e+03+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 -6.775000304810e+02+0.000000000000e+00j -4.550013552737e+02+0.000000000000e+00j -4.550013552737e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 2.996946154672e-14+0.000000000000e+00j -6.817503300509e+02+0.000000000000e+00j -6.817503300509e+02+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 -8.264491288887e-14+0.000000000000e+00j 1.880020318391e+03+0.000000000000e+00j 1.880020318391e+03+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 4.797704275929e-14+0.000000000000e+00j -1.091389803073e+03+0.000000000000e+00j -1.091389803073e+03+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 4.132400085402e+02+0.000000000000e+00j -9.221540938118e+02+0.000000000000e+00j -9.221540938118e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 2.947829831351e+03+0.000000000000e+00j -1.118741331111e+02+0.000000000000e+00j -1.118741331111e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 -1.739754380424e+03+0.000000000000e+00j 4.932098463212e+00+0.000000000000e+00j 4.932098463212e+00+0.000000000000e+00j 1.000000000000e-01 + 5.120703368609e+00 3.903028684318e+02+0.000000000000e+00j -9.813960230235e+02+0.000000000000e+00j -9.813960230235e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870179e+00 3.181897710259e+03+0.000000000000e+00j -1.439610072412e+03+0.000000000000e+00j -1.439610072412e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609828e+00 -1.483189426196e+03+0.000000000000e+00j 1.539717815092e+02+0.000000000000e+00j 1.539717815092e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844976e+00 -1.095902598418e+02+0.000000000000e+00j -8.326275941904e+02+0.000000000000e+00j -8.326275941904e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649688e+00 2.246901195603e+03+0.000000000000e+00j -1.515634023272e+03+0.000000000000e+00j -1.515634023272e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751932e+00 -1.373374188802e+03+0.000000000000e+00j -6.390435888622e+02+0.000000000000e+00j -6.390435888622e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939138e+00 -6.440774382689e+02+0.000000000000e+00j -6.440774382689e+02+0.000000000000e+00j -6.440774382689e+02+0.000000000000e+00j 1.000000000000e-01 + 4.408824939138e+00 -6.440774382689e+02+0.000000000000e+00j -6.440774382689e+02+0.000000000000e+00j -6.440774382689e+02+0.000000000000e+00j 1.000000000000e-01 + 9.810366103772e+00 -1.407846987100e+03+0.000000000000e+00j -1.407846987100e+03+0.000000000000e+00j -1.407846987100e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 -1.693883617047e+03+0.000000000000e+00j -1.089702534039e+02+0.000000000000e+00j -1.089702534039e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 -2.983841276852e+03+0.000000000000e+00j 3.331454318132e+01+0.000000000000e+00j 3.331454318132e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 -1.492388034624e+03+0.000000000000e+00j -1.792515640352e+03+0.000000000000e+00j -1.792515640352e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 -2.058840261201e+03+0.000000000000e+00j 1.611704542705e+02+0.000000000000e+00j 1.611704542705e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 -3.440855856623e+03+0.000000000000e+00j -2.103459518126e+02+0.000000000000e+00j -2.103459518126e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 -1.749125406708e+03+0.000000000000e+00j -1.305283557962e+03+0.000000000000e+00j -1.305283557962e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 -1.931571181621e+03+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 -2.327628679170e+03+0.000000000000e+00j -8.360286832695e+02+0.000000000000e+00j -8.360286832695e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 -2.153754821733e+03+0.000000000000e+00j -1.902976282771e+02+0.000000000000e+00j -1.902976282771e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.931571181618e+03+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -2.327628679175e+03+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -2.153754821740e+03+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -1.738978129230e+03+0.000000000000e+00j 8.352275633580e-15+0.000000000000e+00j 1.389460562305e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -1.358509986833e+03+0.000000000000e+00j -2.973360537346e-13+0.000000000000e+00j 1.627322748360e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.129334593096e+03+0.000000000000e+00j 1.142247528847e-13+0.000000000000e+00j -4.535788174314e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -8.165966244843e+02+0.000000000000e+00j -1.565824031931e+03+0.000000000000e+00j 3.405764006424e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.224827992545e+03+0.000000000000e+00j 1.466859757945e+03+0.000000000000e+00j 1.674226432366e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 1.160191764878e+02+0.000000000000e+00j -2.837982416423e+02+0.000000000000e+00j -1.176647268018e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 4.209673416884e-14+0.000000000000e+00j -2.114543049926e+03+0.000000000000e+00j 1.994915061874e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -6.425926131698e-14+0.000000000000e+00j 1.516378160767e+03+0.000000000000e+00j 1.407377764408e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 6.831670181286e-14+0.000000000000e+00j -1.161560904478e+03+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 3.405516824124e+02+0.000000000000e+00j -2.228955124171e+03+0.000000000000e+00j 1.368428956542e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 2.155507627730e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -1.487864010835e+03+0.000000000000e+00j 4.074490724641e+02+0.000000000000e+00j 8.232383416614e+01+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 2.473510677022e+01+0.000000000000e+00j -2.107875696037e+03+0.000000000000e+00j 1.347963952060e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 2.100426273073e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j -1.383957859739e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -1.600399579646e+03+0.000000000000e+00j -5.951882676022e+02+0.000000000000e+00j -9.430387165019e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 -1.089702534039e+02+0.000000000000e+00j -1.693883617047e+03+0.000000000000e+00j -1.089702534039e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 3.331454318132e+01+0.000000000000e+00j -2.983841276852e+03+0.000000000000e+00j 3.331454318132e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 -1.792515640352e+03+0.000000000000e+00j -1.492388034624e+03+0.000000000000e+00j -1.792515640352e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 -1.287469747217e+03+0.000000000000e+00j -1.287469747217e+03+0.000000000000e+00j -6.948254471858e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 -2.218454428373e+03+0.000000000000e+00j -2.218454428373e+03+0.000000000000e+00j 1.725508655129e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 -2.011916748796e+03+0.000000000000e+00j -2.011916748796e+03+0.000000000000e+00j -2.139081422565e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -2.855339344593e+03+0.000000000000e+00j 1.167708252118e+02+0.000000000000e+00j -4.048846605956e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -2.754226153073e+03+0.000000000000e+00j -2.133281238363e+03+0.000000000000e+00j 1.271754473739e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -2.292540364973e+03+0.000000000000e+00j -1.815457579586e+03+0.000000000000e+00j -1.439197506327e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -2.901107133229e+03+0.000000000000e+00j 3.958756311590e+02+0.000000000000e+00j -5.506843794693e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -2.455785279109e+03+0.000000000000e+00j -1.768140685530e+03+0.000000000000e+00j -9.284770875828e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -2.557589353128e+03+0.000000000000e+00j -9.018856377877e+02+0.000000000000e+00j -7.604402375890e-14+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -2.058840261207e+03+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -3.440855856631e+03+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.749125406728e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -2.297162805673e+03+0.000000000000e+00j 4.109790152323e+02+0.000000000000e+00j -2.235944633154e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -2.349960447274e+03+0.000000000000e+00j 3.866751154334e+02+0.000000000000e+00j 1.651408145580e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -8.193662174838e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 3.249726472798e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -2.336191913897e+03+0.000000000000e+00j 8.732601479631e-14+0.000000000000e+00j -1.937303341826e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -1.257665397683e+03+0.000000000000e+00j -4.252267872340e-13+0.000000000000e+00j 2.256075560905e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 2.739789173931e+02+0.000000000000e+00j 1.651944237380e-13+0.000000000000e+00j -8.541533926711e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j -6.118530235880e-14+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j -5.012147596807e-14+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 1.212226534588e+03+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 5.329281676556e-14+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 4.709548337438e-14+0.000000000000e+00j -2.336191913904e+03+0.000000000000e+00j 1.937303341824e+02+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 7.722256582591e-14+0.000000000000e+00j -1.257665397688e+03+0.000000000000e+00j -2.256075560900e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -2.479248805700e-14+0.000000000000e+00j 2.739789173907e+02+0.000000000000e+00j 8.541533926821e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 4.109790152351e+02+0.000000000000e+00j -2.297162805672e+03+0.000000000000e+00j 2.235944633120e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 3.866751154302e+02+0.000000000000e+00j -2.349960447269e+03+0.000000000000e+00j -1.651408145573e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -7.231958063040e+02+0.000000000000e+00j -8.193662174715e+02+0.000000000000e+00j -3.249726472674e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 1.611704542705e+02+0.000000000000e+00j -2.058840261201e+03+0.000000000000e+00j 1.611704542705e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 -2.103459518126e+02+0.000000000000e+00j -3.440855856623e+03+0.000000000000e+00j -2.103459518126e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 -1.305283557962e+03+0.000000000000e+00j -1.749125406708e+03+0.000000000000e+00j -1.305283557962e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 1.167708252118e+02+0.000000000000e+00j -2.855339344593e+03+0.000000000000e+00j -4.048846605956e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -2.133281238363e+03+0.000000000000e+00j -2.754226153073e+03+0.000000000000e+00j 1.271754473739e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -1.815457579586e+03+0.000000000000e+00j -2.292540364973e+03+0.000000000000e+00j -1.439197506327e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 -1.629999833649e+03+0.000000000000e+00j -1.629999833649e+03+0.000000000000e+00j -7.165928148162e-14+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 -2.668739100343e+03+0.000000000000e+00j -2.668739100343e+03+0.000000000000e+00j -1.173251201912e-13+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 -2.239677814254e+03+0.000000000000e+00j -2.239677814254e+03+0.000000000000e+00j -9.846240447617e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -2.855339344599e+03+0.000000000000e+00j 1.167708252139e+02+0.000000000000e+00j 4.048846605891e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153072e+03+0.000000000000e+00j -2.133281238353e+03+0.000000000000e+00j -1.271754473744e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -2.292540364986e+03+0.000000000000e+00j -1.815457579590e+03+0.000000000000e+00j 1.439197506310e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.693883617056e+03+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -2.983841276862e+03+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.492388034645e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -2.107875696050e+03+0.000000000000e+00j 2.473510678724e+01+0.000000000000e+00j -1.347963952090e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -2.537027100000e+03+0.000000000000e+00j 2.100426273080e+03+0.000000000000e+00j 1.383957859743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -5.951882676235e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 9.430387165133e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -2.228955124173e+03+0.000000000000e+00j 3.405516824120e+02+0.000000000000e+00j -1.368428956506e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -1.737759702187e+03+0.000000000000e+00j 2.155507627736e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 4.074490724537e+02+0.000000000000e+00j -1.487864010833e+03+0.000000000000e+00j -8.232383415397e+01+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -2.114543049917e+03+0.000000000000e+00j 8.387085082777e-14+0.000000000000e+00j -1.994915061823e+02+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 1.516378160774e+03+0.000000000000e+00j 2.500498769047e-13+0.000000000000e+00j -1.407377764407e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.161560904470e+03+0.000000000000e+00j -3.653752512289e-13+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -1.565824031920e+03+0.000000000000e+00j -8.165966244897e+02+0.000000000000e+00j -3.405764006341e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.466859757966e+03+0.000000000000e+00j -1.224827992553e+03+0.000000000000e+00j -1.674226432372e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -2.837982416341e+02+0.000000000000e+00j 1.160191764820e+02+0.000000000000e+00j 1.176647268022e+03+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 4.127847875246e-14+0.000000000000e+00j -1.738978129235e+03+0.000000000000e+00j -1.389460562279e+02+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 6.562240111066e-14+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j -1.627322748356e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.485691712351e-14+0.000000000000e+00j -1.129334593094e+03+0.000000000000e+00j 4.535788174358e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 1.955720814199e+02+0.000000000000e+00j -1.931571181621e+03+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 -8.360286832695e+02+0.000000000000e+00j -2.327628679170e+03+0.000000000000e+00j -8.360286832695e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 -1.902976282771e+02+0.000000000000e+00j -2.153754821733e+03+0.000000000000e+00j -1.902976282771e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 3.958756311590e+02+0.000000000000e+00j -2.901107133229e+03+0.000000000000e+00j -5.506843794693e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.768140685530e+03+0.000000000000e+00j -2.455785279109e+03+0.000000000000e+00j -9.284770875828e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -9.018856377877e+02+0.000000000000e+00j -2.557589353128e+03+0.000000000000e+00j -7.604402375890e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 1.167708252139e+02+0.000000000000e+00j -2.855339344599e+03+0.000000000000e+00j 4.048846605891e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238353e+03+0.000000000000e+00j -2.754226153072e+03+0.000000000000e+00j -1.271754473744e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -1.815457579590e+03+0.000000000000e+00j -2.292540364986e+03+0.000000000000e+00j 1.439197506310e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 -1.287469747221e+03+0.000000000000e+00j -1.287469747221e+03+0.000000000000e+00j 6.948254471798e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 -2.218454428366e+03+0.000000000000e+00j -2.218454428366e+03+0.000000000000e+00j -1.725508655145e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 -2.011916748810e+03+0.000000000000e+00j -2.011916748810e+03+0.000000000000e+00j 2.139081422556e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175694e+00 -1.195877589769e+03+0.000000000000e+00j -1.195877589769e+03+0.000000000000e+00j 1.195877589769e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175695e+00 -1.195877589778e+03+0.000000000000e+00j -1.195877589778e+03+0.000000000000e+00j 1.195877589778e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501171e+00 -2.632351875672e+03+0.000000000000e+00j -2.632351875672e+03+0.000000000000e+00j 2.632351875672e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -1.287469747220e+03+0.000000000000e+00j -6.948254471676e+02+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -2.218454428379e+03+0.000000000000e+00j 1.725508655138e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.011916748813e+03+0.000000000000e+00j -2.139081422557e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -1.362258017177e+03+0.000000000000e+00j -6.848654362207e+01+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -2.277392898273e+03+0.000000000000e+00j 1.978995825490e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -9.309665228201e+02+0.000000000000e+00j -1.522129397376e+03+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 -1.218893138247e+03+0.000000000000e+00j -2.192471663369e-13+0.000000000000e+00j 1.218893138247e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 -2.067573412721e+03+0.000000000000e+00j -3.719026694865e-13+0.000000000000e+00j 2.067573412721e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 4.039473572554e+02+0.000000000000e+00j 7.265962096967e-14+0.000000000000e+00j -4.039473572554e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -9.221540938131e+02+0.000000000000e+00j -4.132400085451e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -1.118741331148e+02+0.000000000000e+00j -2.947829831354e+03+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 4.932098470677e+00+0.000000000000e+00j 1.739754380415e+03+0.000000000000e+00j -4.932098470677e+00+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -5.453827687707e+02+0.000000000000e+00j -1.132852811783e+03+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 9.798348926358e+02+0.000000000000e+00j -2.474222927441e+03+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -2.890782382811e+01+0.000000000000e+00j -3.169800657838e+02+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.955720814232e+02+0.000000000000e+00j -1.931571181618e+03+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 8.360286832812e+02+0.000000000000e+00j -2.327628679175e+03+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 1.902976282779e+02+0.000000000000e+00j -2.153754821739e+03+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 5.659317535603e-14+0.000000000000e+00j -2.574596465600e+03+0.000000000000e+00j -5.659317535600e-14+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 5.659317535582e-14+0.000000000000e+00j -2.574596465595e+03+0.000000000000e+00j -5.659317535603e-14+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 7.609702299110e-14+0.000000000000e+00j -3.461886087898e+03+0.000000000000e+00j -7.609702299089e-14+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -6.887815763755e+01+0.000000000000e+00j -2.849906817858e+03+0.000000000000e+00j 6.887815763755e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -2.907876485096e+02+0.000000000000e+00j -3.298255165072e+03+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -1.173822321981e+03+0.000000000000e+00j -3.703285199892e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.541150241882e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003413e+02+0.000000000000e+00j -2.570858259195e+03+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -2.466222371689e+03+0.000000000000e+00j -3.141814155967e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -6.948254471676e+02+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 1.725508655138e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.139081422557e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 -1.089702534022e+02+0.000000000000e+00j -1.089702534022e+02+0.000000000000e+00j 1.693883617055e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 3.331454319420e+01+0.000000000000e+00j 3.331454319420e+01+0.000000000000e+00j 2.983841276854e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.792515640355e+03+0.000000000000e+00j -1.792515640355e+03+0.000000000000e+00j 1.492388034645e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 1.347963952064e+02+0.000000000000e+00j 2.473510678252e+01+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -1.383957859744e+03+0.000000000000e+00j 2.100426273090e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -9.430387165139e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 5.951882676210e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 1.368428955981e+01+0.000000000000e+00j 3.405516824254e+02+0.000000000000e+00j 2.228955124167e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -1.664544017651e+03+0.000000000000e+00j 2.155507627743e+03+0.000000000000e+00j 1.737759702183e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 8.232383415304e+01+0.000000000000e+00j -1.487864010830e+03+0.000000000000e+00j -4.074490724557e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 1.994915061823e+02+0.000000000000e+00j -4.272028856579e-13+0.000000000000e+00j 2.114543049917e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 1.407377764407e+03+0.000000000000e+00j 2.741235190650e-13+0.000000000000e+00j -1.516378160774e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.946935955182e+03+0.000000000000e+00j -1.919186532488e-13+0.000000000000e+00j 1.161560904470e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 3.405764006383e+02+0.000000000000e+00j -8.165966244787e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.674226432375e+03+0.000000000000e+00j -1.224827992550e+03+0.000000000000e+00j -1.466859757964e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -1.176647268019e+03+0.000000000000e+00j 1.160191764851e+02+0.000000000000e+00j 2.837982416353e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 1.389460562305e+02+0.000000000000e+00j -1.738978129230e+03+0.000000000000e+00j -3.517090809638e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 1.627322748360e+03+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 5.908874633701e-15+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -4.535788174314e+02+0.000000000000e+00j -1.129334593096e+03+0.000000000000e+00j -3.479461632554e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 -1.955720814199e+02+0.000000000000e+00j -1.931571181623e+03+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 8.360286832711e+02+0.000000000000e+00j -2.327628679167e+03+0.000000000000e+00j 8.360286832711e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 1.902976282757e+02+0.000000000000e+00j -2.153754821741e+03+0.000000000000e+00j 1.902976282757e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 7.246971188759e-14+0.000000000000e+00j -2.901107133228e+03+0.000000000000e+00j -3.958756311563e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.512658118036e-14+0.000000000000e+00j -2.455785279116e+03+0.000000000000e+00j 1.768140685534e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 3.640036345111e-14+0.000000000000e+00j -2.557589353136e+03+0.000000000000e+00j 9.018856377917e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -4.048846605874e+02+0.000000000000e+00j -2.855339344604e+03+0.000000000000e+00j -1.167708252163e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473743e+03+0.000000000000e+00j -2.754226153081e+03+0.000000000000e+00j 2.133281238368e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.439197506317e+03+0.000000000000e+00j -2.292540364991e+03+0.000000000000e+00j 1.815457579596e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -6.848654362207e+01+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 1.978995825490e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -1.522129397376e+03+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 2.473510678253e+01+0.000000000000e+00j 1.347963952064e+02+0.000000000000e+00j 2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 2.100426273090e+03+0.000000000000e+00j -1.383957859744e+03+0.000000000000e+00j 2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -1.600399579637e+03+0.000000000000e+00j -9.430387165139e+02+0.000000000000e+00j 5.951882676210e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 5.511984988163e+02+0.000000000000e+00j 5.511984988163e+02+0.000000000000e+00j 1.170914963942e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 4.701433168860e+02+0.000000000000e+00j 4.701433168860e+02+0.000000000000e+00j 3.520407372794e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 -9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j -1.570279330093e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977578283e+00+0.000000000000e+00j 1.436326007860e+03+0.000000000000e+00j 1.222381804895e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -2.209454667356e+02+0.000000000000e+00j 9.408488419984e+02+0.000000000000e+00j 2.773373845625e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -5.737601261432e+01+0.000000000000e+00j -9.265906162296e+02+0.000000000000e+00j -9.858366119372e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -6.035536967115e-14+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -4.944161577763e-14+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 5.256993971890e-14+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 3.003939055115e+02+0.000000000000e+00j -6.244808827071e-15+0.000000000000e+00j 6.603071664823e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 2.203746984141e+03+0.000000000000e+00j -4.581310861073e-14+0.000000000000e+00j 4.844139311901e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -1.902721067418e+03+0.000000000000e+00j 3.955516107126e-14+0.000000000000e+00j -4.182442897778e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 3.405764006424e+02+0.000000000000e+00j -8.165966244843e+02+0.000000000000e+00j -1.565824031931e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 1.674226432366e+03+0.000000000000e+00j -1.224827992545e+03+0.000000000000e+00j 1.466859757945e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 -1.176647268018e+03+0.000000000000e+00j 1.160191764878e+02+0.000000000000e+00j -2.837982416423e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 -5.453827687685e+02+0.000000000000e+00j -1.132852811782e+03+0.000000000000e+00j -5.453827687685e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 9.798348926173e+02+0.000000000000e+00j -2.474222927432e+03+0.000000000000e+00j 9.798348926173e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 -2.890782382813e+01+0.000000000000e+00j -3.169800657809e+02+0.000000000000e+00j -2.890782382813e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -4.109790152451e+02+0.000000000000e+00j -2.297162805671e+03+0.000000000000e+00j -2.235944633121e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -3.866751154420e+02+0.000000000000e+00j -2.349960447270e+03+0.000000000000e+00j 1.651408145570e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 7.231958063048e+02+0.000000000000e+00j -8.193662174821e+02+0.000000000000e+00j 3.249726472808e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 5.722017061889e-14+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j 5.517436734321e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -3.569615866223e-15+0.000000000000e+00j -2.244897517883e+03+0.000000000000e+00j 2.407984538050e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 6.336457234320e-15+0.000000000000e+00j -9.608585950775e+02+0.000000000000e+00j 6.727877776973e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217363486844e+00 3.862568771178e-18+0.000000000000e+00j -1.218893138247e+03+0.000000000000e+00j 1.218893138247e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616714e+00 6.551964438533e-18+0.000000000000e+00j -2.067573412721e+03+0.000000000000e+00j 2.067573412721e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630527e+00 -1.280074846913e-18+0.000000000000e+00j 4.039473572554e+02+0.000000000000e+00j -4.039473572554e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 3.405516824254e+02+0.000000000000e+00j 1.368428955981e+01+0.000000000000e+00j 2.228955124167e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 2.155507627743e+03+0.000000000000e+00j -1.664544017651e+03+0.000000000000e+00j 1.737759702183e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -1.487864010830e+03+0.000000000000e+00j 8.232383415304e+01+0.000000000000e+00j -4.074490724557e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007860e+03+0.000000000000e+00j 7.962977578278e+00+0.000000000000e+00j 1.222381804895e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 9.408488419985e+02+0.000000000000e+00j -2.209454667356e+02+0.000000000000e+00j 2.773373845625e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 -9.265906162296e+02+0.000000000000e+00j -5.737601261432e+01+0.000000000000e+00j -9.858366119372e+02+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 9.221540938127e+02+0.000000000000e+00j 9.221540938127e+02+0.000000000000e+00j 4.132400085402e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 1.118741331224e+02+0.000000000000e+00j 1.118741331224e+02+0.000000000000e+00j 2.947829831349e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 -4.932098469482e+00+0.000000000000e+00j -4.932098469482e+00+0.000000000000e+00j -1.739754380418e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 -1.994915061874e+02+0.000000000000e+00j 2.114543049926e+03+0.000000000000e+00j 4.209546982558e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -1.407377764408e+03+0.000000000000e+00j -1.516378160767e+03+0.000000000000e+00j -6.426818105996e-14+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 1.946935955182e+03+0.000000000000e+00j 1.161560904478e+03+0.000000000000e+00j 6.832904117004e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 -8.299326877334e-16+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 -6.798601896060e-16+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 7.228770464433e-16+0.000000000000e+00j -1.212226534583e+03+0.000000000000e+00j 1.212226534583e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 1.994915061874e+02+0.000000000000e+00j 4.189085341701e-13+0.000000000000e+00j -2.114543049926e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 1.407377764408e+03+0.000000000000e+00j -3.326387214441e-13+0.000000000000e+00j 1.516378160767e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 -1.946935955182e+03+0.000000000000e+00j 2.728673184233e-13+0.000000000000e+00j -1.161560904478e+03+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -9.221540938127e+02+0.000000000000e+00j -4.132400085402e+02+0.000000000000e+00j -9.221540938127e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 -1.118741331224e+02+0.000000000000e+00j -2.947829831349e+03+0.000000000000e+00j -1.118741331224e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 4.932098469481e+00+0.000000000000e+00j 1.739754380418e+03+0.000000000000e+00j 4.932098469481e+00+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007860e+03+0.000000000000e+00j -1.222381804895e+03+0.000000000000e+00j -7.962977578282e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -9.408488419985e+02+0.000000000000e+00j -2.773373845625e+03+0.000000000000e+00j 2.209454667356e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 9.265906162296e+02+0.000000000000e+00j 9.858366119372e+02+0.000000000000e+00j 5.737601261432e+01+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -3.405516824254e+02+0.000000000000e+00j -2.228955124167e+03+0.000000000000e+00j -1.368428955981e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -2.155507627743e+03+0.000000000000e+00j -1.737759702183e+03+0.000000000000e+00j 1.664544017651e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 1.487864010830e+03+0.000000000000e+00j 4.074490724557e+02+0.000000000000e+00j -8.232383415304e+01+0.000000000000e+00j 1.000000000000e-01 + 5.709250455334e+00 -4.132400085451e+02+0.000000000000e+00j -9.221540938131e+02+0.000000000000e+00j 9.221540938131e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253372e+00 -2.947829831354e+03+0.000000000000e+00j -1.118741331148e+02+0.000000000000e+00j 1.118741331148e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744002e+00 1.739754380415e+03+0.000000000000e+00j 4.932098470680e+00+0.000000000000e+00j -4.932098470680e+00+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -5.085226419478e-14+0.000000000000e+00j 1.994915061823e+02+0.000000000000e+00j 2.114543049917e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 2.386368251168e-15+0.000000000000e+00j 1.407377764407e+03+0.000000000000e+00j -1.516378160774e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.727098679786e-14+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j 1.161560904470e+03+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 1.391753177029e+03+0.000000000000e+00j -3.073802396661e-13+0.000000000000e+00j 1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 1.140089543169e+03+0.000000000000e+00j -2.517982375066e-13+0.000000000000e+00j 1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -1.212226534588e+03+0.000000000000e+00j 2.677302907453e-13+0.000000000000e+00j -1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 2.114543049926e+03+0.000000000000e+00j -1.994915061874e+02+0.000000000000e+00j 4.209546982558e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -1.516378160767e+03+0.000000000000e+00j -1.407377764408e+03+0.000000000000e+00j -6.426818105996e-14+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 1.161560904478e+03+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 6.832904117004e-14+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 9.221540938118e+02+0.000000000000e+00j 9.221540938118e+02+0.000000000000e+00j -4.132400085402e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253368e+00 1.118741331111e+02+0.000000000000e+00j 1.118741331111e+02+0.000000000000e+00j -2.947829831351e+03+0.000000000000e+00j 1.000000000000e-01 + 9.207710743991e+00 -4.932098463223e+00+0.000000000000e+00j -4.932098463223e+00+0.000000000000e+00j 1.739754380424e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977575726e+00+0.000000000000e+00j 1.436326007859e+03+0.000000000000e+00j -1.222381804892e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.209454667337e+02+0.000000000000e+00j 9.408488419780e+02+0.000000000000e+00j -2.773373845634e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -5.737601260710e+01+0.000000000000e+00j -9.265906162318e+02+0.000000000000e+00j 9.858366119468e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 1.368428956542e+01+0.000000000000e+00j 3.405516824124e+02+0.000000000000e+00j -2.228955124171e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 -1.664544017648e+03+0.000000000000e+00j 2.155507627730e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 8.232383416614e+01+0.000000000000e+00j -1.487864010835e+03+0.000000000000e+00j 4.074490724641e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 -1.218893138245e+03+0.000000000000e+00j 2.699256554091e-13+0.000000000000e+00j -1.218893138245e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 -2.067573412718e+03+0.000000000000e+00j 4.578671345525e-13+0.000000000000e+00j -2.067573412718e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 4.039473572620e+02+0.000000000000e+00j -8.945472883516e-14+0.000000000000e+00j 4.039473572620e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509313e+00 -2.228955124172e+03+0.000000000000e+00j -3.405516824148e+02+0.000000000000e+00j 1.368428956439e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -1.737759702190e+03+0.000000000000e+00j -2.155507627740e+03+0.000000000000e+00j -1.664544017633e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 4.074490724521e+02+0.000000000000e+00j 1.487864010841e+03+0.000000000000e+00j 8.232383415556e+01+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804899e+03+0.000000000000e+00j -1.436326007856e+03+0.000000000000e+00j 7.962977582709e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.773373845643e+03+0.000000000000e+00j -9.408488419744e+02+0.000000000000e+00j -2.209454667211e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 9.858366119327e+02+0.000000000000e+00j 9.265906162360e+02+0.000000000000e+00j -5.737601261161e+01+0.000000000000e+00j 1.000000000000e-01 + 5.886471015349e+00 -1.132852811783e+03+0.000000000000e+00j -5.453827687707e+02+0.000000000000e+00j 5.453827687707e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100413e+00 -2.474222927441e+03+0.000000000000e+00j 9.798348926358e+02+0.000000000000e+00j -9.798348926358e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806795e+00 -3.169800657838e+02+0.000000000000e+00j -2.890782382811e+01+0.000000000000e+00j 2.890782382811e+01+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -8.165966244787e+02+0.000000000000e+00j 3.405764006383e+02+0.000000000000e+00j 1.565824031920e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.224827992550e+03+0.000000000000e+00j 1.674226432375e+03+0.000000000000e+00j -1.466859757964e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 1.160191764851e+02+0.000000000000e+00j -1.176647268019e+03+0.000000000000e+00j 2.837982416353e+02+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -6.603071665027e-15+0.000000000000e+00j 3.003939055115e+02+0.000000000000e+00j 6.603071664925e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -4.844139311901e-14+0.000000000000e+00j 2.203746984141e+03+0.000000000000e+00j 4.844139311983e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 4.182442897778e-14+0.000000000000e+00j -1.902721067418e+03+0.000000000000e+00j -4.182442897737e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258313e+00 1.391753177029e+03+0.000000000000e+00j 2.495146680582e-13+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726731e+00 1.140089543169e+03+0.000000000000e+00j 2.043962022977e-13+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070229e+00 -1.212226534583e+03+0.000000000000e+00j -2.173289821645e-13+0.000000000000e+00j 1.212226534583e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 1.436326007859e+03+0.000000000000e+00j 7.962977575719e+00+0.000000000000e+00j -1.222381804892e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 9.408488419780e+02+0.000000000000e+00j -2.209454667337e+02+0.000000000000e+00j -2.773373845634e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717085e+00 -9.265906162318e+02+0.000000000000e+00j -5.737601260710e+01+0.000000000000e+00j 9.858366119468e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 5.511984988142e+02+0.000000000000e+00j 5.511984988142e+02+0.000000000000e+00j -1.170914963937e+03+0.000000000000e+00j 1.000000000000e-01 + 6.365132215538e+00 4.701433168732e+02+0.000000000000e+00j 4.701433168732e+02+0.000000000000e+00j -3.520407372796e+03+0.000000000000e+00j 1.000000000000e-01 + 9.690018385183e+00 -9.131359997229e+02+0.000000000000e+00j -9.131359997229e+02+0.000000000000e+00j 1.570279330276e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 1.347963952060e+02+0.000000000000e+00j 2.473510677021e+01+0.000000000000e+00j -2.107875696037e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 -1.383957859739e+03+0.000000000000e+00j 2.100426273073e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -9.430387165019e+02+0.000000000000e+00j -1.600399579646e+03+0.000000000000e+00j -5.951882676022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 -1.362258017173e+03+0.000000000000e+00j -6.848654363585e+01+0.000000000000e+00j -1.362258017173e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 -2.277392898267e+03+0.000000000000e+00j 1.978995825481e+03+0.000000000000e+00j -2.277392898267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 -9.309665228030e+02+0.000000000000e+00j -1.522129397386e+03+0.000000000000e+00j -9.309665228030e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -2.658278854984e+03+0.000000000000e+00j 6.630096222960e-14+0.000000000000e+00j -5.517436734186e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -2.244897517877e+03+0.000000000000e+00j 5.284329971235e-13+0.000000000000e+00j -2.407984538040e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -9.608585950688e+02+0.000000000000e+00j 1.545793917739e-13+0.000000000000e+00j -6.727877776834e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -2.297162805675e+03+0.000000000000e+00j -4.109790152335e+02+0.000000000000e+00j 2.235944633189e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -2.349960447274e+03+0.000000000000e+00j -3.866751154283e+02+0.000000000000e+00j -1.651408145566e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -8.193662174822e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j -3.249726472726e+02+0.000000000000e+00j 1.000000000000e-01 + 5.686212080845e+00 -1.931571181618e+03+0.000000000000e+00j -1.955720814232e+02+0.000000000000e+00j 1.955720814232e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842358e+00 -2.327628679175e+03+0.000000000000e+00j 8.360286832812e+02+0.000000000000e+00j -8.360286832812e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225689e+00 -2.153754821740e+03+0.000000000000e+00j 1.902976282779e+02+0.000000000000e+00j -1.902976282779e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -1.738978129230e+03+0.000000000000e+00j 1.389460562305e+02+0.000000000000e+00j -3.517090809638e-14+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -1.358509986833e+03+0.000000000000e+00j 1.627322748360e+03+0.000000000000e+00j 5.908874633701e-15+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -1.129334593096e+03+0.000000000000e+00j -4.535788174314e+02+0.000000000000e+00j -3.479461632554e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -8.165966244843e+02+0.000000000000e+00j 3.405764006424e+02+0.000000000000e+00j -1.565824031931e+03+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.224827992545e+03+0.000000000000e+00j 1.674226432366e+03+0.000000000000e+00j 1.466859757945e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 1.160191764878e+02+0.000000000000e+00j -1.176647268018e+03+0.000000000000e+00j -2.837982416423e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217142e+00 4.208206821108e-14+0.000000000000e+00j 1.994915061874e+02+0.000000000000e+00j -2.114543049926e+03+0.000000000000e+00j 1.000000000000e-01 + 8.569509964613e+00 -6.425857051679e-14+0.000000000000e+00j 1.407377764408e+03+0.000000000000e+00j 1.516378160767e+03+0.000000000000e+00j 1.000000000000e-01 + 8.669948656652e+00 6.832167937031e-14+0.000000000000e+00j -1.946935955182e+03+0.000000000000e+00j -1.161560904478e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 3.405516824124e+02+0.000000000000e+00j 1.368428956543e+01+0.000000000000e+00j -2.228955124171e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473519e+00 2.155507627730e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208912e+00 -1.487864010835e+03+0.000000000000e+00j 8.232383416614e+01+0.000000000000e+00j 4.074490724641e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457920e+00 2.473510677022e+01+0.000000000000e+00j 1.347963952060e+02+0.000000000000e+00j -2.107875696037e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531753e+00 2.100426273073e+03+0.000000000000e+00j -1.383957859739e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -1.600399579646e+03+0.000000000000e+00j -9.430387165019e+02+0.000000000000e+00j -5.951882676022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700620e+00 -1.089702534039e+02+0.000000000000e+00j -1.089702534039e+02+0.000000000000e+00j -1.693883617047e+03+0.000000000000e+00j 1.000000000000e-01 + 4.696452605928e+00 3.331454318132e+01+0.000000000000e+00j 3.331454318132e+01+0.000000000000e+00j -2.983841276852e+03+0.000000000000e+00j 1.000000000000e-01 + 9.352183072674e+00 -1.792515640352e+03+0.000000000000e+00j -1.792515640352e+03+0.000000000000e+00j -1.492388034624e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 -1.287469747217e+03+0.000000000000e+00j -6.948254471858e+02+0.000000000000e+00j -1.287469747217e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 -2.218454428373e+03+0.000000000000e+00j 1.725508655129e+03+0.000000000000e+00j -2.218454428373e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 -2.011916748796e+03+0.000000000000e+00j -2.139081422565e+03+0.000000000000e+00j -2.011916748796e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -2.855339344593e+03+0.000000000000e+00j -4.048846605956e+02+0.000000000000e+00j 1.167708252118e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -2.754226153073e+03+0.000000000000e+00j 1.271754473739e+03+0.000000000000e+00j -2.133281238363e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -2.292540364973e+03+0.000000000000e+00j -1.439197506327e+03+0.000000000000e+00j -1.815457579586e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 -2.901107133229e+03+0.000000000000e+00j -1.889232278849e-14+0.000000000000e+00j 3.958756311590e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -2.455785279109e+03+0.000000000000e+00j 4.048038048095e-13+0.000000000000e+00j -1.768140685530e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -2.557589353128e+03+0.000000000000e+00j 2.336089112722e-13+0.000000000000e+00j -9.018856377877e+02+0.000000000000e+00j 1.000000000000e-01 + 5.162878828392e+00 -2.574596465600e+03+0.000000000000e+00j 5.352259962490e-14+0.000000000000e+00j -5.659317535603e-14+0.000000000000e+00j 1.000000000000e-01 + 5.162878828401e+00 -2.574596465595e+03+0.000000000000e+00j 5.352259962479e-14+0.000000000000e+00j -5.659317535582e-14+0.000000000000e+00j 1.000000000000e-01 + 8.281247231959e+00 -3.461886087898e+03+0.000000000000e+00j 7.196822706245e-14+0.000000000000e+00j -7.609702299110e-14+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 -1.931571181623e+03+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j -1.955720814199e+02+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 -2.327628679167e+03+0.000000000000e+00j 8.360286832711e+02+0.000000000000e+00j 8.360286832711e+02+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 -2.153754821741e+03+0.000000000000e+00j 1.902976282757e+02+0.000000000000e+00j 1.902976282757e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 -1.132852811782e+03+0.000000000000e+00j -5.453827687685e+02+0.000000000000e+00j -5.453827687685e+02+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -2.474222927432e+03+0.000000000000e+00j 9.798348926173e+02+0.000000000000e+00j 9.798348926173e+02+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 -3.169800657809e+02+0.000000000000e+00j -2.890782382813e+01+0.000000000000e+00j -2.890782382813e+01+0.000000000000e+00j 1.000000000000e-01 + 5.709250455328e+00 -4.132400085402e+02+0.000000000000e+00j -9.221540938127e+02+0.000000000000e+00j -9.221540938127e+02+0.000000000000e+00j 1.000000000000e-01 + 8.001028253359e+00 -2.947829831349e+03+0.000000000000e+00j -1.118741331224e+02+0.000000000000e+00j -1.118741331224e+02+0.000000000000e+00j 1.000000000000e-01 + 9.207710744000e+00 1.739754380418e+03+0.000000000000e+00j 4.932098469478e+00+0.000000000000e+00j 4.932098469478e+00+0.000000000000e+00j 1.000000000000e-01 + 5.217363486838e+00 5.358203645235e-14+0.000000000000e+00j -1.218893138245e+03+0.000000000000e+00j -1.218893138245e+03+0.000000000000e+00j 1.000000000000e-01 + 7.854999616706e+00 9.088966907112e-14+0.000000000000e+00j -2.067573412718e+03+0.000000000000e+00j -2.067573412718e+03+0.000000000000e+00j 1.000000000000e-01 + 9.063866630519e+00 -1.775735816788e-14+0.000000000000e+00j 4.039473572620e+02+0.000000000000e+00j 4.039473572620e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909403e+00 -6.848654363584e+01+0.000000000000e+00j -1.362258017173e+03+0.000000000000e+00j -1.362258017173e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834566e+00 1.978995825481e+03+0.000000000000e+00j -2.277392898267e+03+0.000000000000e+00j -2.277392898267e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902966e+00 -1.522129397386e+03+0.000000000000e+00j -9.309665228030e+02+0.000000000000e+00j -9.309665228030e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953789e+00 -6.948254471858e+02+0.000000000000e+00j -1.287469747217e+03+0.000000000000e+00j -1.287469747217e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351294e+00 1.725508655129e+03+0.000000000000e+00j -2.218454428373e+03+0.000000000000e+00j -2.218454428373e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594732e+00 -2.139081422565e+03+0.000000000000e+00j -2.011916748796e+03+0.000000000000e+00j -2.011916748796e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175701e+00 -1.195877589777e+03+0.000000000000e+00j -1.195877589777e+03+0.000000000000e+00j -1.195877589777e+03+0.000000000000e+00j 1.000000000000e-01 + 3.718116175701e+00 -1.195877589777e+03+0.000000000000e+00j -1.195877589777e+03+0.000000000000e+00j -1.195877589777e+03+0.000000000000e+00j 1.000000000000e-01 + 8.295231501187e+00 -2.632351875665e+03+0.000000000000e+00j -2.632351875665e+03+0.000000000000e+00j -2.632351875665e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 -3.270970228798e+03+0.000000000000e+00j -3.541150241892e+02+0.000000000000e+00j -3.541150241892e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -2.570858259189e+03+0.000000000000e+00j -4.336803003555e+02+0.000000000000e+00j -4.336803003555e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 -3.141814155950e+03+0.000000000000e+00j -2.466222371692e+03+0.000000000000e+00j -2.466222371692e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 -2.849906817857e+03+0.000000000000e+00j -6.887815764670e+01+0.000000000000e+00j -6.887815764670e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 -3.298255165069e+03+0.000000000000e+00j -2.907876484991e+02+0.000000000000e+00j -2.907876484991e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 -3.703285199880e+03+0.000000000000e+00j -1.173822321991e+03+0.000000000000e+00j -1.173822321991e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -2.849906817858e+03+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -3.298255165072e+03+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -3.703285199892e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -2.901107133228e+03+0.000000000000e+00j 1.395130085044e-13+0.000000000000e+00j -3.958756311563e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -2.455785279116e+03+0.000000000000e+00j -3.026984737295e-13+0.000000000000e+00j 1.768140685534e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -2.557589353136e+03+0.000000000000e+00j -1.272708246782e-13+0.000000000000e+00j 9.018856377917e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -2.297162805671e+03+0.000000000000e+00j -4.109790152451e+02+0.000000000000e+00j -2.235944633121e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -2.349960447270e+03+0.000000000000e+00j -3.866751154420e+02+0.000000000000e+00j 1.651408145570e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -8.193662174821e+02+0.000000000000e+00j 7.231958063048e+02+0.000000000000e+00j 3.249726472808e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804895e+03+0.000000000000e+00j -1.436326007860e+03+0.000000000000e+00j -7.962977578284e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -2.773373845625e+03+0.000000000000e+00j -9.408488419984e+02+0.000000000000e+00j 2.209454667356e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 9.858366119372e+02+0.000000000000e+00j 9.265906162296e+02+0.000000000000e+00j 5.737601261432e+01+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -3.405516824148e+02+0.000000000000e+00j -2.228955124172e+03+0.000000000000e+00j 1.368428956439e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -2.155507627740e+03+0.000000000000e+00j -1.737759702190e+03+0.000000000000e+00j -1.664544017633e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 1.487864010841e+03+0.000000000000e+00j 4.074490724521e+02+0.000000000000e+00j 8.232383415556e+01+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 5.964508837937e-14+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j -5.517436734186e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 1.022614928906e-13+0.000000000000e+00j -2.244897517877e+03+0.000000000000e+00j -2.407984538040e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 3.590553267715e-14+0.000000000000e+00j -9.608585950688e+02+0.000000000000e+00j -6.727877776834e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -4.048846605956e+02+0.000000000000e+00j -2.855339344593e+03+0.000000000000e+00j 1.167708252118e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 1.271754473739e+03+0.000000000000e+00j -2.754226153073e+03+0.000000000000e+00j -2.133281238363e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -1.439197506327e+03+0.000000000000e+00j -2.292540364973e+03+0.000000000000e+00j -1.815457579586e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 -3.541150241892e+02+0.000000000000e+00j -3.270970228798e+03+0.000000000000e+00j -3.541150241892e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003555e+02+0.000000000000e+00j -2.570858259189e+03+0.000000000000e+00j -4.336803003555e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 -2.466222371692e+03+0.000000000000e+00j -3.141814155950e+03+0.000000000000e+00j -2.466222371692e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 -1.677827869084e+03+0.000000000000e+00j -1.677827869084e+03+0.000000000000e+00j -8.010663469957e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 -2.675742073394e+03+0.000000000000e+00j -2.675742073394e+03+0.000000000000e+00j 1.061468362371e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 -3.295829288942e+03+0.000000000000e+00j -3.295829288942e+03+0.000000000000e+00j -1.982424451106e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -3.326019148224e+03+0.000000000000e+00j 2.477472180376e+02+0.000000000000e+00j -6.766465559394e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -3.069970706092e+03+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j -1.129898041029e-13+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -3.909325828783e+03+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j -1.411318178507e-13+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.270970228804e+03+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -2.570858259195e+03+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -3.141814155967e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -2.855339344604e+03+0.000000000000e+00j -4.048846605874e+02+0.000000000000e+00j -1.167708252163e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153081e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 2.133281238368e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -2.292540364991e+03+0.000000000000e+00j -1.439197506317e+03+0.000000000000e+00j 1.815457579596e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -2.658278854984e+03+0.000000000000e+00j 4.422353879147e-14+0.000000000000e+00j 5.517436734322e+01+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -2.244897517883e+03+0.000000000000e+00j -4.350958449511e-13+0.000000000000e+00j 2.407984538050e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -9.608585950775e+02+0.000000000000e+00j -1.146293253740e-13+0.000000000000e+00j 6.727877776973e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -2.228955124167e+03+0.000000000000e+00j -3.405516824254e+02+0.000000000000e+00j -1.368428955981e+01+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -1.737759702183e+03+0.000000000000e+00j -2.155507627743e+03+0.000000000000e+00j 1.664544017651e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 4.074490724557e+02+0.000000000000e+00j 1.487864010830e+03+0.000000000000e+00j -8.232383415304e+01+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007856e+03+0.000000000000e+00j -1.222381804899e+03+0.000000000000e+00j 7.962977582707e+00+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -9.408488419744e+02+0.000000000000e+00j -2.773373845643e+03+0.000000000000e+00j -2.209454667211e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 9.265906162360e+02+0.000000000000e+00j 9.858366119327e+02+0.000000000000e+00j -5.737601261161e+01+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -4.109790152335e+02+0.000000000000e+00j -2.297162805675e+03+0.000000000000e+00j 2.235944633189e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -3.866751154283e+02+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j -1.651408145566e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 7.231958063081e+02+0.000000000000e+00j -8.193662174822e+02+0.000000000000e+00j -3.249726472726e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 5.507094693915e-14+0.000000000000e+00j -2.901107133229e+03+0.000000000000e+00j 3.958756311590e+02+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 9.283650258301e-14+0.000000000000e+00j -2.455785279109e+03+0.000000000000e+00j -1.768140685530e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 7.603830776159e-14+0.000000000000e+00j -2.557589353128e+03+0.000000000000e+00j -9.018856377877e+02+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 -6.887815764670e+01+0.000000000000e+00j -2.849906817857e+03+0.000000000000e+00j -6.887815764670e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 -2.907876484991e+02+0.000000000000e+00j -3.298255165069e+03+0.000000000000e+00j -2.907876484991e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 -1.173822321991e+03+0.000000000000e+00j -3.703285199880e+03+0.000000000000e+00j -1.173822321991e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 2.477472180376e+02+0.000000000000e+00j -3.326019148224e+03+0.000000000000e+00j -6.766465559394e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -2.070280719288e+03+0.000000000000e+00j -3.069970706092e+03+0.000000000000e+00j -1.129898041029e-13+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -2.511191789093e+03+0.000000000000e+00j -3.909325828783e+03+0.000000000000e+00j -1.411318178507e-13+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 -1.677827869086e+03+0.000000000000e+00j -1.677827869086e+03+0.000000000000e+00j 8.010663469824e+02+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 -2.675742073388e+03+0.000000000000e+00j -2.675742073388e+03+0.000000000000e+00j -1.061468362377e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 -3.295829288950e+03+0.000000000000e+00j -3.295829288950e+03+0.000000000000e+00j 1.982424451074e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340515e+00 -1.595448846499e+03+0.000000000000e+00j -1.595448846499e+03+0.000000000000e+00j 1.595448846499e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 -1.595448846495e+03+0.000000000000e+00j -1.595448846495e+03+0.000000000000e+00j 1.595448846495e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234885e+00 -3.544786741862e+03+0.000000000000e+00j -3.544786741862e+03+0.000000000000e+00j 3.544786741862e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -1.677827869087e+03+0.000000000000e+00j -8.010663469828e+02+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -2.675742073398e+03+0.000000000000e+00j 1.061468362370e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -3.295829288952e+03+0.000000000000e+00j -1.982424451087e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 -1.629999833653e+03+0.000000000000e+00j -2.931945659913e-13+0.000000000000e+00j 1.629999833653e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 -2.668739100354e+03+0.000000000000e+00j -4.800367375001e-13+0.000000000000e+00j 2.668739100354e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 -2.239677814266e+03+0.000000000000e+00j -4.028597740666e-13+0.000000000000e+00j 2.239677814266e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 -1.362258017177e+03+0.000000000000e+00j 6.848654362207e+01+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -2.277392898273e+03+0.000000000000e+00j -1.978995825490e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 -9.309665228201e+02+0.000000000000e+00j 1.522129397376e+03+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -9.813960230292e+02+0.000000000000e+00j -3.903028684481e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -1.439610072415e+03+0.000000000000e+00j -3.181897710267e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.539717814991e+02+0.000000000000e+00j 1.483189426179e+03+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -5.511984988225e+02+0.000000000000e+00j -1.170914963950e+03+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -4.701433168759e+02+0.000000000000e+00j -3.520407372805e+03+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 9.131359997239e+02+0.000000000000e+00j 1.570279330060e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -1.611704542809e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 2.103459518153e+02+0.000000000000e+00j -3.440855856631e+03+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 1.305283557963e+03+0.000000000000e+00j -1.749125406728e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 6.887815763756e+01+0.000000000000e+00j -2.849906817858e+03+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 2.907876485096e+02+0.000000000000e+00j -3.298255165072e+03+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 1.173822321981e+03+0.000000000000e+00j -3.703285199892e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 7.381782677561e-14+0.000000000000e+00j -3.358198488056e+03+0.000000000000e+00j -7.381782677551e-14+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 7.381782677561e-14+0.000000000000e+00j -3.358198488058e+03+0.000000000000e+00j -7.381782677571e-14+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 1.125284788007e-13+0.000000000000e+00j -5.119264327847e+03+0.000000000000e+00j -1.125284788001e-13+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -1.906161083910e+02+0.000000000000e+00j -3.621818540516e+03+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -4.960658211669e+02+0.000000000000e+00j -3.298148639035e+03+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -2.410990334891e+03+0.000000000000e+00j -4.812325680570e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -8.010663469828e+02+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 1.061468362370e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -1.982424451087e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 -3.541150241790e+02+0.000000000000e+00j -3.541150241790e+02+0.000000000000e+00j 3.270970228804e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 -4.336803003525e+02+0.000000000000e+00j -4.336803003525e+02+0.000000000000e+00j 2.570858259196e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 -2.466222371691e+03+0.000000000000e+00j -2.466222371691e+03+0.000000000000e+00j 3.141814155966e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 1.167708252122e+02+0.000000000000e+00j -4.048846605795e+02+0.000000000000e+00j 2.855339344597e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238364e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 2.754226153082e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.815457579598e+03+0.000000000000e+00j -1.439197506316e+03+0.000000000000e+00j 2.292540364990e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -5.517436734321e+01+0.000000000000e+00j -5.306936911409e-13+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -2.407984538050e+03+0.000000000000e+00j -3.990767230459e-13+0.000000000000e+00j 2.244897517883e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -6.727877776973e+02+0.000000000000e+00j -1.782521561667e-13+0.000000000000e+00j 9.608585950775e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 1.368428956506e+01+0.000000000000e+00j -3.405516824120e+02+0.000000000000e+00j 2.228955124173e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -1.664544017648e+03+0.000000000000e+00j -2.155507627736e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 8.232383415397e+01+0.000000000000e+00j 1.487864010833e+03+0.000000000000e+00j -4.074490724537e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -7.962977576045e+00+0.000000000000e+00j -1.222381804894e+03+0.000000000000e+00j 1.436326007861e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 2.209454667325e+02+0.000000000000e+00j -2.773373845637e+03+0.000000000000e+00j 9.408488419795e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 5.737601261443e+01+0.000000000000e+00j 9.858366119346e+02+0.000000000000e+00j -9.265906162319e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -2.235944633154e+02+0.000000000000e+00j -2.297162805673e+03+0.000000000000e+00j 4.109790152323e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 1.651408145580e+03+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 3.866751154334e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 3.249726472798e+02+0.000000000000e+00j -8.193662174838e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -3.958756311563e+02+0.000000000000e+00j -2.901107133228e+03+0.000000000000e+00j -7.247222087635e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 1.768140685534e+03+0.000000000000e+00j -2.455785279116e+03+0.000000000000e+00j -1.511537500763e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 9.018856377917e+02+0.000000000000e+00j -2.557589353136e+03+0.000000000000e+00j -3.639464745298e-14+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 6.887815764371e+01+0.000000000000e+00j -2.849906817861e+03+0.000000000000e+00j 6.887815764371e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 2.907876484989e+02+0.000000000000e+00j -3.298255165074e+03+0.000000000000e+00j 2.907876484989e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 1.173822321981e+03+0.000000000000e+00j -3.703285199893e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 7.855473538139e-14+0.000000000000e+00j -3.326019148229e+03+0.000000000000e+00j -2.477472180394e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 2.198768350179e-14+0.000000000000e+00j -3.069970706102e+03+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 3.074882683382e-14+0.000000000000e+00j -3.909325828790e+03+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118281e+00 5.165330952277e-18+0.000000000000e+00j -1.629999833653e+03+0.000000000000e+00j 1.629999833653e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580362e+00 8.457007414379e-18+0.000000000000e+00j -2.668739100354e+03+0.000000000000e+00j 2.668739100354e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741046e+00 7.097348661245e-18+0.000000000000e+00j -2.239677814266e+03+0.000000000000e+00j 2.239677814266e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -4.048846605795e+02+0.000000000000e+00j 1.167708252121e+02+0.000000000000e+00j 2.855339344597e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 1.271754473743e+03+0.000000000000e+00j -2.133281238364e+03+0.000000000000e+00j 2.754226153082e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.439197506316e+03+0.000000000000e+00j -1.815457579598e+03+0.000000000000e+00j 2.292540364990e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 1.611704542722e+02+0.000000000000e+00j 1.611704542722e+02+0.000000000000e+00j 2.058840261207e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 -2.103459517990e+02+0.000000000000e+00j -2.103459517990e+02+0.000000000000e+00j 3.440855856625e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 -1.305283557965e+03+0.000000000000e+00j -1.305283557965e+03+0.000000000000e+00j 1.749125406727e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 2.235944633121e+02+0.000000000000e+00j 4.109790152451e+02+0.000000000000e+00j 2.297162805671e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -1.651408145570e+03+0.000000000000e+00j 3.866751154420e+02+0.000000000000e+00j 2.349960447270e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -3.249726472808e+02+0.000000000000e+00j -7.231958063048e+02+0.000000000000e+00j 8.193662174821e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 1.937303341826e+02+0.000000000000e+00j -4.714283101705e-13+0.000000000000e+00j 2.336191913897e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -2.256075560905e+03+0.000000000000e+00j -2.047196166226e-13+0.000000000000e+00j 1.257665397683e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 8.541533926711e+02+0.000000000000e+00j 3.705807585546e-14+0.000000000000e+00j -2.739789173931e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 8.299326877272e-16+0.000000000000e+00j -1.391753177018e+03+0.000000000000e+00j 1.391753177018e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 6.798601896036e-16+0.000000000000e+00j -1.140089543166e+03+0.000000000000e+00j 1.140089543166e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 -7.228770464483e-16+0.000000000000e+00j 1.212226534592e+03+0.000000000000e+00j -1.212226534592e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -1.937303341826e+02+0.000000000000e+00j -2.336191913897e+03+0.000000000000e+00j -5.561117454149e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 2.256075560905e+03+0.000000000000e+00j -1.257665397683e+03+0.000000000000e+00j 2.194643013012e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -8.541533926711e+02+0.000000000000e+00j 2.739789173931e+02+0.000000000000e+00j -1.275303382656e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -2.235944633121e+02+0.000000000000e+00j -2.297162805671e+03+0.000000000000e+00j -4.109790152452e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 1.651408145570e+03+0.000000000000e+00j -2.349960447270e+03+0.000000000000e+00j -3.866751154420e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 3.249726472808e+02+0.000000000000e+00j -8.193662174821e+02+0.000000000000e+00j 7.231958063048e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 -1.611704542722e+02+0.000000000000e+00j -2.058840261207e+03+0.000000000000e+00j -1.611704542722e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 2.103459517990e+02+0.000000000000e+00j -3.440855856625e+03+0.000000000000e+00j 2.103459517990e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 1.305283557965e+03+0.000000000000e+00j -1.749125406727e+03+0.000000000000e+00j 1.305283557965e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 4.048846605795e+02+0.000000000000e+00j -2.855339344597e+03+0.000000000000e+00j -1.167708252121e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473743e+03+0.000000000000e+00j -2.754226153082e+03+0.000000000000e+00j 2.133281238364e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.439197506316e+03+0.000000000000e+00j -2.292540364990e+03+0.000000000000e+00j 1.815457579598e+03+0.000000000000e+00j 1.000000000000e-01 + 4.568615909405e+00 6.848654362207e+01+0.000000000000e+00j -1.362258017177e+03+0.000000000000e+00j 1.362258017177e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834567e+00 -1.978995825490e+03+0.000000000000e+00j -2.277392898273e+03+0.000000000000e+00j 2.277392898273e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902968e+00 1.522129397376e+03+0.000000000000e+00j -9.309665228201e+02+0.000000000000e+00j 9.309665228201e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -5.720297321478e-14+0.000000000000e+00j -5.517436734322e+01+0.000000000000e+00j 2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 3.599105041853e-15+0.000000000000e+00j -2.407984538050e+03+0.000000000000e+00j 2.244897517883e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -6.326103461314e-15+0.000000000000e+00j -6.727877776973e+02+0.000000000000e+00j 9.608585950775e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 4.109790152451e+02+0.000000000000e+00j 2.235944633121e+02+0.000000000000e+00j 2.297162805671e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 3.866751154420e+02+0.000000000000e+00j -1.651408145570e+03+0.000000000000e+00j 2.349960447270e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -7.231958063048e+02+0.000000000000e+00j -3.249726472808e+02+0.000000000000e+00j 8.193662174821e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015344e+00 5.453827687685e+02+0.000000000000e+00j 5.453827687685e+02+0.000000000000e+00j 1.132852811782e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -9.798348926173e+02+0.000000000000e+00j -9.798348926173e+02+0.000000000000e+00j 2.474222927432e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806792e+00 2.890782382813e+01+0.000000000000e+00j 2.890782382813e+01+0.000000000000e+00j 3.169800657809e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 -3.405764006424e+02+0.000000000000e+00j 1.565824031931e+03+0.000000000000e+00j 8.165966244843e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.674226432366e+03+0.000000000000e+00j -1.466859757945e+03+0.000000000000e+00j 1.224827992545e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 1.176647268018e+03+0.000000000000e+00j 2.837982416423e+02+0.000000000000e+00j -1.160191764878e+02+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 -3.003939055115e+02+0.000000000000e+00j 6.244808826969e-15+0.000000000000e+00j -6.603071665027e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 -2.203746984141e+03+0.000000000000e+00j 4.581310861053e-14+0.000000000000e+00j -4.844139311942e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 1.902721067418e+03+0.000000000000e+00j -3.955516107106e-14+0.000000000000e+00j 4.182442897778e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 6.035536967110e-14+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 4.944161577763e-14+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 -5.256993971911e-14+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -7.962977578282e+00+0.000000000000e+00j -1.222381804895e+03+0.000000000000e+00j -1.436326007860e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 2.209454667356e+02+0.000000000000e+00j -2.773373845625e+03+0.000000000000e+00j -9.408488419985e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 5.737601261432e+01+0.000000000000e+00j 9.858366119372e+02+0.000000000000e+00j 9.265906162296e+02+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -5.511984988163e+02+0.000000000000e+00j -1.170914963942e+03+0.000000000000e+00j -5.511984988163e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 -4.701433168860e+02+0.000000000000e+00j -3.520407372794e+03+0.000000000000e+00j -4.701433168860e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 9.131359997239e+02+0.000000000000e+00j 1.570279330093e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.473510678253e+01+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j -1.347963952064e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -2.100426273090e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j 1.383957859744e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 1.600399579637e+03+0.000000000000e+00j -5.951882676209e+02+0.000000000000e+00j 9.430387165139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368610e+00 -3.903028684481e+02+0.000000000000e+00j -9.813960230292e+02+0.000000000000e+00j 9.813960230292e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870180e+00 -3.181897710267e+03+0.000000000000e+00j -1.439610072415e+03+0.000000000000e+00j 1.439610072415e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609834e+00 1.483189426179e+03+0.000000000000e+00j 1.539717814991e+02+0.000000000000e+00j -1.539717814991e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -3.405516824120e+02+0.000000000000e+00j 1.368428956505e+01+0.000000000000e+00j 2.228955124173e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -2.155507627736e+03+0.000000000000e+00j -1.664544017648e+03+0.000000000000e+00j 1.737759702187e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 1.487864010833e+03+0.000000000000e+00j 8.232383415397e+01+0.000000000000e+00j -4.074490724537e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -5.559636815412e-14+0.000000000000e+00j 1.937303341826e+02+0.000000000000e+00j 2.336191913897e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 2.195440099959e-14+0.000000000000e+00j -2.256075560905e+03+0.000000000000e+00j 1.257665397683e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 -1.275477025879e-14+0.000000000000e+00j 8.541533926711e+02+0.000000000000e+00j -2.739789173931e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079852e+00 1.565824031931e+03+0.000000000000e+00j -3.405764006424e+02+0.000000000000e+00j 8.165966244843e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.466859757945e+03+0.000000000000e+00j -1.674226432366e+03+0.000000000000e+00j 1.224827992545e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159588e+00 2.837982416423e+02+0.000000000000e+00j 1.176647268018e+03+0.000000000000e+00j -1.160191764878e+02+0.000000000000e+00j 1.000000000000e-01 + 6.171043712417e+00 6.817503300509e+02+0.000000000000e+00j 6.817503300509e+02+0.000000000000e+00j 2.997162195563e-14+0.000000000000e+00j 1.000000000000e-01 + 7.739218566858e+00 -1.880020318391e+03+0.000000000000e+00j -1.880020318391e+03+0.000000000000e+00j -8.265087051369e-14+0.000000000000e+00j 1.000000000000e-01 + 9.436766280851e+00 1.091389803073e+03+0.000000000000e+00j 1.091389803073e+03+0.000000000000e+00j 4.798050128053e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 -3.405764006429e+02+0.000000000000e+00j 1.565824031930e+03+0.000000000000e+00j -8.165966244859e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.674226432371e+03+0.000000000000e+00j -1.466859757958e+03+0.000000000000e+00j -1.224827992548e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 1.176647268028e+03+0.000000000000e+00j 2.837982416495e+02+0.000000000000e+00j 1.160191764816e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 1.937303341824e+02+0.000000000000e+00j 4.633734936205e-13+0.000000000000e+00j -2.336191913904e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 -2.256075560900e+03+0.000000000000e+00j 2.985215235111e-13+0.000000000000e+00j -1.257665397688e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 8.541533926821e+02+0.000000000000e+00j -7.257161023991e-14+0.000000000000e+00j 2.739789173907e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509313e+00 1.368428956439e+01+0.000000000000e+00j -3.405516824148e+02+0.000000000000e+00j -2.228955124172e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -1.664544017633e+03+0.000000000000e+00j -2.155507627740e+03+0.000000000000e+00j -1.737759702190e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 8.232383415556e+01+0.000000000000e+00j 1.487864010841e+03+0.000000000000e+00j 4.074490724521e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 -9.813960230264e+02+0.000000000000e+00j -3.903028684352e+02+0.000000000000e+00j -9.813960230264e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 -1.439610072411e+03+0.000000000000e+00j -3.181897710263e+03+0.000000000000e+00j -1.439610072411e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 1.539717814987e+02+0.000000000000e+00j 1.483189426185e+03+0.000000000000e+00j 1.539717814987e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -1.029630366773e+03+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j -4.526538638363e-14+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -2.417747879248e+03+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j -1.062908549185e-13+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 8.075401156421e+02+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 3.550168733787e-14+0.000000000000e+00j 1.000000000000e-01 + 5.311606608475e+00 -1.170914963950e+03+0.000000000000e+00j -5.511984988225e+02+0.000000000000e+00j 5.511984988225e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215539e+00 -3.520407372805e+03+0.000000000000e+00j -4.701433168759e+02+0.000000000000e+00j 4.701433168759e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385186e+00 1.570279330060e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j -9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -1.222381804894e+03+0.000000000000e+00j -7.962977576046e+00+0.000000000000e+00j 1.436326007861e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -2.773373845637e+03+0.000000000000e+00j 2.209454667325e+02+0.000000000000e+00j 9.408488419796e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 9.858366119346e+02+0.000000000000e+00j 5.737601261443e+01+0.000000000000e+00j -9.265906162319e+02+0.000000000000e+00j 1.000000000000e-01 + 6.499026258316e+00 -1.391753177018e+03+0.000000000000e+00j -2.495146680563e-13+0.000000000000e+00j 1.391753177018e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726734e+00 -1.140089543166e+03+0.000000000000e+00j -2.043962022971e-13+0.000000000000e+00j 1.140089543166e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070240e+00 1.212226534592e+03+0.000000000000e+00j 2.173289821661e-13+0.000000000000e+00j -1.212226534592e+03+0.000000000000e+00j 1.000000000000e-01 + 6.890402489845e+00 6.603071664823e-15+0.000000000000e+00j -3.003939055115e+02+0.000000000000e+00j -6.603071664823e-15+0.000000000000e+00j 1.000000000000e-01 + 7.916625655708e+00 4.844139311901e-14+0.000000000000e+00j -2.203746984141e+03+0.000000000000e+00j -4.844139311901e-14+0.000000000000e+00j 1.000000000000e-01 + 8.962350133777e+00 -4.182442897778e-14+0.000000000000e+00j 1.902721067418e+03+0.000000000000e+00j 4.182442897819e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079851e+00 1.565824031930e+03+0.000000000000e+00j -3.405764006429e+02+0.000000000000e+00j -8.165966244859e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569860e+00 -1.466859757958e+03+0.000000000000e+00j -1.674226432371e+03+0.000000000000e+00j -1.224827992548e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159585e+00 2.837982416495e+02+0.000000000000e+00j 1.176647268028e+03+0.000000000000e+00j 1.160191764816e+02+0.000000000000e+00j 1.000000000000e-01 + 5.886471015343e+00 5.453827687681e+02+0.000000000000e+00j 5.453827687681e+02+0.000000000000e+00j -1.132852811781e+03+0.000000000000e+00j 1.000000000000e-01 + 7.052421100410e+00 -9.798348926316e+02+0.000000000000e+00j -9.798348926316e+02+0.000000000000e+00j -2.474222927435e+03+0.000000000000e+00j 1.000000000000e-01 + 9.426230806791e+00 2.890782383714e+01+0.000000000000e+00j 2.890782383714e+01+0.000000000000e+00j -3.169800657750e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 2.235944633120e+02+0.000000000000e+00j 4.109790152351e+02+0.000000000000e+00j -2.297162805672e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 -1.651408145573e+03+0.000000000000e+00j 3.866751154302e+02+0.000000000000e+00j -2.349960447269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -3.249726472674e+02+0.000000000000e+00j -7.231958063040e+02+0.000000000000e+00j -8.193662174715e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 -5.517436734186e+01+0.000000000000e+00j 5.329877015703e-13+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 -2.407984538040e+03+0.000000000000e+00j 4.991946203969e-13+0.000000000000e+00j -2.244897517877e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 -6.727877776834e+02+0.000000000000e+00j 2.062249677019e-13+0.000000000000e+00j -9.608585950688e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 -1.362258017175e+03+0.000000000000e+00j 6.848654362996e+01+0.000000000000e+00j -1.362258017175e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 -2.277392898260e+03+0.000000000000e+00j -1.978995825498e+03+0.000000000000e+00j -2.277392898260e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 -9.309665228146e+02+0.000000000000e+00j 1.522129397379e+03+0.000000000000e+00j -9.309665228146e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.107875696041e+03+0.000000000000e+00j -2.473510677568e+01+0.000000000000e+00j 1.347963952067e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 -2.537027100001e+03+0.000000000000e+00j -2.100426273078e+03+0.000000000000e+00j -1.383957859722e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -5.951882676219e+02+0.000000000000e+00j 1.600399579641e+03+0.000000000000e+00j -9.430387165091e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614186e+00 -2.058840261207e+03+0.000000000000e+00j -1.611704542809e+02+0.000000000000e+00j 1.611704542809e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627746e+00 -3.440855856631e+03+0.000000000000e+00j 2.103459518153e+02+0.000000000000e+00j -2.103459518153e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550817e+00 -1.749125406728e+03+0.000000000000e+00j 1.305283557963e+03+0.000000000000e+00j -1.305283557963e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -2.297162805673e+03+0.000000000000e+00j -2.235944633154e+02+0.000000000000e+00j 4.109790152323e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -2.349960447274e+03+0.000000000000e+00j 1.651408145580e+03+0.000000000000e+00j 3.866751154334e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -8.193662174838e+02+0.000000000000e+00j 3.249726472798e+02+0.000000000000e+00j -7.231958063081e+02+0.000000000000e+00j 1.000000000000e-01 + 6.212085631664e+00 -2.336191913897e+03+0.000000000000e+00j -1.937303341826e+02+0.000000000000e+00j -5.561117454149e-14+0.000000000000e+00j 1.000000000000e-01 + 7.599956891666e+00 -1.257665397683e+03+0.000000000000e+00j 2.256075560905e+03+0.000000000000e+00j 2.194643013012e-14+0.000000000000e+00j 1.000000000000e-01 + 9.121468823386e+00 2.739789173931e+02+0.000000000000e+00j -8.541533926711e+02+0.000000000000e+00j -1.275303382656e-14+0.000000000000e+00j 1.000000000000e-01 + 6.499026258312e+00 -1.391753177029e+03+0.000000000000e+00j 3.073802396661e-13+0.000000000000e+00j -1.391753177029e+03+0.000000000000e+00j 1.000000000000e-01 + 8.172018726729e+00 -1.140089543169e+03+0.000000000000e+00j 2.517982375066e-13+0.000000000000e+00j -1.140089543169e+03+0.000000000000e+00j 1.000000000000e-01 + 8.841630070238e+00 1.212226534588e+03+0.000000000000e+00j -2.677302907453e-13+0.000000000000e+00j 1.212226534588e+03+0.000000000000e+00j 1.000000000000e-01 + 6.212085631661e+00 4.707944915710e-14+0.000000000000e+00j 1.937303341824e+02+0.000000000000e+00j -2.336191913904e+03+0.000000000000e+00j 1.000000000000e-01 + 7.599956891662e+00 7.722889357983e-14+0.000000000000e+00j -2.256075560900e+03+0.000000000000e+00j -1.257665397688e+03+0.000000000000e+00j 1.000000000000e-01 + 9.121468823381e+00 -2.479616510532e-14+0.000000000000e+00j 8.541533926821e+02+0.000000000000e+00j 2.739789173907e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568940e+00 4.109790152351e+02+0.000000000000e+00j 2.235944633120e+02+0.000000000000e+00j -2.297162805672e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401500e+00 3.866751154302e+02+0.000000000000e+00j -1.651408145573e+03+0.000000000000e+00j -2.349960447269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089456e+00 -7.231958063040e+02+0.000000000000e+00j -3.249726472674e+02+0.000000000000e+00j -8.193662174715e+02+0.000000000000e+00j 1.000000000000e-01 + 5.084439614182e+00 1.611704542705e+02+0.000000000000e+00j 1.611704542705e+02+0.000000000000e+00j -2.058840261201e+03+0.000000000000e+00j 1.000000000000e-01 + 5.544261627747e+00 -2.103459518126e+02+0.000000000000e+00j -2.103459518126e+02+0.000000000000e+00j -3.440855856623e+03+0.000000000000e+00j 1.000000000000e-01 + 8.933106550821e+00 -1.305283557962e+03+0.000000000000e+00j -1.305283557962e+03+0.000000000000e+00j -1.749125406708e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 1.167708252118e+02+0.000000000000e+00j -4.048846605956e+02+0.000000000000e+00j -2.855339344593e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 -2.133281238363e+03+0.000000000000e+00j 1.271754473739e+03+0.000000000000e+00j -2.754226153073e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -1.815457579586e+03+0.000000000000e+00j -1.439197506327e+03+0.000000000000e+00j -2.292540364973e+03+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 -1.629999833649e+03+0.000000000000e+00j 3.609658300711e-13+0.000000000000e+00j -1.629999833649e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 -2.668739100343e+03+0.000000000000e+00j 5.909961490252e-13+0.000000000000e+00j -2.668739100343e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 -2.239677814254e+03+0.000000000000e+00j 4.959799041839e-13+0.000000000000e+00j -2.239677814254e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 -2.855339344599e+03+0.000000000000e+00j 4.048846605891e+02+0.000000000000e+00j 1.167708252139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153072e+03+0.000000000000e+00j -1.271754473744e+03+0.000000000000e+00j -2.133281238353e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -2.292540364986e+03+0.000000000000e+00j 1.439197506310e+03+0.000000000000e+00j -1.815457579590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257159e+00 -2.849906817858e+03+0.000000000000e+00j 6.887815763756e+01+0.000000000000e+00j -6.887815763756e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924449e+00 -3.298255165072e+03+0.000000000000e+00j 2.907876485096e+02+0.000000000000e+00j -2.907876485096e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452504e+00 -3.703285199892e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -2.901107133228e+03+0.000000000000e+00j -3.958756311563e+02+0.000000000000e+00j -7.247222087635e-14+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -2.455785279116e+03+0.000000000000e+00j 1.768140685534e+03+0.000000000000e+00j -1.511537500763e-14+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -2.557589353136e+03+0.000000000000e+00j 9.018856377917e+02+0.000000000000e+00j -3.639464745298e-14+0.000000000000e+00j 1.000000000000e-01 + 5.593783568942e+00 -2.297162805671e+03+0.000000000000e+00j -2.235944633121e+02+0.000000000000e+00j -4.109790152451e+02+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -2.349960447270e+03+0.000000000000e+00j 1.651408145570e+03+0.000000000000e+00j -3.866751154420e+02+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -8.193662174821e+02+0.000000000000e+00j 3.249726472808e+02+0.000000000000e+00j 7.231958063048e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.222381804895e+03+0.000000000000e+00j -7.962977578280e+00+0.000000000000e+00j -1.436326007860e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881312e+00 -2.773373845625e+03+0.000000000000e+00j 2.209454667356e+02+0.000000000000e+00j -9.408488419984e+02+0.000000000000e+00j 1.000000000000e-01 + 9.439946717092e+00 9.858366119372e+02+0.000000000000e+00j 5.737601261432e+01+0.000000000000e+00j 9.265906162296e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509314e+00 -3.405516824148e+02+0.000000000000e+00j 1.368428956439e+01+0.000000000000e+00j -2.228955124172e+03+0.000000000000e+00j 1.000000000000e-01 + 7.475852473513e+00 -2.155507627740e+03+0.000000000000e+00j -1.664544017633e+03+0.000000000000e+00j -1.737759702190e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208917e+00 1.487864010841e+03+0.000000000000e+00j 8.232383415556e+01+0.000000000000e+00j 4.074490724521e+02+0.000000000000e+00j 1.000000000000e-01 + 4.916570700371e+00 5.962859034522e-14+0.000000000000e+00j -5.517436734186e+01+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j 1.000000000000e-01 + 6.716886976964e+00 1.022625265083e-13+0.000000000000e+00j -2.407984538040e+03+0.000000000000e+00j -2.244897517877e+03+0.000000000000e+00j 1.000000000000e-01 + 8.977333823242e+00 3.590370693328e-14+0.000000000000e+00j -6.727877776834e+02+0.000000000000e+00j -9.608585950688e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052921e+00 -4.048846605956e+02+0.000000000000e+00j 1.167708252118e+02+0.000000000000e+00j -2.855339344593e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049382e+00 1.271754473739e+03+0.000000000000e+00j -2.133281238363e+03+0.000000000000e+00j -2.754226153073e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104507e+00 -1.439197506327e+03+0.000000000000e+00j -1.815457579586e+03+0.000000000000e+00j -2.292540364973e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311366e+00 -3.541150241892e+02+0.000000000000e+00j -3.541150241892e+02+0.000000000000e+00j -3.270970228798e+03+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -4.336803003555e+02+0.000000000000e+00j -4.336803003555e+02+0.000000000000e+00j -2.570858259189e+03+0.000000000000e+00j 1.000000000000e-01 + 7.704051593164e+00 -2.466222371692e+03+0.000000000000e+00j -2.466222371692e+03+0.000000000000e+00j -3.141814155950e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 -1.677827869084e+03+0.000000000000e+00j -8.010663469957e+02+0.000000000000e+00j -1.677827869084e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 -2.675742073394e+03+0.000000000000e+00j 1.061468362371e+03+0.000000000000e+00j -2.675742073394e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 -3.295829288942e+03+0.000000000000e+00j -1.982424451106e+03+0.000000000000e+00j -3.295829288942e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 -3.326019148224e+03+0.000000000000e+00j 1.957704712401e-14+0.000000000000e+00j 2.477472180376e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -3.069970706092e+03+0.000000000000e+00j 4.780209673019e-13+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -3.909325828783e+03+0.000000000000e+00j 5.836829835087e-13+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 3.678827995347e+00 -3.358198488056e+03+0.000000000000e+00j 6.981269318858e-14+0.000000000000e+00j -7.381782677561e-14+0.000000000000e+00j 1.000000000000e-01 + 3.678827995357e+00 -3.358198488058e+03+0.000000000000e+00j 6.981269318858e-14+0.000000000000e+00j -7.381782677561e-14+0.000000000000e+00j 1.000000000000e-01 + 6.148719801041e+00 -5.119264327847e+03+0.000000000000e+00j 1.064230214927e-13+0.000000000000e+00j -1.125284788005e-13+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 -2.849906817861e+03+0.000000000000e+00j 6.887815764371e+01+0.000000000000e+00j 6.887815764371e+01+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 -3.298255165074e+03+0.000000000000e+00j 2.907876484989e+02+0.000000000000e+00j 2.907876484989e+02+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 -3.703285199893e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.173822321981e+03+0.000000000000e+00j 1.000000000000e-01 + 5.084439614181e+00 -2.058840261207e+03+0.000000000000e+00j -1.611704542722e+02+0.000000000000e+00j -1.611704542722e+02+0.000000000000e+00j 1.000000000000e-01 + 5.544261627748e+00 -3.440855856625e+03+0.000000000000e+00j 2.103459517991e+02+0.000000000000e+00j 2.103459517991e+02+0.000000000000e+00j 1.000000000000e-01 + 8.933106550816e+00 -1.749125406727e+03+0.000000000000e+00j 1.305283557965e+03+0.000000000000e+00j 1.305283557965e+03+0.000000000000e+00j 1.000000000000e-01 + 5.311606608474e+00 -1.170914963942e+03+0.000000000000e+00j -5.511984988163e+02+0.000000000000e+00j -5.511984988163e+02+0.000000000000e+00j 1.000000000000e-01 + 6.365132215531e+00 -3.520407372794e+03+0.000000000000e+00j -4.701433168860e+02+0.000000000000e+00j -4.701433168860e+02+0.000000000000e+00j 1.000000000000e-01 + 9.690018385185e+00 1.570279330093e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 9.131359997239e+02+0.000000000000e+00j 1.000000000000e-01 + 5.120703368607e+00 -3.903028684352e+02+0.000000000000e+00j -9.813960230264e+02+0.000000000000e+00j -9.813960230264e+02+0.000000000000e+00j 1.000000000000e-01 + 6.738373870169e+00 -3.181897710263e+03+0.000000000000e+00j -1.439610072411e+03+0.000000000000e+00j -1.439610072411e+03+0.000000000000e+00j 1.000000000000e-01 + 9.746050609831e+00 1.483189426185e+03+0.000000000000e+00j 1.539717814987e+02+0.000000000000e+00j 1.539717814987e+02+0.000000000000e+00j 1.000000000000e-01 + 4.568615909401e+00 6.848654362995e+01+0.000000000000e+00j -1.362258017175e+03+0.000000000000e+00j -1.362258017175e+03+0.000000000000e+00j 1.000000000000e-01 + 6.464678834561e+00 -1.978995825498e+03+0.000000000000e+00j -2.277392898260e+03+0.000000000000e+00j -2.277392898260e+03+0.000000000000e+00j 1.000000000000e-01 + 9.161700902965e+00 1.522129397379e+03+0.000000000000e+00j -9.309665228146e+02+0.000000000000e+00j -9.309665228146e+02+0.000000000000e+00j 1.000000000000e-01 + 3.800968118278e+00 7.165411615119e-14+0.000000000000e+00j -1.629999833649e+03+0.000000000000e+00j -1.629999833649e+03+0.000000000000e+00j 1.000000000000e-01 + 5.470989580363e+00 1.173166631837e-13+0.000000000000e+00j -2.668739100343e+03+0.000000000000e+00j -2.668739100343e+03+0.000000000000e+00j 1.000000000000e-01 + 8.166402741049e+00 9.845530713205e-14+0.000000000000e+00j -2.239677814254e+03+0.000000000000e+00j -2.239677814254e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422199e+00 -8.010663469957e+02+0.000000000000e+00j -1.677827869084e+03+0.000000000000e+00j -1.677827869084e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719795e+00 1.061468362371e+03+0.000000000000e+00j -2.675742073394e+03+0.000000000000e+00j -2.675742073394e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523485e+00 -1.982424451106e+03+0.000000000000e+00j -3.295829288942e+03+0.000000000000e+00j -3.295829288942e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 -1.595448846500e+03+0.000000000000e+00j -1.595448846500e+03+0.000000000000e+00j -1.595448846500e+03+0.000000000000e+00j 1.000000000000e-01 + 2.672119340521e+00 -1.595448846500e+03+0.000000000000e+00j -1.595448846500e+03+0.000000000000e+00j -1.595448846500e+03+0.000000000000e+00j 1.000000000000e-01 + 5.981663234903e+00 -3.544786741863e+03+0.000000000000e+00j -3.544786741863e+03+0.000000000000e+00j -3.544786741863e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -3.621818540520e+03+0.000000000000e+00j -1.906161083847e+02+0.000000000000e+00j -1.906161083847e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 -3.298148639026e+03+0.000000000000e+00j -4.960658211791e+02+0.000000000000e+00j -4.960658211791e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 -4.812325680560e+03+0.000000000000e+00j -2.410990334911e+03+0.000000000000e+00j -2.410990334911e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -3.621818540516e+03+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -3.298148639035e+03+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -4.812325680570e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -3.326019148229e+03+0.000000000000e+00j 1.187104038179e-13+0.000000000000e+00j -2.477472180394e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -3.069970706102e+03+0.000000000000e+00j -3.503793619804e-13+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -3.909325828790e+03+0.000000000000e+00j -4.211431183806e-13+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -2.855339344597e+03+0.000000000000e+00j 4.048846605795e+02+0.000000000000e+00j -1.167708252121e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153082e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 2.133281238364e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -2.292540364990e+03+0.000000000000e+00j 1.439197506316e+03+0.000000000000e+00j 1.815457579598e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.107875696041e+03+0.000000000000e+00j -2.473510678252e+01+0.000000000000e+00j -1.347963952064e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -2.537027099992e+03+0.000000000000e+00j -2.100426273090e+03+0.000000000000e+00j 1.383957859744e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -5.951882676210e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 9.430387165139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -1.029630366773e+03+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j -4.526538638363e-14+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -2.417747879248e+03+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j -1.062908549185e-13+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 8.075401156421e+02+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 3.550168733787e-14+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.473510677569e+01+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j 1.347963952067e+02+0.000000000000e+00j 1.000000000000e-01 + 6.010566531749e+00 -2.100426273078e+03+0.000000000000e+00j -2.537027100001e+03+0.000000000000e+00j -1.383957859722e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 1.600399579641e+03+0.000000000000e+00j -5.951882676219e+02+0.000000000000e+00j -9.430387165091e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 4.048846605891e+02+0.000000000000e+00j -2.855339344599e+03+0.000000000000e+00j 1.167708252139e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473744e+03+0.000000000000e+00j -2.754226153072e+03+0.000000000000e+00j -2.133281238353e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 1.439197506310e+03+0.000000000000e+00j -2.292540364986e+03+0.000000000000e+00j -1.815457579590e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 6.766622577425e-14+0.000000000000e+00j -3.326019148224e+03+0.000000000000e+00j 2.477472180376e+02+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 1.129766830150e-13+0.000000000000e+00j -3.069970706092e+03+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 1.411159023437e-13+0.000000000000e+00j -3.909325828783e+03+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -1.906161083847e+02+0.000000000000e+00j -3.621818540520e+03+0.000000000000e+00j -1.906161083847e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 -4.960658211791e+02+0.000000000000e+00j -3.298148639026e+03+0.000000000000e+00j -4.960658211791e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 -2.410990334911e+03+0.000000000000e+00j -4.812325680560e+03+0.000000000000e+00j -2.410990334911e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 -1.952274616239e+03+0.000000000000e+00j -1.952274616239e+03+0.000000000000e+00j -8.582736842465e-14+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 -2.793069604590e+03+0.000000000000e+00j -2.793069604590e+03+0.000000000000e+00j -1.227910315474e-13+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 -4.353221992374e+03+0.000000000000e+00j -4.353221992374e+03+0.000000000000e+00j -1.913796269578e-13+0.000000000000e+00j 1.000000000000e-01 + 1.392251140991e+00 -1.826703349756e+03+0.000000000000e+00j -1.826703349756e+03+0.000000000000e+00j 1.826703349756e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140997e+00 -1.826703349736e+03+0.000000000000e+00j -1.826703349736e+03+0.000000000000e+00j 1.826703349736e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227945e+00 -4.091794716320e+03+0.000000000000e+00j -4.091794716320e+03+0.000000000000e+00j 4.091794716320e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 -1.952274616241e+03+0.000000000000e+00j -3.511634154721e-13+0.000000000000e+00j 1.952274616241e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 -2.793069604589e+03+0.000000000000e+00j -5.024005607816e-13+0.000000000000e+00j 2.793069604589e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 -4.353221992372e+03+0.000000000000e+00j -7.830313883266e-13+0.000000000000e+00j 4.353221992372e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 -1.677827869087e+03+0.000000000000e+00j 8.010663469828e+02+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -2.675742073398e+03+0.000000000000e+00j -1.061468362370e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 -3.295829288952e+03+0.000000000000e+00j 1.982424451087e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 -1.287469747220e+03+0.000000000000e+00j 6.948254471676e+02+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -2.218454428379e+03+0.000000000000e+00j -1.725508655138e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 -2.011916748813e+03+0.000000000000e+00j 2.139081422557e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 -8.326275941955e+02+0.000000000000e+00j 1.095902598229e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -1.515634023277e+03+0.000000000000e+00j -2.246901195615e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 -6.390435888751e+02+0.000000000000e+00j 1.373374188791e+03+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -3.449549636351e+02+0.000000000000e+00j -7.484369549273e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -7.252539022866e+02+0.000000000000e+00j -2.663991119437e+03+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192902e+02+0.000000000000e+00j 7.537749369760e+01+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 1.089702533912e+02+0.000000000000e+00j -1.693883617056e+03+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -3.331454318583e+01+0.000000000000e+00j -2.983841276862e+03+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640354e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 3.541150241882e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 4.336803003413e+02+0.000000000000e+00j -2.570858259195e+03+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 2.466222371689e+03+0.000000000000e+00j -3.141814155967e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 1.906161083910e+02+0.000000000000e+00j -3.621818540516e+03+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 4.960658211669e+02+0.000000000000e+00j -3.298148639035e+03+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 2.410990334891e+03+0.000000000000e+00j -4.812325680570e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 8.278577344986e-14+0.000000000000e+00j -3.766177783539e+03+0.000000000000e+00j -8.278577344981e-14+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 8.278577344894e-14+0.000000000000e+00j -3.766177783499e+03+0.000000000000e+00j -8.278577344884e-14+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 1.394563859887e-13+0.000000000000e+00j -6.344297103151e+03+0.000000000000e+00j -1.394563859879e-13+0.000000000000e+00j 1.000000000000e-01 + 2.019196828351e+00 6.186592350803e-18+0.000000000000e+00j -1.952274616241e+03+0.000000000000e+00j 1.952274616241e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289311e+00 8.851000216431e-18+0.000000000000e+00j -2.793069604589e+03+0.000000000000e+00j 2.793069604589e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887354e+00 1.379499054850e-17+0.000000000000e+00j -4.353221992372e+03+0.000000000000e+00j 4.353221992372e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -1.906161083809e+02+0.000000000000e+00j -1.906161083809e+02+0.000000000000e+00j 3.621818540528e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 -4.960658211723e+02+0.000000000000e+00j -4.960658211723e+02+0.000000000000e+00j 3.298148639030e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 -2.410990334894e+03+0.000000000000e+00j -2.410990334894e+03+0.000000000000e+00j 4.812325680568e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 2.477472180394e+02+0.000000000000e+00j -6.705855577827e-13+0.000000000000e+00j 3.326019148229e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -2.070280719288e+03+0.000000000000e+00j -5.711691922540e-13+0.000000000000e+00j 3.069970706102e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -2.511191789093e+03+0.000000000000e+00j -7.299326245236e-13+0.000000000000e+00j 3.909325828790e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 1.167708252163e+02+0.000000000000e+00j 4.048846605874e+02+0.000000000000e+00j 2.855339344604e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238368e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 2.754226153081e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -1.815457579596e+03+0.000000000000e+00j 1.439197506317e+03+0.000000000000e+00j 2.292540364991e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 1.347963952090e+02+0.000000000000e+00j -2.473510678723e+01+0.000000000000e+00j 2.107875696050e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -1.383957859743e+03+0.000000000000e+00j -2.100426273080e+03+0.000000000000e+00j 2.537027100000e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -9.430387165133e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 5.951882676234e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 6.139909804280e-16+0.000000000000e+00j -1.029630366785e+03+0.000000000000e+00j 1.029630366785e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 1.441755642311e-15+0.000000000000e+00j -2.417747879247e+03+0.000000000000e+00j 2.417747879247e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 -4.815537335841e-16+0.000000000000e+00j 8.075401156400e+02+0.000000000000e+00j -8.075401156400e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -1.347963952090e+02+0.000000000000e+00j -2.107875696050e+03+0.000000000000e+00j 2.473510678724e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 1.383957859743e+03+0.000000000000e+00j -2.537027100000e+03+0.000000000000e+00j 2.100426273080e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 9.430387165133e+02+0.000000000000e+00j -5.951882676234e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -1.167708252163e+02+0.000000000000e+00j -2.855339344604e+03+0.000000000000e+00j -4.048846605874e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238368e+03+0.000000000000e+00j -2.754226153081e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.815457579596e+03+0.000000000000e+00j -2.292540364991e+03+0.000000000000e+00j -1.439197506317e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -2.477472180394e+02+0.000000000000e+00j -3.326019148229e+03+0.000000000000e+00j -7.855630556088e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 2.070280719288e+03+0.000000000000e+00j -3.069970706102e+03+0.000000000000e+00j -2.197456241457e-14+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 2.511191789093e+03+0.000000000000e+00j -3.909325828790e+03+0.000000000000e+00j -3.073291132662e-14+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 1.906161083809e+02+0.000000000000e+00j -3.621818540528e+03+0.000000000000e+00j 1.906161083809e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 4.960658211723e+02+0.000000000000e+00j -3.298148639030e+03+0.000000000000e+00j 4.960658211723e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 2.410990334894e+03+0.000000000000e+00j -4.812325680568e+03+0.000000000000e+00j 2.410990334894e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422198e+00 8.010663469828e+02+0.000000000000e+00j -1.677827869087e+03+0.000000000000e+00j 1.677827869087e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719790e+00 -1.061468362370e+03+0.000000000000e+00j -2.675742073398e+03+0.000000000000e+00j 2.675742073398e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523471e+00 1.982424451087e+03+0.000000000000e+00j -3.295829288952e+03+0.000000000000e+00j 3.295829288952e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -7.853522581700e-14+0.000000000000e+00j 2.477472180394e+02+0.000000000000e+00j 3.326019148229e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -2.195510546186e-14+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j 3.069970706102e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -3.070813468415e-14+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j 3.909325828790e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257150e+00 -6.887815764371e+01+0.000000000000e+00j -6.887815764371e+01+0.000000000000e+00j 2.849906817861e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924458e+00 -2.907876484989e+02+0.000000000000e+00j -2.907876484989e+02+0.000000000000e+00j 3.298255165074e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452502e+00 -1.173822321981e+03+0.000000000000e+00j -1.173822321981e+03+0.000000000000e+00j 3.703285199893e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 3.958756311563e+02+0.000000000000e+00j -5.886529975209e-13+0.000000000000e+00j 2.901107133228e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.768140685534e+03+0.000000000000e+00j -4.545704891635e-13+0.000000000000e+00j 2.455785279116e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -9.018856377917e+02+0.000000000000e+00j -4.929467313251e-13+0.000000000000e+00j 2.557589353136e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 2.235944633154e+02+0.000000000000e+00j -4.109790152323e+02+0.000000000000e+00j 2.297162805673e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -1.651408145580e+03+0.000000000000e+00j -3.866751154334e+02+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 -3.249726472798e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j 8.193662174838e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 7.962977576050e+00+0.000000000000e+00j -1.436326007861e+03+0.000000000000e+00j 1.222381804894e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -2.209454667325e+02+0.000000000000e+00j -9.408488419795e+02+0.000000000000e+00j 2.773373845637e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 -5.737601261443e+01+0.000000000000e+00j 9.265906162319e+02+0.000000000000e+00j -9.858366119346e+02+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -1.368428956505e+01+0.000000000000e+00j -2.228955124173e+03+0.000000000000e+00j 3.405516824120e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 1.664544017648e+03+0.000000000000e+00j -1.737759702187e+03+0.000000000000e+00j 2.155507627736e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 -8.232383415397e+01+0.000000000000e+00j 4.074490724538e+02+0.000000000000e+00j -1.487864010833e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 5.517436734322e+01+0.000000000000e+00j -2.658278854984e+03+0.000000000000e+00j -5.721982093269e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 2.407984538050e+03+0.000000000000e+00j -2.244897517883e+03+0.000000000000e+00j 3.584877262922e-15+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 6.727877776973e+02+0.000000000000e+00j -9.608585950775e+02+0.000000000000e+00j -6.332193219660e-15+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -1.167708252121e+02+0.000000000000e+00j -2.855339344597e+03+0.000000000000e+00j 4.048846605795e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 2.133281238364e+03+0.000000000000e+00j -2.754226153082e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.815457579598e+03+0.000000000000e+00j -2.292540364990e+03+0.000000000000e+00j 1.439197506316e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 3.541150241790e+02+0.000000000000e+00j -3.270970228804e+03+0.000000000000e+00j 3.541150241790e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 4.336803003525e+02+0.000000000000e+00j -2.570858259196e+03+0.000000000000e+00j 4.336803003525e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 2.466222371691e+03+0.000000000000e+00j -3.141814155966e+03+0.000000000000e+00j 2.466222371691e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953785e+00 6.948254471676e+02+0.000000000000e+00j -1.287469747220e+03+0.000000000000e+00j 1.287469747220e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351291e+00 -1.725508655138e+03+0.000000000000e+00j -2.218454428379e+03+0.000000000000e+00j 2.218454428379e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594723e+00 2.139081422557e+03+0.000000000000e+00j -2.011916748813e+03+0.000000000000e+00j 2.011916748813e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 4.048846605874e+02+0.000000000000e+00j 1.167708252163e+02+0.000000000000e+00j 2.855339344604e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473743e+03+0.000000000000e+00j -2.133281238368e+03+0.000000000000e+00j 2.754226153081e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 1.439197506317e+03+0.000000000000e+00j -1.815457579596e+03+0.000000000000e+00j 2.292540364991e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608592e+00 -7.245383415741e-14+0.000000000000e+00j 3.958756311563e+02+0.000000000000e+00j 2.901107133228e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.509981065686e-14+0.000000000000e+00j -1.768140685534e+03+0.000000000000e+00j 2.455785279116e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271327e+00 -3.637843788649e-14+0.000000000000e+00j -9.018856377917e+02+0.000000000000e+00j 2.557589353136e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080838e+00 1.955720814199e+02+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j 1.931571181623e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842365e+00 -8.360286832711e+02+0.000000000000e+00j -8.360286832711e+02+0.000000000000e+00j 2.327628679167e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225688e+00 -1.902976282757e+02+0.000000000000e+00j -1.902976282757e+02+0.000000000000e+00j 2.153754821741e+03+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -1.389460562305e+02+0.000000000000e+00j -3.450280867670e-13+0.000000000000e+00j 1.738978129230e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 -1.627322748360e+03+0.000000000000e+00j -2.379665244063e-13+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 4.535788174314e+02+0.000000000000e+00j -2.353748108371e-13+0.000000000000e+00j 1.129334593096e+03+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -3.405764006383e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j 8.165966244787e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.674226432375e+03+0.000000000000e+00j 1.466859757964e+03+0.000000000000e+00j 1.224827992550e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 1.176647268019e+03+0.000000000000e+00j -2.837982416352e+02+0.000000000000e+00j -1.160191764851e+02+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -1.994915061823e+02+0.000000000000e+00j -2.114543049917e+03+0.000000000000e+00j -5.086566580890e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 -1.407377764407e+03+0.000000000000e+00j 1.516378160774e+03+0.000000000000e+00j 2.395978798105e-15+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 1.946935955182e+03+0.000000000000e+00j -1.161560904470e+03+0.000000000000e+00j 1.726362502259e-14+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -1.368428955981e+01+0.000000000000e+00j -2.228955124167e+03+0.000000000000e+00j -3.405516824254e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 1.664544017651e+03+0.000000000000e+00j -1.737759702183e+03+0.000000000000e+00j -2.155507627743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 -8.232383415304e+01+0.000000000000e+00j 4.074490724557e+02+0.000000000000e+00j 1.487864010830e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -1.347963952064e+02+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j -2.473510678253e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 1.383957859744e+03+0.000000000000e+00j -2.537027099992e+03+0.000000000000e+00j -2.100426273090e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 9.430387165139e+02+0.000000000000e+00j -5.951882676209e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 1.089702534022e+02+0.000000000000e+00j -1.693883617055e+03+0.000000000000e+00j 1.089702534022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 -3.331454319421e+01+0.000000000000e+00j -2.983841276854e+03+0.000000000000e+00j -3.331454319421e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 1.792515640355e+03+0.000000000000e+00j -1.492388034645e+03+0.000000000000e+00j 1.792515640355e+03+0.000000000000e+00j 1.000000000000e-01 + 4.619612844970e+00 1.095902598229e+02+0.000000000000e+00j -8.326275941955e+02+0.000000000000e+00j 8.326275941955e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649684e+00 -2.246901195615e+03+0.000000000000e+00j -1.515634023277e+03+0.000000000000e+00j 1.515634023277e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751928e+00 1.373374188791e+03+0.000000000000e+00j -6.390435888751e+02+0.000000000000e+00j 6.390435888751e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -2.473510678724e+01+0.000000000000e+00j 1.347963952090e+02+0.000000000000e+00j 2.107875696050e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -2.100426273080e+03+0.000000000000e+00j -1.383957859743e+03+0.000000000000e+00j 2.537027100000e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 1.600399579637e+03+0.000000000000e+00j -9.430387165133e+02+0.000000000000e+00j 5.951882676235e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568947e+00 -4.109790152323e+02+0.000000000000e+00j 2.235944633154e+02+0.000000000000e+00j 2.297162805673e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401502e+00 -3.866751154334e+02+0.000000000000e+00j -1.651408145580e+03+0.000000000000e+00j 2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089458e+00 7.231958063081e+02+0.000000000000e+00j -3.249726472798e+02+0.000000000000e+00j 8.193662174838e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112493e+00 -3.515988675151e-14+0.000000000000e+00j -1.389460562305e+02+0.000000000000e+00j 1.738978129230e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457192e+00 5.917484640916e-15+0.000000000000e+00j -1.627322748360e+03+0.000000000000e+00j 1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 -3.478745879567e-14+0.000000000000e+00j 4.535788174314e+02+0.000000000000e+00j 1.129334593096e+03+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 3.350650599560e+02+0.000000000000e+00j 3.350650599560e+02+0.000000000000e+00j 6.851091907684e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093596e+00 -1.317747768119e+03+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j 8.546200435459e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 4.550013552737e+02+0.000000000000e+00j 4.550013552737e+02+0.000000000000e+00j 6.775000304810e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 -5.027358068558e+02+0.000000000000e+00j 1.045124067564e-14+0.000000000000e+00j -1.105082526729e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 -1.583065534720e+03+0.000000000000e+00j 3.290992741036e-14+0.000000000000e+00j -3.479796022550e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 1.065003863972e+03+0.000000000000e+00j -2.214008143469e-14+0.000000000000e+00j 2.341025136714e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -3.405764006341e+02+0.000000000000e+00j -1.565824031920e+03+0.000000000000e+00j -8.165966244897e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 -1.674226432372e+03+0.000000000000e+00j 1.466859757966e+03+0.000000000000e+00j -1.224827992553e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 1.176647268022e+03+0.000000000000e+00j -2.837982416341e+02+0.000000000000e+00j 1.160191764820e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 7.962977582710e+00+0.000000000000e+00j -1.436326007856e+03+0.000000000000e+00j -1.222381804899e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -2.209454667211e+02+0.000000000000e+00j -9.408488419744e+02+0.000000000000e+00j -2.773373845643e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 -5.737601261161e+01+0.000000000000e+00j 9.265906162360e+02+0.000000000000e+00j 9.858366119327e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 4.465139540329e-14+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 1.048490992744e-13+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 -3.502013360440e-14+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 -3.449549636286e+02+0.000000000000e+00j -7.484369549179e+02+0.000000000000e+00j -3.449549636286e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 -7.252539022881e+02+0.000000000000e+00j -2.663991119428e+03+0.000000000000e+00j -7.252539022881e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 6.906934192903e+02+0.000000000000e+00j 7.537749370039e+01+0.000000000000e+00j 6.906934192903e+02+0.000000000000e+00j 1.000000000000e-01 + 4.835801181322e+00 -7.484369549273e+02+0.000000000000e+00j -3.449549636351e+02+0.000000000000e+00j 3.449549636351e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658492e+00 -2.663991119437e+03+0.000000000000e+00j -7.252539022866e+02+0.000000000000e+00j 7.252539022866e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 7.537749369760e+01+0.000000000000e+00j 6.906934192902e+02+0.000000000000e+00j -6.906934192902e+02+0.000000000000e+00j 1.000000000000e-01 + 5.164686236690e+00 -1.029630366785e+03+0.000000000000e+00j -1.845929892106e-13+0.000000000000e+00j 1.029630366785e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845308e+00 -2.417747879247e+03+0.000000000000e+00j -4.334558522989e-13+0.000000000000e+00j 2.417747879247e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592376e+00 8.075401156400e+02+0.000000000000e+00j 1.447764641197e-13+0.000000000000e+00j -8.075401156400e+02+0.000000000000e+00j 1.000000000000e-01 + 5.776586016531e+00 -1.436326007861e+03+0.000000000000e+00j 7.962977576044e+00+0.000000000000e+00j 1.222381804894e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881320e+00 -9.408488419796e+02+0.000000000000e+00j -2.209454667325e+02+0.000000000000e+00j 2.773373845637e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717094e+00 9.265906162319e+02+0.000000000000e+00j -5.737601261443e+01+0.000000000000e+00j -9.858366119346e+02+0.000000000000e+00j 1.000000000000e-01 + 6.381725079856e+00 -1.565824031920e+03+0.000000000000e+00j -3.405764006383e+02+0.000000000000e+00j 8.165966244787e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.466859757964e+03+0.000000000000e+00j -1.674226432375e+03+0.000000000000e+00j 1.224827992550e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159590e+00 -2.837982416353e+02+0.000000000000e+00j 1.176647268019e+03+0.000000000000e+00j -1.160191764851e+02+0.000000000000e+00j 1.000000000000e-01 + 6.661676365684e+00 1.105082526647e-14+0.000000000000e+00j -5.027358068558e+02+0.000000000000e+00j -1.105082526709e-14+0.000000000000e+00j 1.000000000000e-01 + 6.935318059578e+00 3.479796022509e-14+0.000000000000e+00j -1.583065534720e+03+0.000000000000e+00j -3.479796022530e-14+0.000000000000e+00j 1.000000000000e-01 + 9.711278049034e+00 -2.341025136739e-14+0.000000000000e+00j 1.065003863972e+03+0.000000000000e+00j 2.341025136719e-14+0.000000000000e+00j 1.000000000000e-01 + 6.343362112445e+00 3.350650599564e+02+0.000000000000e+00j 3.350650599564e+02+0.000000000000e+00j -6.851091907693e+02+0.000000000000e+00j 1.000000000000e-01 + 6.779752093595e+00 -1.317747768119e+03+0.000000000000e+00j -1.317747768119e+03+0.000000000000e+00j -8.546200435520e+02+0.000000000000e+00j 1.000000000000e-01 + 9.759752721146e+00 4.550013552749e+02+0.000000000000e+00j 4.550013552749e+02+0.000000000000e+00j -6.775000304802e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 -1.389460562279e+02+0.000000000000e+00j 3.508051118168e-13+0.000000000000e+00j -1.738978129235e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 -1.627322748356e+03+0.000000000000e+00j 3.056264820608e-13+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 4.535788174358e+02+0.000000000000e+00j 2.165161525830e-13+0.000000000000e+00j -1.129334593094e+03+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 2.235944633189e+02+0.000000000000e+00j -4.109790152335e+02+0.000000000000e+00j -2.297162805675e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -1.651408145566e+03+0.000000000000e+00j -3.866751154283e+02+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 -3.249726472726e+02+0.000000000000e+00j 7.231958063081e+02+0.000000000000e+00j -8.193662174822e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 1.347963952067e+02+0.000000000000e+00j -2.473510677568e+01+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531748e+00 -1.383957859722e+03+0.000000000000e+00j -2.100426273078e+03+0.000000000000e+00j -2.537027100001e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 -9.430387165091e+02+0.000000000000e+00j 1.600399579641e+03+0.000000000000e+00j -5.951882676219e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 -8.326275941940e+02+0.000000000000e+00j 1.095902598382e+02+0.000000000000e+00j -8.326275941940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 -1.515634023269e+03+0.000000000000e+00j -2.246901195613e+03+0.000000000000e+00j -1.515634023269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 -6.390435888739e+02+0.000000000000e+00j 1.373374188795e+03+0.000000000000e+00j -6.390435888739e+02+0.000000000000e+00j 1.000000000000e-01 + 4.588935700615e+00 -1.693883617056e+03+0.000000000000e+00j 1.089702533912e+02+0.000000000000e+00j -1.089702533912e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605924e+00 -2.983841276862e+03+0.000000000000e+00j -3.331454318583e+01+0.000000000000e+00j 3.331454318583e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.492388034645e+03+0.000000000000e+00j 1.792515640354e+03+0.000000000000e+00j -1.792515640354e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457922e+00 -2.107875696050e+03+0.000000000000e+00j -1.347963952090e+02+0.000000000000e+00j 2.473510678724e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531754e+00 -2.537027100000e+03+0.000000000000e+00j 1.383957859743e+03+0.000000000000e+00j 2.100426273080e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778910e+00 -5.951882676235e+02+0.000000000000e+00j 9.430387165133e+02+0.000000000000e+00j -1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 5.505235509320e+00 -2.228955124173e+03+0.000000000000e+00j -1.368428956505e+01+0.000000000000e+00j 3.405516824120e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473523e+00 -1.737759702187e+03+0.000000000000e+00j 1.664544017648e+03+0.000000000000e+00j 2.155507627736e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208921e+00 4.074490724537e+02+0.000000000000e+00j -8.232383415397e+01+0.000000000000e+00j -1.487864010833e+03+0.000000000000e+00j 1.000000000000e-01 + 6.079617217146e+00 -2.114543049917e+03+0.000000000000e+00j -1.994915061823e+02+0.000000000000e+00j -5.086566580890e-14+0.000000000000e+00j 1.000000000000e-01 + 8.569509964621e+00 1.516378160774e+03+0.000000000000e+00j -1.407377764407e+03+0.000000000000e+00j 2.395978798105e-15+0.000000000000e+00j 1.000000000000e-01 + 8.669948656658e+00 -1.161560904470e+03+0.000000000000e+00j 1.946935955182e+03+0.000000000000e+00j 1.726362502259e-14+0.000000000000e+00j 1.000000000000e-01 + 6.381725079853e+00 -1.565824031920e+03+0.000000000000e+00j -3.405764006341e+02+0.000000000000e+00j -8.165966244897e+02+0.000000000000e+00j 1.000000000000e-01 + 7.553679569864e+00 1.466859757966e+03+0.000000000000e+00j -1.674226432372e+03+0.000000000000e+00j -1.224827992553e+03+0.000000000000e+00j 1.000000000000e-01 + 9.339036159589e+00 -2.837982416341e+02+0.000000000000e+00j 1.176647268022e+03+0.000000000000e+00j 1.160191764820e+02+0.000000000000e+00j 1.000000000000e-01 + 6.215455112490e+00 4.126833802048e-14+0.000000000000e+00j -1.389460562279e+02+0.000000000000e+00j -1.738978129235e+03+0.000000000000e+00j 1.000000000000e-01 + 6.593639457191e+00 6.562410480023e-14+0.000000000000e+00j -1.627322748356e+03+0.000000000000e+00j -1.358509986833e+03+0.000000000000e+00j 1.000000000000e-01 + 9.443121586714e+00 1.484688488775e-14+0.000000000000e+00j 4.535788174358e+02+0.000000000000e+00j -1.129334593094e+03+0.000000000000e+00j 1.000000000000e-01 + 5.686212080837e+00 1.955720814199e+02+0.000000000000e+00j 1.955720814199e+02+0.000000000000e+00j -1.931571181621e+03+0.000000000000e+00j 1.000000000000e-01 + 5.974862842362e+00 -8.360286832695e+02+0.000000000000e+00j -8.360286832695e+02+0.000000000000e+00j -2.327628679170e+03+0.000000000000e+00j 1.000000000000e-01 + 9.067284225690e+00 -1.902976282771e+02+0.000000000000e+00j -1.902976282771e+02+0.000000000000e+00j -2.153754821733e+03+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 3.958756311590e+02+0.000000000000e+00j 5.721934915843e-13+0.000000000000e+00j -2.901107133229e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 -1.768140685530e+03+0.000000000000e+00j 5.280852999344e-13+0.000000000000e+00j -2.455785279109e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 -9.018856377877e+02+0.000000000000e+00j 5.304448515487e-13+0.000000000000e+00j -2.557589353128e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 1.167708252139e+02+0.000000000000e+00j 4.048846605891e+02+0.000000000000e+00j -2.855339344599e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.133281238353e+03+0.000000000000e+00j -1.271754473744e+03+0.000000000000e+00j -2.754226153072e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 -1.815457579590e+03+0.000000000000e+00j 1.439197506310e+03+0.000000000000e+00j -2.292540364986e+03+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 -1.287469747221e+03+0.000000000000e+00j 6.948254471798e+02+0.000000000000e+00j -1.287469747221e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 -2.218454428366e+03+0.000000000000e+00j -1.725508655145e+03+0.000000000000e+00j -2.218454428366e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 -2.011916748810e+03+0.000000000000e+00j 2.139081422556e+03+0.000000000000e+00j -2.011916748810e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311362e+00 -3.270970228804e+03+0.000000000000e+00j 3.541150241882e+02+0.000000000000e+00j -3.541150241882e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453633e+00 -2.570858259195e+03+0.000000000000e+00j 4.336803003413e+02+0.000000000000e+00j -4.336803003413e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593151e+00 -3.141814155967e+03+0.000000000000e+00j 2.466222371689e+03+0.000000000000e+00j -2.466222371689e+03+0.000000000000e+00j 1.000000000000e-01 + 4.263904052925e+00 -2.855339344604e+03+0.000000000000e+00j -1.167708252163e+02+0.000000000000e+00j -4.048846605874e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153081e+03+0.000000000000e+00j 2.133281238368e+03+0.000000000000e+00j 1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -2.292540364991e+03+0.000000000000e+00j 1.815457579596e+03+0.000000000000e+00j -1.439197506317e+03+0.000000000000e+00j 1.000000000000e-01 + 4.916570700375e+00 -2.658278854984e+03+0.000000000000e+00j 5.517436734322e+01+0.000000000000e+00j -5.721982093269e-14+0.000000000000e+00j 1.000000000000e-01 + 6.716886976968e+00 -2.244897517883e+03+0.000000000000e+00j 2.407984538050e+03+0.000000000000e+00j 3.584877262922e-15+0.000000000000e+00j 1.000000000000e-01 + 8.977333823245e+00 -9.608585950775e+02+0.000000000000e+00j 6.727877776973e+02+0.000000000000e+00j -6.332193219660e-15+0.000000000000e+00j 1.000000000000e-01 + 5.505235509316e+00 -2.228955124167e+03+0.000000000000e+00j -1.368428955981e+01+0.000000000000e+00j -3.405516824254e+02+0.000000000000e+00j 1.000000000000e-01 + 7.475852473522e+00 -1.737759702183e+03+0.000000000000e+00j 1.664544017651e+03+0.000000000000e+00j -2.155507627743e+03+0.000000000000e+00j 1.000000000000e-01 + 9.291419208920e+00 4.074490724557e+02+0.000000000000e+00j -8.232383415304e+01+0.000000000000e+00j 1.487864010830e+03+0.000000000000e+00j 1.000000000000e-01 + 5.776586016524e+00 -1.436326007856e+03+0.000000000000e+00j 7.962977582707e+00+0.000000000000e+00j -1.222381804899e+03+0.000000000000e+00j 1.000000000000e-01 + 7.343815881317e+00 -9.408488419744e+02+0.000000000000e+00j -2.209454667211e+02+0.000000000000e+00j -2.773373845643e+03+0.000000000000e+00j 1.000000000000e-01 + 9.439946717093e+00 9.265906162360e+02+0.000000000000e+00j -5.737601261161e+01+0.000000000000e+00j 9.858366119327e+02+0.000000000000e+00j 1.000000000000e-01 + 5.593783568941e+00 -4.109790152335e+02+0.000000000000e+00j 2.235944633189e+02+0.000000000000e+00j -2.297162805675e+03+0.000000000000e+00j 1.000000000000e-01 + 6.610436401501e+00 -3.866751154283e+02+0.000000000000e+00j -1.651408145566e+03+0.000000000000e+00j -2.349960447274e+03+0.000000000000e+00j 1.000000000000e-01 + 9.215542089457e+00 7.231958063081e+02+0.000000000000e+00j -3.249726472726e+02+0.000000000000e+00j -8.193662174822e+02+0.000000000000e+00j 1.000000000000e-01 + 5.039750608588e+00 5.505005122289e-14+0.000000000000e+00j 3.958756311590e+02+0.000000000000e+00j -2.901107133229e+03+0.000000000000e+00j 1.000000000000e-01 + 5.634657072972e+00 9.283214440852e-14+0.000000000000e+00j -1.768140685530e+03+0.000000000000e+00j -2.455785279109e+03+0.000000000000e+00j 1.000000000000e-01 + 8.540004271330e+00 7.602781419221e-14+0.000000000000e+00j -9.018856377877e+02+0.000000000000e+00j -2.557589353128e+03+0.000000000000e+00j 1.000000000000e-01 + 4.486945257151e+00 -6.887815764670e+01+0.000000000000e+00j -6.887815764670e+01+0.000000000000e+00j -2.849906817857e+03+0.000000000000e+00j 1.000000000000e-01 + 4.560899924455e+00 -2.907876484991e+02+0.000000000000e+00j -2.907876484991e+02+0.000000000000e+00j -3.298255165069e+03+0.000000000000e+00j 1.000000000000e-01 + 7.614210452509e+00 -1.173822321991e+03+0.000000000000e+00j -1.173822321991e+03+0.000000000000e+00j -3.703285199880e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 2.477472180376e+02+0.000000000000e+00j 6.602848560321e-13+0.000000000000e+00j -3.326019148224e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 -2.070280719288e+03+0.000000000000e+00j 6.572462202677e-13+0.000000000000e+00j -3.069970706092e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 -2.511191789093e+03+0.000000000000e+00j 8.343416179370e-13+0.000000000000e+00j -3.909325828783e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 -1.677827869086e+03+0.000000000000e+00j 8.010663469824e+02+0.000000000000e+00j -1.677827869086e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 -2.675742073388e+03+0.000000000000e+00j -1.061468362377e+03+0.000000000000e+00j -2.675742073388e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 -3.295829288950e+03+0.000000000000e+00j 1.982424451074e+03+0.000000000000e+00j -3.295829288950e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564471e+00 -3.621818540516e+03+0.000000000000e+00j 1.906161083910e+02+0.000000000000e+00j -1.906161083910e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219270e+00 -3.298148639035e+03+0.000000000000e+00j 4.960658211669e+02+0.000000000000e+00j -4.960658211669e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578738e+00 -4.812325680570e+03+0.000000000000e+00j 2.410990334891e+03+0.000000000000e+00j -2.410990334891e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404215e+00 -3.326019148229e+03+0.000000000000e+00j -2.477472180394e+02+0.000000000000e+00j -7.855630556088e-14+0.000000000000e+00j 1.000000000000e-01 + 4.243219049921e+00 -3.069970706102e+03+0.000000000000e+00j 2.070280719288e+03+0.000000000000e+00j -2.197456241457e-14+0.000000000000e+00j 1.000000000000e-01 + 6.923490615381e+00 -3.909325828790e+03+0.000000000000e+00j 2.511191789093e+03+0.000000000000e+00j -3.073291132662e-14+0.000000000000e+00j 1.000000000000e-01 + 4.263904052922e+00 -2.855339344597e+03+0.000000000000e+00j -1.167708252121e+02+0.000000000000e+00j 4.048846605795e+02+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -2.754226153082e+03+0.000000000000e+00j 2.133281238364e+03+0.000000000000e+00j -1.271754473743e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104501e+00 -2.292540364990e+03+0.000000000000e+00j 1.815457579598e+03+0.000000000000e+00j 1.439197506316e+03+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.107875696041e+03+0.000000000000e+00j -1.347963952064e+02+0.000000000000e+00j -2.473510678253e+01+0.000000000000e+00j 1.000000000000e-01 + 6.010566531751e+00 -2.537027099992e+03+0.000000000000e+00j 1.383957859744e+03+0.000000000000e+00j -2.100426273090e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778909e+00 -5.951882676210e+02+0.000000000000e+00j 9.430387165139e+02+0.000000000000e+00j 1.600399579637e+03+0.000000000000e+00j 1.000000000000e-01 + 5.164686236686e+00 -1.029630366773e+03+0.000000000000e+00j 2.274024116701e-13+0.000000000000e+00j -1.029630366773e+03+0.000000000000e+00j 1.000000000000e-01 + 6.235121845301e+00 -2.417747879248e+03+0.000000000000e+00j 5.339796846459e-13+0.000000000000e+00j -2.417747879248e+03+0.000000000000e+00j 1.000000000000e-01 + 9.937237592375e+00 8.075401156421e+02+0.000000000000e+00j -1.783519365238e-13+0.000000000000e+00j 8.075401156421e+02+0.000000000000e+00j 1.000000000000e-01 + 4.914890457917e+00 -2.473510677568e+01+0.000000000000e+00j 1.347963952067e+02+0.000000000000e+00j -2.107875696041e+03+0.000000000000e+00j 1.000000000000e-01 + 6.010566531749e+00 -2.100426273078e+03+0.000000000000e+00j -1.383957859722e+03+0.000000000000e+00j -2.537027100001e+03+0.000000000000e+00j 1.000000000000e-01 + 9.541620778908e+00 1.600399579641e+03+0.000000000000e+00j -9.430387165091e+02+0.000000000000e+00j -5.951882676219e+02+0.000000000000e+00j 1.000000000000e-01 + 4.263904052919e+00 4.048846605891e+02+0.000000000000e+00j 1.167708252139e+02+0.000000000000e+00j -2.855339344599e+03+0.000000000000e+00j 1.000000000000e-01 + 5.335903049381e+00 -1.271754473744e+03+0.000000000000e+00j -2.133281238353e+03+0.000000000000e+00j -2.754226153072e+03+0.000000000000e+00j 1.000000000000e-01 + 8.444634104502e+00 1.439197506310e+03+0.000000000000e+00j -1.815457579590e+03+0.000000000000e+00j -2.292540364986e+03+0.000000000000e+00j 1.000000000000e-01 + 3.463865404212e+00 6.764357585006e-14+0.000000000000e+00j 2.477472180376e+02+0.000000000000e+00j -3.326019148224e+03+0.000000000000e+00j 1.000000000000e-01 + 4.243219049925e+00 1.129703471491e-13+0.000000000000e+00j -2.070280719288e+03+0.000000000000e+00j -3.069970706092e+03+0.000000000000e+00j 1.000000000000e-01 + 6.923490615388e+00 1.411070412072e-13+0.000000000000e+00j -2.511191789093e+03+0.000000000000e+00j -3.909325828783e+03+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -1.906161083847e+02+0.000000000000e+00j -1.906161083847e+02+0.000000000000e+00j -3.621818540520e+03+0.000000000000e+00j 1.000000000000e-01 + 2.943192219265e+00 -4.960658211791e+02+0.000000000000e+00j -4.960658211791e+02+0.000000000000e+00j -3.298148639026e+03+0.000000000000e+00j 1.000000000000e-01 + 5.473356578749e+00 -2.410990334911e+03+0.000000000000e+00j -2.410990334911e+03+0.000000000000e+00j -4.812325680560e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 -1.952274616239e+03+0.000000000000e+00j 4.323340486481e-13+0.000000000000e+00j -1.952274616239e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 -2.793069604590e+03+0.000000000000e+00j 6.185293197299e-13+0.000000000000e+00j -2.793069604590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 -4.353221992374e+03+0.000000000000e+00j 9.640273314895e-13+0.000000000000e+00j -4.353221992374e+03+0.000000000000e+00j 1.000000000000e-01 + 1.902801678772e+00 -3.766177783539e+03+0.000000000000e+00j 7.829406600922e-14+0.000000000000e+00j -8.278577344986e-14+0.000000000000e+00j 1.000000000000e-01 + 1.902801678779e+00 -3.766177783499e+03+0.000000000000e+00j 7.829406600812e-14+0.000000000000e+00j -8.278577344905e-14+0.000000000000e+00j 1.000000000000e-01 + 3.287661494877e+00 -6.344297103151e+03+0.000000000000e+00j 1.318899013062e-13+0.000000000000e+00j -1.394563859887e-13+0.000000000000e+00j 1.000000000000e-01 + 2.813289564476e+00 -3.621818540528e+03+0.000000000000e+00j 1.906161083809e+02+0.000000000000e+00j 1.906161083809e+02+0.000000000000e+00j 1.000000000000e-01 + 2.943192219261e+00 -3.298148639030e+03+0.000000000000e+00j 4.960658211723e+02+0.000000000000e+00j 4.960658211723e+02+0.000000000000e+00j 1.000000000000e-01 + 5.473356578736e+00 -4.812325680568e+03+0.000000000000e+00j 2.410990334894e+03+0.000000000000e+00j 2.410990334894e+03+0.000000000000e+00j 1.000000000000e-01 + 3.826767311364e+00 -3.270970228804e+03+0.000000000000e+00j 3.541150241791e+02+0.000000000000e+00j 3.541150241791e+02+0.000000000000e+00j 1.000000000000e-01 + 3.917080453628e+00 -2.570858259196e+03+0.000000000000e+00j 4.336803003526e+02+0.000000000000e+00j 4.336803003526e+02+0.000000000000e+00j 1.000000000000e-01 + 7.704051593150e+00 -3.141814155966e+03+0.000000000000e+00j 2.466222371691e+03+0.000000000000e+00j 2.466222371691e+03+0.000000000000e+00j 1.000000000000e-01 + 4.588935700616e+00 -1.693883617055e+03+0.000000000000e+00j 1.089702534022e+02+0.000000000000e+00j 1.089702534022e+02+0.000000000000e+00j 1.000000000000e-01 + 4.696452605921e+00 -2.983841276854e+03+0.000000000000e+00j -3.331454319420e+01+0.000000000000e+00j -3.331454319420e+01+0.000000000000e+00j 1.000000000000e-01 + 9.352183072665e+00 -1.492388034645e+03+0.000000000000e+00j 1.792515640355e+03+0.000000000000e+00j 1.792515640355e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835801181326e+00 -7.484369549179e+02+0.000000000000e+00j -3.449549636286e+02+0.000000000000e+00j -3.449549636286e+02+0.000000000000e+00j 1.000000000000e-01 + 5.217046658484e+00 -2.663991119428e+03+0.000000000000e+00j -7.252539022881e+02+0.000000000000e+00j -7.252539022881e+02+0.000000000000e+00j 1.000000000000e-01 + 1.015180741472e+01 7.537749370039e+01+0.000000000000e+00j 6.906934192903e+02+0.000000000000e+00j 6.906934192903e+02+0.000000000000e+00j 1.000000000000e-01 + 4.619612844972e+00 1.095902598382e+02+0.000000000000e+00j -8.326275941940e+02+0.000000000000e+00j -8.326275941940e+02+0.000000000000e+00j 1.000000000000e-01 + 5.272390649676e+00 -2.246901195613e+03+0.000000000000e+00j -1.515634023269e+03+0.000000000000e+00j -1.515634023269e+03+0.000000000000e+00j 1.000000000000e-01 + 9.982760751927e+00 1.373374188795e+03+0.000000000000e+00j -6.390435888739e+02+0.000000000000e+00j -6.390435888739e+02+0.000000000000e+00j 1.000000000000e-01 + 3.985925953784e+00 6.948254471798e+02+0.000000000000e+00j -1.287469747221e+03+0.000000000000e+00j -1.287469747221e+03+0.000000000000e+00j 1.000000000000e-01 + 4.835069351289e+00 -1.725508655145e+03+0.000000000000e+00j -2.218454428366e+03+0.000000000000e+00j -2.218454428366e+03+0.000000000000e+00j 1.000000000000e-01 + 8.876999594722e+00 2.139081422556e+03+0.000000000000e+00j -2.011916748810e+03+0.000000000000e+00j -2.011916748810e+03+0.000000000000e+00j 1.000000000000e-01 + 3.051886422196e+00 8.010663469824e+02+0.000000000000e+00j -1.677827869086e+03+0.000000000000e+00j -1.677827869086e+03+0.000000000000e+00j 1.000000000000e-01 + 3.960715719796e+00 -1.061468362377e+03+0.000000000000e+00j -2.675742073388e+03+0.000000000000e+00j -2.675742073388e+03+0.000000000000e+00j 1.000000000000e-01 + 7.023931523474e+00 1.982424451074e+03+0.000000000000e+00j -3.295829288950e+03+0.000000000000e+00j -3.295829288950e+03+0.000000000000e+00j 1.000000000000e-01 + 2.019196828350e+00 8.582118183317e-14+0.000000000000e+00j -1.952274616239e+03+0.000000000000e+00j -1.952274616239e+03+0.000000000000e+00j 1.000000000000e-01 + 2.737268289319e+00 1.227821805465e-13+0.000000000000e+00j -2.793069604590e+03+0.000000000000e+00j -2.793069604590e+03+0.000000000000e+00j 1.000000000000e-01 + 4.816726887363e+00 1.913658319664e-13+0.000000000000e+00j -4.353221992374e+03+0.000000000000e+00j -4.353221992374e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140995e+00 -1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 1.392251140995e+00 -1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j -1.826703349749e+03+0.000000000000e+00j 1.000000000000e-01 + 3.125400227957e+00 -4.091794716334e+03+0.000000000000e+00j -4.091794716334e+03+0.000000000000e+00j -4.091794716334e+03+0.000000000000e+00j 1.000000000000e-01 diff --git a/tests/TestTC/d3_realspace_sym.npy b/tests/TestTC/d3_realspace_sym.npy new file mode 100644 index 0000000000000000000000000000000000000000..1a7ff029a5501cb58e45a50f4ed2abe64cce6470 GIT binary patch literal 4251656 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 z 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
1m61sE3e$SaJD9 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⁢L3Og?*Y|Du;-A0& zJ=r>s?~1Z_2k$RBN$KB9cqi%vCn*o4`Z9i-r~eoIjg!o8_4Lh%*U6*r3ywBzuj{pw zBcG<{V0PI!1pXDD=h+&ry2G86OKcHSlTV*}+rVcv_3Z zH|=%b|5Cik@!&snd@{!Jf?hZ=|B&*dsz1hm$vRab7-XL_Ed@lHJSk*@MF+ng8vU*t*4~l0?!G&1L(xS=Sn?Vd_-RRvX{T^ z)pwrdx#+hiFJklGnt-EZU)B8kGt?(PS2)sv%AYJx`H5EQd6(OBZkiA-%hi{MYCT%d zt(0z&c$^l3cT>JC-ZpcWBd*?mhvoi0r8gXZpD_QQmIt1q{D^QTo_=AwPQmT2e1)C2)E}<+<2v2%vAH@a z{uOxGN+;be?H7f@N!mxy5w$*xAt8Kx*v;Kn)rNDYjd;4bQ?=7P#6q-jZX|y35n7L= z&$dwhq6bFz3=pxiz@zBxF)%}uOy7ix)-1o8$ z0bP|xm9JPXoJhX^ZL-$8sSbS;^e5~-T8rqigTFFAy-%k9{tv~YA8I`4MvPVdS^c>& zuS)_ie?{QB@D15@hpb_LTibhCsC751j_0KpZ+2J*|4Xd>cUo9X?eW}RVTIOb z>B@NFTfO|&On>`r?WgK%_mfnoc~yC7cuaOwe&aXsbZh<4d$Nw^vs*U**XVd~I{A1R zeuV0bf0*ljr@Z6poK6P1(IYZ@VE*AT7vHGgSo8ml&I67!Z-=#+9szuFHvj8}4byyJ zCpSTTbUlnut0;c(2=4c4;oX#1ibpcaMVkHKGX{wlj(%P4tBOKR=OIEi#k2H zROSQz4e=rPyl(HR;sZAR*hTY6{CkSx0O>wzeL-KYES#?Evj2)NF>axC&F%~w^bjY$ z1ljY7(n2uo=w^q4oKJw*G2?__R=XQgw8jzshjBj<@eM?wZ{1`nc6c?{#kV zdNsaW`F!z#_+vDV9?BQk?^}y`9Bhp{Q2WRmTL11IeM{rAyGDjBbN#k6^d9XPsFPO8 zAH7L_5j-T|ZLV&6-BRApuKz_sy`Om-rr#f}`LyHOg+6vaQT4^xsB!8(lHE04`@S@R z|9dmd!(qAOGrgKfKKYk{>GP_8NY{r~WCzXLU3#8J<>tS4_%L_fLO>seK6&{wk@>Xo z^>YsxeyezwKAY0d*NT7DILBS{?mM@=J4o+GrCads+b=%cb(s6B^7UJcIpE8ATYZwC zTlItXA8<{|qf)2w;8yJVTZFtG?qqOq@x0vqv?k#4^0=pP>ENvp=ie z>R-_QBz}AUh5Uq{m49J>w(-?E`~dp$45v^3%C>HmbdfmzYWW}Fr@)`W--Ujcc%p5* z4ddK-n$Pq+C42)sONnrg&DyUw)IKM^1CKtjU4Lnk_d5nUbhM5YPY(Lfc6@0+_~4$m zkGg6{&0C$jLH-T>2I5`t=z}qD|CT>s=UGvlmz)2dp+Wux_0CV_SD+8JIQM*qx~Egz zK?k>X8b9}R>!oq^Z^a|zM{X?t$F5fyRtTqL@kkl?9RD`YSI?Eau5c6aG5Kxek?ee1 zXdQ83b*>*>>wcjuWOZ3 zeBz<+R^Ic(4+-|C{YlSlXC2?*{wsTwoqKfN&>6d5&v%*ZiM~$hZR>n%2lcD@+m(No z4tc~b@OPy@li@7#x@V=liJlv}=J?0h1^Q!l-=i{JGWx5Q>Uj|lz{3b19Pe2!uUA-H zyhZjkPVWo4G4PMu_0a9@7Os{3+WPl#V*mc(6HC&%9QsD|i(3*PE#GB~J6H8l>ao?zKcmY@{d#=OxC6gCqSV)-^{QI_>bLSkW^4VEo{>-I zp=sZ+j_T&?>QlV(o_rv6xgS(t<~~(-_3)BWw?+5ix?J6MZF>(I2k3pSa`>lbYrNtq zjYZ}Es4Lm?8sIu;Jw(40zv2PS*B$z7m&OMRliPRxaraGj@9x^)u<}R0_wR}HT|K(A zOJxri>3M;_LN`>nJ1@Re&vT>>uKF_TugzznE@+(8!LzmSiwnb$Ty*RY?>W8KFO;$slFrL?8rX2MqbU&*YjCC za`t+k+*#u3y|MA>6L0)?LcSB6#6;!)ZhGtXNyCQra9#sY}93CjK;Esd^bab>Lsb)2MZIklANR z|B`$jxFmZ%>p10I^qfokTKZp2cuMOqbw}x^#o4mMWsP-LEo;D@8uTd@yX{>N5o#?OP;U!1b;ll2Kgmxb zKgIfI_fs!B+{USY*`ps0o(KD%F1v>hojS7dakUn^DqsJO-fQd+o>#jbd4E2u0`>q8 zAiSMDa?e-#sfCIl{~;3p3Lh4~y`^mSr8k%Ar(OPj^OAr5R_uD$;yV0wcsO(U>;mJYzTL;E|G>jP4o>)Z&C?_H84nen zSva@|E?7KNUc4>v2F3YWbL-%aoNfIuBxcx_)W9Q8u_*gm0evhN=EzRO0EYd3aNfS3P{9`j0qHeB&Pe1La*7qSFPR z-@Ed|(BD9(gT4oN_u!p^Z)K*|75aOqe@gE&(nlP$pQQ8MR2MYQ9)8bDmG2X8XGB-X z>=D0zP#CSg6Ld|ezrp`GQF$TsSMlTcG`ks+;l6fMAD>-kRdQn5&)LUaY`AB4dHT7$ zNWPak9Q*Gkx*oiT;z5+(P!1km-wWD5D+7IET5t64Rq#(n;dLW%61wmk=z8F>;ZsBR zjCI@Yr_8~>L0unz6uxip{MsKgor5K+Yh!=LGqoZSzB0pK!T0*TaKiMff2j3`KAm5* z{~j)#*YlKDqc0tPN&Ip>_b^fM+#Xv0us`?<(J6wj1AGCzz~KIczmMvxkMs%Hb()hc zF1X?EwcWbA^s~O)vHrpHYsalnJX!^Brw3<$p59OL&*02YQauhm4)CDpr|JF4`lslt zzxVv^pYHWQk8p3=kN#`%qdU93`tL9LyY(y&6(7)gv4irW>npFxI)xq~dcV96$Ll>i zv2FdgbaSohSG`R8DLfk6*!yk!X$dcr@3$T3#NR0U-Pq;%LaH1%jxO?x{;;^x!zXc% z;*#eEKL7ot9}adWKYv2)M_X5f<;p9eXGGtt@J+Fg;$q>ky!zNBCQsdf*r=Y#guW`nFpMJr?vm|^*6c4A(Q(g1QF`s`aWO`oU8_@xwj}<-Q zE5*BJeVe~0mWM8Vnmu^zfql;2hsvz~P<(8Drt;PH@4cMrd$HjKtB>;>g(H*QR0r@b z_PYU&{$=6^@GSH(JgN0X>!{9C(hE{v!_HI4cyQEjs^ecqpu2gEn<-AJz>s_)a&$AKS6KgWr?-*nMA!`2BG zD*iTo`3fh!7x;7H`iehZSDa7WKQGt+yIr^=7q`uH>?g}LZ_-z%f7pYYK|jIfugZ76Yb7$9Ojd^`gnN0#P5%!>)n5frb}~Qvefw49DUB{ zdC|WHo)X>%8@Kuf8i%?Iggddn4|MQO+^x71zKUGGYU$vI#0P_41dj)}CH#K)#~b8- zf%CKL6*B%w@ikzlU`0TUr}6Q z`S6He^r-f6^|@yD0bc?-62zfb$!@Q4W?M`ZjX+-&pCy7w*v?tyKSSH;c34ihLYeP+lwQ{^Fm6gOYB!pRf3l zK4tjY=vP+!h%SgHe|Mqc-vNs6q+e(A-Y_bNPcDjI$*&T>^p^4~(cK(t^{(V_z0cA+ zkK)g)SO0Y+zHj*bv-3`_yR2At`O_C1Ub!mi_F6?n_oJGNd+WZ`e;5xGFFN@R>11T} znz`C%!MifwHwgz$ePxDl6=qKpf^^R#I_T1?is*$9XWQ|^h?hOO6)kUATu=Y<0NDk7 zo%AK}e#p;_${R=Z<7D?CKQzJzzm<5(S16AGe=v9u;ftf{m~po$f4<z^MPZZmt2-zncf{QH&szi;$Ds2?=`MfSIj@(MqTUz$GkR~OFu@xIq; z9CZQuuHl2FuD!~1J3?)b*RJ35&4KRqYwvoi`HfCNy3OQyqUwa?Mf@>}PpDthPp-bR z3@1xJ!S{+c*nhx#*?g)0xv*{^u0da1y6$m^;uP{T#4EzBU)JL0p-gTUV;T?~(|xB9@zH%0WB9~0i>727Z3IF0*0*|Gd%uR4Yo&xqhmF;a`~$op>uH}LzMdd^#BW3&>d-TH>3iG$oda<{@$X%F9`85Y((lD{y1Uwx z$M2Wo;`x91OSdyeSbn{!+CCflIInyiI?79hOPHkm2K~D>kJSOad-4b1-r>L7ROhqf z`zz1V$I(w?f3FRyPekFNSf@O?J$1@2eJQ_|ywCh^ZJqo{^%v!hBYiaNL*zTt>y`48 z=+Ce|qrcEg@BJ?N-1AQ-{J!&^!`x=tcZhQei|xANUx}>Kc0a=%d1{{HwyJCIuXX50 zeV(sV2O@u({hmw>B>mqffN9^BIUwjR{~BL9(fk$weq6}8XHuUu^S*2Z-L zdK!P0{T0N2Z}^sh4nAl0P2q37bWp)FNAkP{`Fj`0uSe(jP3?Q)56J53=xILLbJPQy zckLQjSK%p9-)cnH?ipKOvU(SIKJY8TOWS>x`U_uC{u2Ko^W*;a;2PEmtkd+p(P#4h z*OR)hdgs057`=y$JN$Y0!|x1*FTwYg-EAwsMtTDD6Tr(BmumgM{*>qT{}uk|Jnc)u zy?XqmJzsyi{nFD0x+U#T-uK-%dxX>PaaG0bRww_}`YJwS|AP2Zs5g+ufnW4^`I}YR zZ^bJDZ;XG&_Ki$;Y^3&e;oRc;+Gotp*LC%J&+YrraG3IE>T}NG$y}bjP!p(cv;Nud z!9Oo8PS-wz&Qy2VBmDR0%ATaNmEjkKJNE_oXLjD!qMmD(=N+baKz8Xrl|ADB@t%+$ zBQIv>8{)7F_8IgCwJ*eNv|oXD2M?J3zNs$b-+)hKH`!G_Z`I$Shb12Qi2qGrmGU+I z_f0Ok;?-T+2Xx}lp-5zp)P1P;T&VYk_+yFoS?Pz_`_iQPN@M!~uhN+I7ruVY0mIz5 zFnf?eL2VH^6KE)YQkSs*Z#BJhkvX6XG@06h3B?VsHTrAHJr+@&l7fj zbhXJFnq8KMTZEHy%C}vZ%exK zcR{zTV0}poyJ$Yq#eMAN)2`gDd1&}sX!q9kzK_#+6(f}enA2);`3RK}0h z2V>{24B{t^Pb$y9X1oS|i9R6WK6H~Cbzh42BYE0d@o(__r|Uho>kbUy2&O4dA)eC6 zyucTe9$)G&7LTIeRetw)oBJxhsnL9+Td}|5Yw86j{iX7U_fP2^q*ID+vVVMyJOlG&^U&8x zUpK24G^k#%wd?@C9y@+`00$csUlT7=5BTdEbr9kn=|xBC>+lk#G;;&lr&br?ZxBw? zi%-(lhmv0+9{Q*}w*OK*h3K#~ue0K&tv0N3hnT%a&O?5dKKYNePN=Sh9(2UtCl4`3 z@f!KdTeTkJcY^o)lWN#zg8i;L$eDzB^kM*cu) zp8=->{~!FjFMo1q`x`fC=l)x~Z_x{*`h>rZeZ0e0@4b~=u6-RG%GZiNj+6f<`}D#$ z`Ez7{%7@3Fq}NAYj(w7P!S-4wo?gHFr2jrWB)~t>Alwk~=bQsR{%O~veky_kTBf`h zyfKg4cfVZmA^CabQ#?8+H>-aAo8o2i;^f2a{VnAgbMbQTfG(YQPxAG`hEa~X1$?^H z;lK~u`_S2Kp*Rno%mekFq8oFT#mjz{-o&laq@GIyR+I2gUAMohDH0!xxfADXD--E{$zN>4L z{~#Z-uJBA8I@KjCye*L-|O|74~7tV#z@n2oPC9HM;$UJTQNZcX;ze&Z|7>NYf_ z@yWk?x^nq91&dqj;SBR|C2I0eOFeOMiI!v$M~u4X-|G=NJD~B#zGKVFnT}>pF`Q z@uc_-+Quy<{ntFcs4_@jMZX&$yBy@Mko}?~p6W5((!&`}?fRnG~&eSX9<286GI=Uq~Fa8DfH~ZayFirMq->b8@m3gzje^-R(;YQ7?{k@Yj{Cx-a z=ah%CyTOpIe@gQ- z%H3e&i{gXu6K|V)dA;<%ZZ6L^(KqY=h2PhXel<(sf|L zW+DCDelthCR5*#ax5n9MI7>a>7Ui2NU0xrwwfL3t6~s^Y<@7TvFA?D(SN+cKFPxXn z+lr$4=KaOW8`|G_UV6VveJIqa)Tcv#6M7cDxAb!~BJi8}&+2mcyz zx85gDyheXCyub8G>F=KRHv3O4LF8!VM9`*?E zL)iCT?h)13!Q20&eCOv{Z=_ohU$#1IhA$YWIQtXr5AfH5qoXfOadFoFgbu|vSADSm znO_YE?+%-P)IXDfZqV?%KL6&26~z%&0AH$oGOO3C ze(kqb-L;+S{$^K`oa{K$ha#RMkMhjyd4p$cx{ec$N$Y373{M2^Ykld{NypibRNTk= zMtn(L1HL%b7wo(ZL)}2x0eDRMXl@bS9ekMTyb)Zn@OE*Q;f_{zGk*E>_a)q?a9^^|ilDx@xVh|*ekk$4MDi8lX^DSP zT~7MT5&mKHYE<81pZcrr6Mh-9i|GL#*iq_Jxmo#S<(H!RUSg~G zH|Uc`H{d=UFP@Y5wAQnN{DJg3P4J_PmpzvBoi#q`A;hbdr-gqPJgbd!kSnwJCc?i4 z{`_LCf8c;mN&D@WC0AeEcbofvEQH6Oy{!C$=eh>;h}kdR0S}<-(&s1L+$eoaulw=Z zZ~Pa=XAcQ-oHrQ_6X|>vUTaE;}i#NoZ)ppm%jurFFfY- zmq@n)Ja$(9&^jLz`7iL)vmc@VVb1}7dq6-BQhs5)T=`Y-8g@K>au0W(@n9_cEYEM| zPaJXf+6TP0JlS~93(wr~f-j2$_Pz4ETV5}7_)qkc(SHQ)3!WDB_jvl$!L!))$H2GX z$-hvyC9jko*9c$K&`d9qKBw!oU*&Ng1-+kx!Ugi9R3C}-M-P+T+4=vZ<2MNBTAz@A zLH&*D%ZcbJYW&)Ns@;P+Zm#Tbob{3U#mZyjr_$Fvp=Iu;|vO@SM&C@>N=mw9=AAR_z7?SV@Yx2=UOKnw(PUSefj>Xs%u-5J~^G#UKzi>bnBz~ zm;D{8ONtK!om9^{dXMT|%4cQxt9H5k2IH(m4>?}D)+NPfzx}zG&p%WD2JcbhYBX=! z$Gvz<;udY~ups{W=3~M`vWI%vllZZs<}Z@>7A`Pb$FNsDM=zepg+HrafIchv${YT- zE-vXA&OGDm-{xIf%8TB-ck4r&f0xw0-DRK0UL559P@LXF>n;2=tY3wvEuICx01s-r zw))G38Ck!c_`4$Kxm)&T&%ZLjf3UXn9HeIx3JuIMlJ^!s0;eF}em7rj5TQk=o!#Q5|7o778} zi@sf5H!^QF4<(*v`T0H6-z|Ly-A8i*Ut@ZF!x;B(#fkQPXpkO9wDVPGy2_6ky$n%d2;OLLgK7*f5T+coUKLPt6`-z>uwTM6epw=O9R`&11 z!X-I8&LD>$1WrOa)Z{fh{2TPwuKsAJ=85f=7q<}q^NT4C>-Pk`gX6UBex-HdJ*}7O zFOJf^mp%0ftBg-y-|I5HQt~b6%-i?}tWkd`WcxUMB=`yVeF1rQlE$Sbqe&IjX`d7K^ob~qDe?+i# zvA<(IX5U2D_+aIyUQ_;=x}5r#Wq%D0J_p{DP1Q$yy!?+1_5Ry^Hy5j=kDSk=_6v`Q zw^+I@S)9JBa1$RYKDb!>Fa59J+wJ^S>}P(M@TN~`{1v*N1v#8jbMbk7=ltj$t8dwB zU)KGO$oLF)-Qbmv&)fTlq$%x3e<}HM%15-KxLkR%N0bjzKSY$SuP5K}mhK0y>FxD)g@ z@vqb;9?^k%LeFh2v&W!5dGP*``hxICv0ymcdh*NkNr9&V7f610%!l=RZ1`49*h6_g z>83{UeZ}$0*UTbckWOSD^16}!^M|yb($|#FKlgSIDUUEy*P%c666K5GuP;|0@!eV{ zzp_t1t=a0HkE{Mh9YT5R2riGlqI8&z>jnC6z;VG>1};wVhMz2+`}0!1q0fp60>h8t&-h-Ba}x@X~WtrviUJ;&bzVK9l{@CpBC7=P|m^t99S>AAuJJpJdk^ z=+MR6Q|~YO+Vn4@%VNj37Qt`5srYiOS*sQg9XHFb63$|_p7W&Uqjr7b<6&+)otHj1 z@(<`PU$6W>_%v{FKj`_WuQR?Ve8fVn6XY+@9ezXkv!isqZ!ViXbN?$x!MhdJCl$qm z<$qOwF1!w34A^l~4qVlo$!?LR^4qL2zj{289eRKGE z-2X$$W1(kBU)OtDr^buNZPp{FK6b<%Yllh7kJ9gRgw{j$NA>4N{CV}u>$$ch;2-U| zEl%j?-Cg&0fYuA}QQ#2m_@3~UdHU^zd-L$e&DDEGUmJPsMy;>n!H?>H%jzX>+VhI^ zck|rdJ!jqaZgMYoY?{~U;V%2f3%%dDW;l5&Pv7)-^FO@o-lyX&)w}F-bO5hUzL$P@ z{3v+z$iKa>bx`kTY*sz&AAeo4{@M4HhxGI5u30gdo zH$3abgR)oYuxI+(Q)G|uZNW3MNb3jj!%Ol*&;u6^E>iCXFKOfG=ct3BKM3zJbqM_2 zFJ89&0-h%L57yLGG`xdz>U;8qGd5jz)SL!A2XGU^*3eaKDUK1pmg1Xus(5c~{qGp~ zT&?*R-cSUi@rrod zBYwB|kNs-Hsf3NwyvZ+#^gNQ2tpCP~hsfTG!f5w`;*xiA@ye(mJ_rA{{G`h*9*Xe3 z^jF*i-V;1|p8u-KNe9_Co`7MgKRR4+_YQBl9p4aiOYn?(b8{U@g`8YC* zr>M`_d{;R5%E^nsQ$?I1o+^*-r}(wvpS3>`C*5MadhvVXlae0oRQI^zl)RoS{dN^j zeLJ#;Qk*LPz{Xb<@T=j!NADOu2YAomg;=2cjrB)WIK1E+Z6j0e!A5E z|8p)c0uH#3yHNQX`nciMTw@-*a2s*D@-fO&>i()S{ww$$(EDUPM5mm6-zg6XURAnL z5&e~?WryI^r|5Y0ac~0katFgWUktOU~9lWzVO%I8W;V{8we-+1pR{X2(?q;pk&;)$8+m zOk2zDw%7CT=N=QEo&CNwLI3DQUC;E4M+A$)L%RPWtQq zH&k8!#N2$=xQ}z!FLU(0@1WmtU)Rfyx6?c`PP@+7uvFva_-Ke>G(Pm8c)pFgp5}GosMj{!`2MH+y8929f5FXXmk0E|xNeKC*Q)E=^_CX(oHF~% z>x)g79ZYkww|IxfC*CUAOCg+}!zUIB@G(hGD#L3DFBQR0;9uK#MmhC6YCWh7|Iz*{ z-6)N-B1o^t|4rkmt~juDtzH!_jl*k(pzGu9`|!Z~jUV<;#r4lB?gE!eU5i3Y2q}@m3kbrKA{eIw@I#6+$T{ohmqI_Kz zH@rXb#YHoo?FApHH+$^j$UB2yMh|qg>Lhu851r#_q0IV;HO~zhPXjtsX&=L)A%X8U z?lL!5&+QRCUwEX+_n@l<-bsDMvahMK`x5^F{SoPj(I;q4z=7C0K2f^%J;K>~4}Ox} z+Pc^mz0wE|5dNt8W~21EJiO%KkL`Z6?>E*t)s;0L;30-(&&}}89}~|crf1zVpy#th z^$*UkdGP2!fvbjp*REgXF4ugntN4}Ud5`seMdEt$Xz*y-c}o1p)@SaOhx1=34uwBP zJe<0}vH`W?dcOF(cK+cG-Us@S=##R4uLws7 zcW2*g|F1vF{!ox^qerLf+aIs#w0c>ukkdzQ1jp4b6pTN)Ui!lIul0Mlk5iqkjsf1&W3-><`lAZ;tqgO+)Ni7?p9j}%=N%9Z zQ2wqN{%6f6{YlMFT3&qv`@8R<_(r^-(ay6XLD$&6_Xy*Kceqsk>b~l$vVUKk?5XS8 z_llrCu}EK6VS!y&I??`1%J{;=c09Z%)XNGs{)PCh z^l7QjPUGkOZZ2LdKLLI1&%Zse%c;%aMk}!s*=uFi#~~a|l-_a7_qUYnBmJ+lV_%t| z_l)P~pa@Tr z^oI0%{Ni32PT@%LQ`q?XyJ?-CT=e8NgF{o=54WiJhz}~^&RV< z^zkx&E&5?uKh(eMe^gx_oiFsNIL|1pm+%x`(bi8Y@l0#}19cKzH^NIMo(he#)K`}N z*Wclzis_^0SEcRzpI zlb`861l>iA)9Jn{9d!r#=#-D}dB23dstQMcnO(0eHh6s3x!eIcZUYEzdE;F z4$m}D<7nr`THF-LtAlGiQFX0Z%12Pwfu{@nt6h=(f%gXfl)(XB8~QLWH2sgn@Ccu) zPl)(^AojP0&bay!N_-f3UE_g{J`(y9>7!G>h+l)pCxYLnPGsZn8*Wivy+P}*{hf8B zN0#?a|6bz5dql^t-*#TflNb7hIhsGsn?FMMXX*CEmjBT*?mjFuzqQ*-hppcy(_bck zPW`=`&A*4A2;97l4_sP#SXc4y3rk+BS=rP{de!R(@WyuhC_Q)VrPA!C`FOXY*!PxC z_dC$+wDvd$4r9LJcJO87dGa`!8aq$Zf#HOeL2t~1gRT0{ zlkZRN-N7AUI?>MJ)@4Qb2f)GIE?g^o_v)LE@bz7+e2(zFewy%f#2XFbfBjW{-zP1H z9)0*9L&9c*#`GV)Rv-8DXYYLR;p(1_ya)9k@`v;biI)+b!D#c`Ttx3&-xKmV(l^s_ z0|NM0c)5B0_PfQ!tF#~6_s-ydGCUwSP5bxOME&MkZ^|4xi2qTZi@eLj!pVSB0MBB) z<-Nnz!gZP+Qgoj@iuk5@7vm6)48rp zc|Y*5!k2mJ#Kl*XKb7uB9IyINSNomK@0>HjZ+6~{=lFKv8o+6tD?90@`U%$?bn(N3 z2fS7hZ2$bDxOuvd{!ye3g&yVu8V7mKvsE_`Utc^{=l@MQEl1mTe}m#Lo+iE^(b#TU1MBt*`IwM5x{BE7ed}# zeP|xuQ}!ntPu&`N?u9`A+x?n<^$mD%-1Ld4F5&NPYfpu#w(k};bJO%Zq)Y16Z<6UP z+x5}q+$Dg2<$krlXZ^C}dVArr`5nX6sSeVQ$pb0> z+Gj=TrReTbw<50D?}qkYz0|pTnE1w8Kkk1{m3vhC%_fR-u@7+Uc3;$6%A9!GBYofW zE1sf>0r)kOg@0bGd^h+x;wexCP_I$u@5|C4UESAARWePpC)Rd1?ZB1onM!I9B;2@{+o4O#i(J-KJi$yLDWn_;mk}J{^3_ z;unmZ2R~{9Umw#ihQU{P^&(&wugj9|`zi_GLb8 z{i}4+kBY(pMeuQ1zD)7CUAH-*UI0E^dMQyn*%2O$E41E7FW$o=p?sJhs`J7VcdL#U z&!d;#lh%Qb8Q&AQ40JNk9gv=a*`*D(^#A7ML*-EnAJdsSw`acFJ$v+_lkP4LALuw+ z5BoXxEAS)O1NAHTBC>f(ui27-qkz}pb=A9iD^Chu!-hCA1k3OHZ}kb@i#}NTvG&z^ zgS{&bjne%9ckR(j86v!)bT=b7So(U|f7z!v?|!ie}@6W(|AiRk%N2kG5L%iFINz-Pk8H{JG``bDY_JSKlxIx(KO z75@)>E_MJ;@H*v9;H#t0-R8ST#!q117Z>4Ax9=TYt?ItwU-vDl_kqh3uE~SfQ-72f zuM7IQQMz9K9Obpi>)Lfj1^DN{iBt-wI#&5Y`aHxB>D5miUl;z_@OFd3*23Gsdr3V3 zy`~>6|KP<>s`mq4pb7_{%SO6y-EYM2C;k%OX{2A%?xQ@=p8(#!ReUz1gb!awpXjIz zlU<@GX6LDO()-SIu-JdW-P7L*Ze95y-zn95`#fpaYr#pUZNDtJ^_fFXyn9vWKpuzl za6jOb;Omy&l)qMfAh>mXkN7>}m0wt;d>Q&=HvS%NUwaOo{si>8;VIrwcoN z0{S8J85G1DhklxH{1JT>>ZwQTz7Oo^zU%z>D@FK7#OLep7XFcbW##8R{R-fXchG&? ze2xnAU)c9y=u)6Z649T8H%5Bh9$gA2yIWtl+~3s)fPO^>+2KQqC+LfUr_rw4nh-}z zhsY~07|{m@|9o>Ae=JYh%|3kZV>(s2qYVcgq@(49^JL%ge^WofPr_@yF8}^vt$*r+ zScrZw_yu@);KifQz{XqV(Djq<0=hO)JRzR^TzY(|UiprAKs3)zb!M&GEk$@=(8Yll z_5)joG99m1v|dX$Cc<+iT`r&EM6T!+3@_3ntgreE>mPbZHjb7Aoiup!groGt6Xa!B zAGM!E^fywz!J)mJc)l_nlFx<5f$!&R)qOA3zM*wGZXvu8e5dKSn*I{Hwax!E92_RK z&EpiPztn}5>QfjbI}~qb&b@R-7(mO-z&Bk z|IkLc@#+2>XW4u-{wd%8TZ$8Y)P2Iot@S8-ewycKIEMOQ&%?P6x%sXQ-{t1FQu9AG z9GA<_oF2~0ec#e`Rs7qc_ygT}`t$VNf0EW|A5Ge&@z+5#0C-MP&--LmGO-_DW! z*9Q0-bv}JCPh$i6-rUa^U0?o5oUHG89O#zeR*fJ2V8+k9v46C;ez+)pXP?^N1(RKB zk56qHel>o{ILxl&nSbWN>~Di$_L#U;;-lP5SXLQY+>`Sf7d$KaCoT7y&oIf^J?5Z zC|>r&zq|)p4?XX*>Tk*0H!pc(-w%IHK0f4(4Qehf=(<|x3J1GBx%FkX?Bd`srS0`= z=eU}-$2IQbSU>vd{qCqwyTh@L^;YBb_jmp2;pf}+414uocF_49I_B}=1=hbQp^$%H zH6H$5`YKI_gzJQVr@vQmSRAc!w6jmM>&Bhd*iW`|=&#a0hF{J4Cml#HKiivMJ2G_C z_zW+)O8hYZk&&>W|3l znGAGg)~^*8=J4U|f_Pg!eB74rs1EeWDDM+Du{>0yf9GE1pW)E~w=aJAsCu*~&+)eU zbzhL5Nhf`=jje;LHzX-L~J&4vW%0x(|}&DgJ(CVm#z;Ce-(;lt?6&58P-Jp3{9R7a*CHp}A*pGaQ#wu65=?Bi|!D9+idYTLiQ`eq_si2viiiG~M6 zFK0oz&aV~hvujWs=E*A;bUgVf@+s(-f=kQKTSXxM_lWQh}vTnkG?Cok9IlS z9=Mxs0X?RZlvlTT>XGRLsV_wSWR-(Y1s*fTLl((VJ99@KKbUggK z;9R(_&D#*Cd`KLrdi92?L;V=OO*>CF%_n)ncKR+HUgNqMUgDfdkL`BR zdYyyCGyNR;QsA%XBc$(=x?#Tl){?C^@N1;wXq@Q&uDF!=z{WSj?VsYG|47Qy__g`r$p*Cc6^~AKA-rm_J4Ru(G`VX27Sv5RX5b9pRRq=##KxItgU~IBiuv6>A$Hw zzU3c=xUX~j3jB2~iRwI&b>GI>n&1b>?!CtEcz*B!Z795jcsKkE+fSqNN|8M9c-2|J z&2FoG6n#|is2mS34E?0w8`+1|HxL`Oe@o9R!aIGI=8Za&{0;hJ<0qPb-hcQ6@H^-` zR6no>4{P%1xFS5py?StxfjN`PAb8GR^BdKUdDK24yDIe!=K5-f2I@fUzsmo6`qQb$cGP?d=MiV_ zG;OVScC2)!i@tVfQC>6KPo>)lA0GJR!sF?_ypTS6^e50!r$2>$`@$=BymYPfoY7@1 z59)vS)Z4`i=-Kb6=bt4U9nZI`c;;+A2f^nT+lwDzZf^e_nC-s@sgC?c*?kkIzw||t z@2jV8sZd}YCN97~u-osbwZorFY#r?9I+&lM_nY^kr6^vyxJdoF3sZmXr{W{2o%~wF zPedP#`Z9PX`oc9nd+%ybbi20AKb7*)#J{Xtn+g{#dqPLgQ+H19tCT0m<&kQS3-CTt zN4NX0bI)lWg&T_0>A^=ZU+^K*clfIE{`hTnzVgs7H(%8bzFgvEaOw0rp=SY3?84eR z52@R;gA<-PK6T{SSH9h`hr?f_ZV6rvT=xsIOZ4w-JS~a(m$a@`!#@)1*5Kc;;|GKH z)AQ~I-Wwcsr2hl^V!siNPQNP@geTW^3+@5gaVOa^cr)J1V??d#>snefzETg z{J}nUUD;o?qt7=zZ{z4t(U$kUakM*0`JJWW-51U~o^SDAJm>Li$E`Ty$Kr6^&%Jhi z&v@qO`<%~ysa-y3Rq@#A`@h-cwASL8W|u|9#Zi3c{weK;cAs?tz7}|0?eANlQKhyKvbYhSl+kBMzUar%=z&;J%zSsL#)cbh4<^?|*JdVyE zrT-NFru|I&o94ZxctLKT9uVM(mfsiQgMm+-{SO@V7G{4zd>PTc_Yyx*t*g;G2A*6x zni1Yc@EA6q)$()5(+yxABKr}#3U+*7C;Yaz@7)}IW$;+4A0`T4?7i|a>Lb!Tj1BCU zcAi?t`uDBYZE)T4i{O8W@J=@lth#2!nKu@dr-+NvzNzj3J+SfGkF-B!`U$KTcHI?4 z_`UM^k*ctN%5Pfd?n!Y6J=~0x*z3OHj>@l#2hmeMAl^pT2K?e8d;j79`CZzVBe)9s zOzx2Vao#<39r*2}_km7ogb#}TTH&YsO7%lY$2jh)I(xehrjFg_sc~Mq%X)s~T?e^Z zF{&le1T=A%Q_&j+N>8@q{ZSN^AnWyInek`5ul1>x&0dN)Y(VZrofOJ=6 zCyNv5$!NTbi|U{A+&6gXZFHaX&r9bsqMs}sC-`NfbY<;2P3vYlxr{@2h4_K+X;XCn zZ&&ZwaNOII=|hO>@Ac?+(pNydwVUwW>dVjizQj+K;q`gnv@d5m*jg_W`Yta@aSdw) z>hIJs^*vJmU>^aWt~!L~u_a->#s3pen^(V_2j4?ob%5$i)HCe;X-Uu#8>2kP86Q~u zs5k(7)AJmY;jhFm8xNH(D7>s09?bN;7miRq1^r*M$KDR!#e0>v`?vApcyLthl;^ui zeO35_nJ#*I1MMApWtR(|BHWaRuM<5VyWf#v58-OQQJrR2(}jcIH^Q4Mz455~^0IrI z|E7_F`x!0&uUfdWUK%&{2d<1hcJY7tUEkg7^j^Ex1=dO8sKQH@hyREASJ7#wFN{8E z_`J~Lg@=#+CU`+7s&4X^TMxaU?!`j5_|f)_cYa+HW~ceV!R`;~QBPG}y|30So3BCW zNO;y)_GQ)Uysjg=ti?Z#^r`6l9{U3)p!G6R-?&xlEW9t|FGguy10OnFI869}-xcr1 zntEdJd8zL=vfhBJeN(tD>nHke!hU_6{IGS@@51_rF5H(|AKCBnJl9P{!=3hblTM#< z%b@dD7V|o6HDMFkpUv+ou8Z!h#}7m27+w2Qw7%-PdLKK7gS4&@*Qe)g?CV}pe1bl? z_7jgD)_LNi{oL-y_m>@`e<>dDtZ$ln9Gzo#lp+kA^X=H0R^x%b*_ z{{G(1!(6TWOL)cAhX(ImM2|^*+5WHEkEQz(u>2ai6@Tve{8*XoE6pm|9|OA5f|89+5*e& zQbj~SEOXogioIcpF~&mFSQ4XX?6Iuf*kXw_D%d+>$IQu|)mWoO?8drSv9Ae2IUUx=G2@5H`* zq2iZS8>M}x?ON}C{QYsm4!>zgp#Mm^TjWtEqG)hU9%r98dlk zzD)4Q;PcT{65iJ4yS35A-&`4lhl$EpcyI~S&$TbNXny?gS)3iM=uVw=BIg)+{s#h z)D@MF@fRunWt@zU@!EXu7Fd7MS+Myk=cTEC&@Yf3U(Pp(cQJmdI^UbZzo6UMTYliY z`kU9^a@QZzk5u=|?BVMT0p2xm@!(wOJCi;4+y}a>=q&t>dfS$(C*0p!8Njhj5udi* z*Kn=Zn(&&g58uzz@&~2Eq51Fb#QPP+Clt}SBwvf(AL~$cB!9o~M{{M5AC!Ni{*Z`Y zF;nAKe}SK_J~*Bu_K|wyy5h+fe#pxX2KA}seAV!&o}j#*cvvHSb*hv3EwpaXClF34 zA0KsM@U2%K`{w>nRqyKHaV+Yh46uEmb+YRy)ZYdM@l<%l(;hz+-IIZeKc3gRA%9e? z|5gQXo!}-72RkkB-h&IXby?4I*81&h<0~ymsB^+g>oo6s+VhC?4GDi0l{bp?xv@_% zKE`Y7pe=!47~L1?w0PB*V}JF#sqP#XD$ghVA9Pou-iJs%8hsLYkm>WW>*l<_-WPb1 z`v-UeR8MC9;R%a9H2({QAKOKBGUMr6me#3$1`i&ecHN=wRn_&E>eJ?be4rkxJfsKT zMgKWGvzdiRd ze=+%;o3!t5r@A3_{lq6M{-qz7x}%-9Ptfzual74B?>3y&P}eTIV#ni0^~=}iDTO*| zl@mWs1oxG{_mB7S^UkOjk5s4dt^9QO0_0aPpAns6^)*NO+tq&~dp5+eF6fVGwfb_C z;w?{o(Z*jBu%GfH;zup!C%~hKJ_GvR)W_(bwDZ(E{Fq(kPtt!4u7-Z=QKmQEg09_J zs(*Z7JbrFb7EipAi03WtBmc*)GbYE^75Qt&JMy%`KT`kB>$d1tu@3Q1$+v!J{&(DV zr+(e`*k+w@$+h*p?znhmI<l28B*niFbO%0FScl^;i-N6eCFX^k=A1ey@`l(u9r4qaXMf}T> z^fdWp;9tg`*zLCKPpu2of8iVYS^4LK)L#iNvijWom4*5T{CJDfPQt-{QLumYuC~C_ zSndnR{@Xdn;lRUbJXbF#@D*8ow7aW1a^qhw>GDzno|N^WdB}MhAJlx3PbS|+zuuS1 z1A~_lUNEYkI@g7^@zrQPYXZj;-#@AOFY;Bcvgh2~=;$AvrhZNO<=_*w^J52=C-D7T zqoT_{g{n|GdpQG(>t(&=x#d~>Zfq!yCXMAqe;U2{s=6|n9R9|WNT72a2 znArLo7H-*X&m*q>xWVC1ouGULdf*ESc4?|p|BLL)RPg!sy?Ko0vps!E{sDH|`bhe^ z+J;3_)*bz26MS3;DNljUj?LThbb|7K_I+5GBl~}!=7sUvzk}0coz4v6mA82-&2(?- z?|z|p)9{*o-SGdGr$+poG&N5Cyqo_jfp5Oe^qLu`pQm}z{Io35e2UM!X<}i#%Mw@%QqWBVGL*cp&LA?5UJ`Dl<`G+DQ_V_eP~Y3p!Rx=isDIK@Zgr=uUoJYfGGl|6yS_5+Q7lI#ig@nxL{`$j*t#-H=b zlZO$%hlj@qKUvS&!MlrYFZyq?W7K6dZ^InNU7>k{XZMP=)`NKH;}ne_`%cJojn|%i@S^&hU)$DSH>dhN`Kp}% z1-`)L!ncDPuz8sD|M0^TFR}mHaaBQl>>l12`yIcbGkmOiZwFI9@JDHXMyEjhm63d& z_%S?so4h}E{^|fv?lqcst4B@Ld`)u2_oq~PM0Gm+5qMkX>p6X|d656A@vcgW>wd5k z@1JMh;J=rSKolQDd`ER18}CT`C!KeQV_#$*s1MokL*3PDu7fgfIQ|WJ?>5;TbO)N0 zH~mKMgPo`Rf8llbo@if3AK`1gSLBBZI$X_T!ri8~khrWLu19z+i(fuWv<{;5T=hOw zXx|+e_PO`YOAi@3)WO#+{ADZ|KUI_Z#v=U^rTZ*yC9lv){fdm+KF2zE(u;N*f227bx>@T(ai8mR6;Qs{VU`)u+68!{eNnY&_(v?D{qE!RvlU25{<^X}>U> z^x&X=OO2ya>vC$CqPkqkbj+G`zaHLm<*{2-@6+F}WBWpLRj3wkJjXYiE?krN+cmDv zPIc{gsOoN;75w_TwREA|(?5u>eYWOdc;WcY;d;#*aZc+47DqFFa5ruD+q_jPKQwyH z`7cl64R#)lb4Z~6uKCaNl+0%~@6GE6i<>`8CT0AUKc#nN>+UWI9WkZzbCBIJg*Avgq(|7VFc7}doY5_mEBo$9clD4Rq8eCo1o!{yqP^_><`8>rh_YuG^j#`O)crYEN#_ z_3qR4v*XLSMEkp;ZfA}6U)lcqditc4&PIp3{Jj2@SNc(0#|y9aN$M%N$gi; zcvkrdH~g@k{=EGs?ES*K`&Nb7|NVS#fP?oLJE8Y2 z9=&G1r|uZd_y71v-xDqq-PoIiuLP%z-Ws~~qhz~yBF5qa=m{8-PMYN)Fsxy|wL0$msdTXE3-CGLu6R(D zNAv2R%IjlA-p1N+yZjmLCtkc^{_HjFYi@_y5^#p#zQEVm{a2t5>CtQaT=`o2clwW% zA8h@tBacmAJ@rTNR7dHEuBCT4mOdD-^%LpenJ;{+crv~A#}@jC7LA#`!TYy&4NJ21 zI5bqKpO!i=`kCbM7JdH8HU0Y4xt6^iy85xSQ}{&j2Rgwe?VI2hv-_NWWFQ|-KbUv~ zz0E`a03MjW!F5zOXZ-XrlTU^h>V4sEvhy^<=c)Q_X;3&pd3E}MsgLNoIe)2rU!F)0 z&Ep4eDgUqe4%>g(zjkW*=9wY4cMiYI@XyaCub%c(_jKGc)`M?W9YJ~RTpv|<^0=?^ z-SjOo53EOB*Dtul`~mXd*>Te+<#9dyqJL67@m(F!Z%2(ulhbOAec$n&2 zHje4k(<1yE@E=fjY_>YGp5LIn?kpaCue@=jpOrp>+m$CfPW!IvxpDGaa~F-=t5cv( zV&8kZrnTyx)QRT3dh3*i`q}`W1NFv7<)>38-beeG-Pd*j-ioHWth?&<9AH6Ossug? z{IE}TUq5T!&_CYr)Wdh^NLD4+W_->cB}X09Z|;VTt5fRu;;oG8owoP z^LcnRkJo$){~YU;4}@RvO~u#hCyf(@D?sPXp8HU@pYkpCy>E^O1$Sn@FG-|FkoVKr z?*qe%jCW&5u>Pgtp|9{)V{|?F=kasJGalo z%vZh2&a*OwS4DVre~{u<@6+H8{ zvcJXyP#J_{CJzE{b5pI}d*PbJTT$bl)cufmBX3Myh&oQ`J=?#CN0t=!hl=o)?q{{u zUoYe7%K4F~D=x76%KJ#*YsluIwJw0WnQ8OyXA1xPq`ni6!DFdBjVJFoyNDb2-zr|( z>T4T6e3&~I*53rTqrRgH1Ai&~u;3u+p8_BCi0P@PPh|1OibT3_ZkghnUc#Zl@2PQm zUW+hJQMcM&O5~MK7wb!pA`>ejxVNfL;S4bWt-s8=|W#>l-^JHtJQzuPu2UT z{*pLHeZu6Q!4Ja&EL|)3NF)99^ciCRrf45f|BT-MK5n9L#l(Lj)JME)!H@Yq1y7|u zf%vKRpRF&r;o7>1ecd+y{rtJRgHINGwRk)Iv9g!MRno=t=)c)KH-wpm_1K<(V}ci& z=L1fb{!I1j#;3EmcWF8+!=qM)V?P@|?C5dB1N#sA(P`ReRCkEyXnZFt&i+byN9_7x zT1Pg{icr)&C^`C8k2`sU#eOFX~v8O7uN~d-#jugzGK8 zlIyM-?)3E(d^Yhu{624Je^6g%qz~W5-z)Sg#PNLt_OhgUFm;fILY}L?J45v^c+%N7 zpD6gl%M*9{xKB4daIxx|LyLTQrA^>7^bgzLMf#4x(a;yHxH29k{G;#{(biuTdgbvt z^WQu=L>J1RBOd4^{5E`!Oa3d( z2mDveS8@G~Wj$(Lv?hPGd9(U)8PBZ0^Ws~J^n**6N`F`7&JmtoeDcgglrC>XugRW& zx!+Xv5OAE}=Naebve#$Gf6#UPv)MYlH-Z03{2K}D@Iv`f;=hUT>(Ng~KT)xtdR2

g&rx^~Z{u!D=^L=`{oVDlTl9rIAwLP+m->Bt!S5;UAMPsji~P#{S^F~kFa3Jp zZQ*eP=Xc_h$Jf2PeJSVlI5#=(gNBED(1+`lmx|)`kMw_#CuCj1o5A^|+XC;tpQHE& z`)KxXF!m?5@7(*L`{%rtZXi1fKM49?r)qw%D?DGDzecC^sC6_sVE^XI|AVjV(C@JbM49)qUi6iM>hWDJjJ$&fmz4GI)yZ@=*oxCF9ISKdX;aB;0^E3M{ zK5kvNSb4U^+Sl-_=IgosD8C9GE%^MVvMXzg&J~R9*>wIe4qESFF=^_5Z%4c#L?< z*5mlFt*%$0co{v5ZRNkWQ7?Md;yCIdjiu2*Q>)EEA)^Q^1Q}YZ?N%54wME>cYm5;>Ed95?m$2|Q!_}S8H@PjQr^88(qmuO@-LC@93S?P9H zJxcpV6b{N)>it%{7Qt)P>pszQkiJlqu2IgJKglb z5SLwVIymz#fqrLna=`Np(tTsMz_F`OCc+mrSJ&hE!hL!81*BsX$%mj*MZcl;nRv47 z@fljTt+Ic;g=>T-1OH-$u8Ur@>Q0foIl9K^0P%kOOZFcf1^DjKnS%du;RD~SynA7_ z15Zz19DOI?4&i09byVTBPno@I9_C)qb0v?xrTSOof5!elt+;%CSl?+Kd-+@N*`f0h zd+U9m-XOfPU8e*O=b-SI?Au%N3$E1rLw@BRy+0S(?>YaI_^7<~^9*qRcf)`6>;{Kl zYTdH`ZX(`+ZS>x1-aIqUXwcrF^5;z8ulDpM1yJ)u#^~8os&ouRm?R z-8gq!#s||W?}Mffb&2X9Yvtji)~oi{(V@t{GAK~jWBuJEfALMlkz<8dl74t3|2{_V z1Gu%zWG9Iq(W7oH*xNw?eJS!i;D69D+EM#(N%{*L>pT60whsF_{Hf{eJJJDUUxW|f zAnm{J={e)q+xn~ztZ(|huhu?JpM}P+`KxE&$@$m5vOKwme+d2;={m*Bw2x@r>pZKH zeYB2V(fT}G`R9-Ioqb$+hDiKzr2SniWxAd<4n7fh_oc(-x72#E9^Pv{;XjOf z6#SWb>N6g{j=nbhAK@MSq<738lb=!4)haDd_OOR)K})oD;M|K%0N6mT>d+}`nDdsxXbkZ!6QpP zmi>Z$P3m*-`dlG<2=55E+EcWToT_yQ{ssGtU#os(-=X)UO>xq-ilgsQzDn~KH_-U8 z=k4DfcF#eNyq%&eq4zdQmn14ah~R(DkbMCsE54gZeay!9z2R({d**rX?N2=5gWEd3 zN)L+z_uBr5YIp72Ki}7R$0~TYqVo0dGwFS6OQy&_gV)Z^-~HR2VKD54hS0*@{iyI8yx5RMDGuHMAOmeDIJY|Zj%Eqc)jDp z=^^Mi{7jDDL-jZCAK>I{Jhe{x>bl?Y?t1M*>_3mR|LKww*6m0p6mX05owp}j$=)(v z^tz<$uJZ~fR07vFFck5p{X#Ln%6{FR-l%nYoyKK-ia!dM(CF4LjH?vD{VmaaFdp!o zeKa5Vh5Kc?FW;nxXMOhl!XNIKJF2E*y1Pf$ou^NmuSGe|)cTI9gYj>4aqxyQPCNd) zbc;fMhrXR*$^&!{s}08=?fCBQ)Y{*?zTw_m_=j!$p67@TA^6NfUcGr_7+bs!c}<r!M@p=5cVCp!LA>+D`j8c3Qmf{+NZf|MDEKEv%~nZfIdW4sr)*U7cF! z=PT!T%pThFFZUVSc>B;#8R@4a57{n$=6`6vP@hp)CjG697IELL1G*Mk0YbRYB_(o2Ll0;gxccX#Kn zIe%sRxBWiab?E$E4c{0SYdp%2cytx*_>xn9ipF0G>I?DYU&Pbu7b`FLo#qq0+06be z+{V?a-{SIL&VKvzXSQ* zE=tvhs_*?AxMRkDjpADPyU=%`U&!X6FMS=HSAN69K))vaZPa&E=k%tZRTnOoANPgg zMDz|mlOKehtMbWlfBAz`6Pn@!&=A z;`!|rU!xbfLiiGJSNLP}L-iT=!O)#6I_12Icmh1}8n`3k;bQ)IlmpL1oW0;( z+wUHg|MG(BkT(9&f%q958U4SikLBx$eU`ik^)5S4Wq4G11pI4slh2dCHdpqZ{$=Wr zSKamWz}K(&Bw4cHo;&A0`dzx+8G= zJz+Q7-?s6*EWeoNmYt{EPe>jJemn5Q{ot7>ya($Bcp|ZXpUGanC;JFb=1zKF(Jchm zi5YJvh1wQ!*}NYmizvuYyVv?`!`zq&t%Ovdd2~{*eqXut ztv?M2@Hdku#;&1rVb^~vfoF6>ok#0W&ts_kw;Bh}Idx|7Kt$DbJ-Tk#Kk*`X^y%$- zwP9ExzN-(4L(M*y(8nm1Zq~djUW}&m+e7j30L3ZoY33ge8|1#ydqBP#KE`)tx4;de z|6$|l<%<5v07re}WBna@jY$RncY@}nK9CRN{;87|`_L9C&OzsFj4SrLbr4r--r29K z9qXR=ocprzm*dVt{$ZF?d>e1l{%gm5nu05q{ndPTa*K_(NOAA7WEbN_P1t`+vVY_m zj(WQ0?(d!&8%!s+(H*q&W>=iK^Ui@hh3qA|6~35fD9I0@FQz_7w?gBoa_S?DH|Y7l zKjbX;{mz43Cyj&W3x3}2Z-gtxdxO{N!z549*$pV@&WRtV1pnwL`iu1(I?@B>&rq+N z+GY6hXTS4aYJO#(kiizd8|%b(6XB&LUM5Z)L7mWa30ve>Ma5aV|N5|@)>&U2zvSPx z{}OlG{Z@txE&hu1XW%ED`LZ2Pd}qh^&G{Hc>r{# zuzwa8PBD8>KQ%NcUm+ekUwXvmLG!QstZ>H`@(kmN_ce}st8@3#)vsO5xdPH}Mrw*!8Y-`N+%SETzNKwqoIvpgj)ir+)M)y7#W5%(Uc zb%GupJPh!EWXG4|n^b)|@O9{Z*V3)veJ$fH#T!I^13qB+LGfhmgLay0~`>14cmzq`sL|24SDwL5n*n|2inbnS7IK{({;0Tc)btRT7Q{6*l=bb zzX6{^vmMWK56S~X@lfjbQjq>h{+&J~`asB6w8+olIo@ghakP0@lB!Qs=RwD;dpKY7 zPru${YxLq{+|;Og)OPY$)F3h7a9KsJ!tCU_&@ZaQHQ9LAI3U(O3z32 zQ2NaMW5T~}uKvq*`L#CBLtQb>9t@A0e?&Ms^tR5FJy9LhQx_Sy`}ptt6+_&zi6OoC z#D;M6Q`_(H{0Th*c$U*-M?ca1KCy7*4-@`5$Q`Ua1obE7>plAqylvi|ho|n^>Dz-w zTzTd`5gio#d+I~zDNPnm_NS9SJw2}M9zImw1f0{QssRDGv$`2G9) z&;PY<5WXRje}Yep_!d4F;hG}#RN`P;7o#0@arze-KXu<7*3A2qD#F3~PTW1`bKAda z%5xuV&V!Htr+qDgf4T6ACuY<<@KbWN<)M>J zGCr7rPVskSA17W`o!Wn2dt$?m%T}fI6UkqUCG{&|r&)iURrlXl@eO?nHgDt63qUWB z`m*PK-d7ymp*VVpz6&p=c__ISzzm4qSE?S55Wx``sX}oeR;JApRCkf9*zb3k2;?s%$R^FKYAnL&2 zLBL^(w^#F0;e=!L@Lpp7(5(8}Vzi8z1V5>k;0`_EdHy zqK_mUo;)tzO7^|2dY7BJzSKDw{&{G4F!KY&PukqY{IlkPVQalF#I66rlT^e64f!**{HOp4`=Ke6Jt&ZA-2^_1MkNSh9|T{}8=CcpBZB zx_HwMQrxQn!(fddK0sKKx2a))y{kgZk@?kRM{gdY$@LZR$V%~3G|I_Gx`T8bbcB$|d zjGy`d`|@_eKdZ0Ei`O;oC|vSl@rF^i7*NOqpwC(F;DrExkH1l0$afI`c6HtKeuEPS z?|9Oh{Tr=E>Uqry;=TAEzqj>8c=4Hd^hU{N(RV>V8oV*=YrGfKqyM5lo0rx-v+kv@ z$GGfs{V@R^cKA2YkG&^be@l|XPe1>OQwEmMYlu#MQt4^izre3&&w2W9LpSkJ!+*eg zV(Xyfq@x_U?y9DvPrm=L1~0ymsQkXaS9x{v^un{q&h^y1{j9u8WzN5`QuR0LAFTUA z-^cVxZV$z4#5ddOzUnTt{g=GVF{97w`P&!2OHX_Llvz8T`D0q!@5Sr)d1ZA9&-B^C zoBi6>S)`AE{v+`B;seq8uL|^Iz`xNf{tf&*8+SzzPe_EXjrs@r*Z9A7d`BuC60doP z?<&7*|GrdpHQ^fS{+RQ?pofjF`e5~)sV^tjjkEKV9Cii0Ypoy8I;LJ*3O1j_2M4tM z*z%jknlQQj!4vS6%x&i1gFIax}m;Gjbko>4P`3~7d_&4^J|HM9KVj$EL+5PibWsD1%{`xN=-^3!$xQi*wgNcszUE(z;V{;k$= zd-|2?%jj1q?u+VQjt9#RydlF$El>Zt-9-l^TlIF6#ZP4CuMPO2^m)LaME|e&_oMi+ zJ$ml%2p5K4#+RDUB7a>UM_xnur8qg$m#T1;>X#rsv+-cxYn^y|JosGjYV5yu{6X-g z#3ja;64Bj&4~2b_eyE4!|EcZ~(UE|+1%9F%6@S35cZ}w9!~d?oSL&Q}DMlaML!^VA@pDDr1QgDMgF3*>M5TIXJFTD zPkR>j!_f}j1MyMiIu7)4aeesH8#8>t^NI2AE>1qacgC{^e*1L_j^wxT7;3y79L+)(7f+cgPcm5c{!Hwy{$Jh?@r%-b8tMO?xF+vhX@=WC_o2V@KWqQ}lXQ7Ll^-k} zrJPS?Y{AdzNDH`|)=};{)wOLNRwm%@iHmtpsZ;(%`=PcnXPvLvH&M;PStKOfasMlPR^Dr|`^+$X9(6xRd{p0Gljm3V~3G`q4w`IRC*F50A zpRecHTl+Zr)bydR`eFSO4?C%QsM2%2S@9G4%kbG(v~02Nwa2`g$j|kw=Iz(?_35ZDQFfrpUA1N%pj^+Co%T&SKYiRb&KifG zfn9rYvm=LZ^QYD6by?ndMbcIJaEg08dJ^#MigybA=}3HI=kFENkF4Zi;-FLlK*A?DGb_-rg?3$ftTE715`!)_eZsIcX0PN$ktDZje z&K0kmbLH8c13D$0GP^j~{iwXe9l|?dAIXb|mm8dIT&U-yJh=zYH~#IWUvKh2!AJN_B@X6ozW!^-CceM$I`violy65zEtLV4iJm4_n#LO;tg$v#)KkE5*}o46;^WfwmnSDHZ^V5_zeMYCXs$0y-#7Dey5CeX7wU48Jy-IkW)xuk_4qhB_@g3XLj|%j!Es@=urameB z5O9j^T8HRaQ}2T3L3mUzTxNv-S^4OwKB4&4WwUoX=*q^tFS4ZkR8R3=(Z8qsNxV<{ z7k)|+m(@Qg{~6zr-{aK(3l2&3^|-%qP)DjiNcA9le$(soemL>}#)abVB2Qh!>rBb> zf7DsvF*`~1eDWjs5AYY>G4sstKkrlvoMF-ko->Kk=KzvC0p_TXwCl-Ssashva?e;G|W*XsS}2LS2G9Hs9%!KtG+jn*2xj zu|0jg#0Rgc9{9$n$8ULdLbb#G(Kk9tmC)WPHMr#gUnA zW+%72qjc|HcT~Gx2hZDkdA}-09vB>NweqImoxmF&t?StQ^rJqg`>xA*t%+|gk$nNj zDjq-`za-hC`qAH4{O$Yn&hy{d=&a4VhMko6*8UKe>HSt6FYgBxp3T21|Ifx#5%5#- zkFkI73t}JFsz=0+bRGKN(fgx62VRf`(!&P7e4p|nf7dv~hw1fRfU!|k(Sp0w< z93gt2-zxq$+|5pb`}#n6BKuzM<5Ye{x{I36O7~a!y~pbl|5AKyUUeJ~uN?Vs@eq?o z@VjO_E$u0M^9@@&3YZ>ZNPxztZ#O`Ja*L4o-Jpt@*s^uPFDM@Vr|K`L$|? zp4&s(H_5|_zg6pFxYKip=>1-2IuT8*XY@vUE01mXn;GugHOEud3&`fJd164<1pQx| z&qayiqA1t~;nG@Xen?LTkE-~meSgLEtV^xKq(_FI>JomTbveUuGx1F2 zv9s%z`I@&Bo<{vUT89H1{*sNaf1odwdAP#x&rR?s%I}Ke#UihbKBLZC!9P zQ!U1=bv%bieha-J@^CjO4`h9!Qw)c>+1Na9W7ioeyGWnd`nvuq)k8Xm8tIH|t^A_$ zJMk9rw5tvt(J6RY_Mf~a^Gcm5s&5G0j@vUF!D_1~l=|59r%!Qb6!LT8FD$<&>lE^c z_0)lUjq-fty}&^X60axwGW!|%Mb*I~ddBdmksrnnr5^r{^0MFs#akP(qu@}$L%|0^ z|KtMYDT&8lk^i@u;uGEwfboF+?(qH`5jv)6>H(2YpJ(->N9U^UjXMse+K-KV6V) zUYf@{FMo}BLvQRwyRRsnDgS;UuilnOk5S_v5*}FVc<_Zb|6^Pchue{&?+8y9{ASeC z#TV`u>Avp!?Ijo7cvk0pecU+pgC*hnmFaz&f9YqTe-YV#>6f%|kT-InoB9py_eo(B z?MFwbo@F@l31M;pCtDTBpP_qkiT0fw2b`U-(!qNyUfkGQ_)ELqSlK)DJZr)IYCh`& zIB4OV#lA|9u(ebl{1Mj2pY*IMB(Opom^TXZ2;voSS zPT!1h+AZKj$G*7nX7_DA+`TpV*{5bbF(QE1C*KLKp5wE5Xs&Zd7I57oT$jT7gQvaH zHEaH_)N?T&{XtqUrIPaX-sZP5fH$GP;~Djt*mWBn_&;!+_IGu`K4e${#QFbL!`cw<-V1eew5`6zA-E?UBdq z_oq$)eX*Xm{@_HOysE19`I>_ykvp)Cl)9MVc|5o~w z<_Z4>z0nTs3l|sa3VB~vP@cm#X`g}bt8ZcbZ>#H9h6iMS*?-3ldZE3`_&!d$onE^1 zx}WN>O#7~I_BnqmIzHr^v_D4GCH1`NW9se}6tAoEPYc%fQSRq5{puuD-v{_~*-JaV ztXEjjKPrizq0E;7ztIHE1O4sP2gIWs>04u8*M8{Hi=-cZ13OR7i-+Eqt;Z$iN0;MH z@aW@p{5Q%&71zD}Rr&u8e}%lT`riGS!V~;#dQwT-t9w0n_(s)%e*T5phuQbpzp0Na ze)l{_#iM!-gV58A=qs9jb-7Mh@Y^<#o!Hf#sk}CI&r_6VvpZRpo~8Zk9iFS@-Sk{X zx-FH5v*Wi8(qGniws!6IcM)A+-^&a8@2d37`xc!!`n~1p-mhOe_S>F=T$;r%?m|7hRWn`fAN@-GtkxUH-4C(0cp*m;L8=U7c`BIbSe* zXssG&o%$mf|7`t^9+F)jedATh#TqZ;S$fH{w+viGooePtW--{?2s$Wgjj680EfNc1@3;zZe>XAJM$iw@@2S*890q_V^gRkMt2J zKNsN>;YY`<+wOb4V}FdTjltvB$dHIDtl&Oah2a?!ze&Wtzoxzucu6>qU3XxvzYPA6d^kLt;>*+Xs(0!W^YDc{ zr1(SeoF~uL^{h``J9xL}5_Gth3%9BIXM9re5OtAzbROax?7NK<|F11QOV6=+*nb7o z=ceBs_u$!0?W5evf}gUr=6hzSl70L}c}P3ofet(*as1B8Z|XaIsJibB0(~ntkMA@1 zp))VF-{&14bY2fnEp_Du!r8#XFCDWS-}CFtPIaUwX1Z@n(s#1B^@$`Z&ki5xgUUmI zGqCZmO3=czj`tV{>r z^uYlK+x6T27|s_TAo;N^#H$CM=P~7{&Q>13hwv#M9CrG&nu|;BtZX0sIF)`u+(G#- z;Y&5|0|L*rxA-U~D-U*`&JWHBe;Yp&ywH}z#}6IVshapGp5ykIwteSb?xYvCyZz`z zomh`vxEgrb<4WZ*Rrl3+h!4nLGz6X#`9bQ?;1}-K{z)C&)?a&C#2;1$^%;10{_j?u z#E!2G(o@y*9}Q2u-%$BJ_>VV62T2sqdV)hiAX{z>aF z-mSboI-J?{TMrFC+IjqLS~sj))eRzeBl-h63%|Bk=C56!T$%A!bqT%1Lq0%t+9LjV zNUrmlSl!L;qwLS4FUot=P3KqLfqrT)o%0s@c+C!ua&wf2Ko^kyhTex9e*cjD$-nmu zs_SU}dOGmy_8k7#hpzf`1WyYtk~p9Ja+35;>6flT+pILw6^Na9lz*}1SyXCQV)bphdbe8IJ@OatvM$$JQ z;qQP?X8Oa{H$a_HI++oj*82+fk$lW%;1xW1ectP71^n(-^2@e%;L+Asodi5BbsKat zgsaT!Ha7l#0e)-g6~Q+X=@0#Prq^2TYg@heyptLqNIT8`!+wA4(b;hy8_O<&$Av#- z!WeFX1Jyapd_e-Ph=l$_|42xL>#r>~a==K0Fp2bNod1jy|Z* zlovn`L-QG#mrDxyKlb_d^eSB!93nakMg1H2LWjFOwN5V3zN9`2Pk)*5b`NpOf0(-G z|HT}QRgq)vypl|@$^J?BLa2$Ro{@>}^cTdwNc#3RfFpT|D_^>YVy3Dm97^`Xzg*4<$DuI$G(pEaNO zz!P=hW%=P1@?Y?WY&`$#e_N!#J4b!w^lzhEyDH0rypgK@7pX_nheDtG@KTXvV3|>DNnNT=3@gT>|%Yul&Ql+Lw<$=etARdhMfxxcYeQzuFfgd_g7Y zz1Ve1Zb@O^YjmF!`ryPr(p>GNj~myOACcupwr_C4DdaejS;m9ggq{X?2lW}~dG*Qj zaOWx?1FqG^^|RG)%Y0z=y(1Anh}LmKu5YdJM5_z@l%Afg!*LG033}ty=jqeaym|0* z@JI`n+QfPQ-|<)N%hZF>|E?7OoQ<=)Q$E?lM~kj7@yFVJjQw5C!|laW5liBy5YEt# z5Dpd`;tciEPcHbaeH?fSaP)I!&mS{8=U>t%{jv0WE+jt}maZy5ASdJBzQ{Z=(Dk_-u4sc`v|k!DDaFqZHtC z+1~77B;Ny1?Zh?nip`D0E8s+YNqy|tE#ai$3Gnn!pt~yF4iBHm(dHkZFX!dY#Ce)W zc=Bw#ee|9T%Iit!RlwJ0$JK*>_uy3ZTs_ZKdbPf@)*tJUet_@A|B6n)mf{V#P3vr^ z;@F!D`)^yqx}@I;-a>dJCM*6pUU{6O9(w!Rsa_&*_rOn|4_B?!s)fH{iV&jO>9_@Xx=^R z6vh~mHTXQ}R{d?We3NFJX)40~>aa-1;h58Oqq^4<8acKpYw zbg4Z&74Q?n%lne{U+IB1p}z#5gLoYLaK+!M4-)tKTb1_(w+ufi`f4_g5kdUOn$NyL z`8Q8q>XWr`mhl27O?b51r*95$3$r@ha|yaiwv%viiaK<3ms%)u9@f9pBk~LjBbIw^)*% z8+C5+^TyJf78loO9?y^+{EzxJuG9F?SN}-*?bvnI(LK5})Ya+Jfq(awLi}-jp#Qzt zKUk-@W~%F}b%qYMbPMBMW8WC}`^U~?8_*N{N&P~DG(P-ed)_m1|9T&dSG>7# zf{vf4-|=&%>w8b(mok5%_vDb_qq@y>$LsIVostff*YR=LxeZ@jy6srE@}K=yY}=TG zaXMbOem_#*lj3~XeN8`@`Sy07dphOg;Ft1&tLhN=||=3z~*mzJFaQ$|O$axQ_H)$T?V2x*>=E26Zd(gVqyzlI!uNRNeaaw#@80rq`qIY|gypx_(pjcec)E=j-m; zf<4-Etv>oagY*+U&wX8;$8cLa2lKyocI*HDt?v@^$@(J?IMuDv`>y_ie4Q>={@Lbp zs-xe8_*eRbaf1B6AH>UUaqHs5@Ef0|r>hP^orX_4?+I?6`kc?xr~N)V(C=X1f9-VL zh`%{a@lU&W%I&x<9d$&GpRe1qZi9giNhn>`X%|0!B zs{GY=%JXlmaf~j`gJ&Feo*i8$;pH{{TrUb9IO#`uc)0l8^mRuC%bQoY88f!2Ipn9a z{ieF!R{BH_ElZzXwoSK&;^rDJynr^o?c5i3U;ZaOck*r7znAS$XXQPl zXYAqQUaIGQkMhjY-Hx^{w^(a_S%1`_>q4W=zt&x;^nmh7@VBWS-NO^1`ktpQL7%t! z3Gnao^V$6!>aN!K?E5U)msw$~-j@rre9L#~#r7%wzk5^Foul&Jp1K_MG&^5yUdNMP z8{w59k6_1@wC=jommlqS^pln(eO13YZo5h2CO<#gS$}p#=r3HUuJ5UHl24;QnLhi! zo1Y6GmZ$F=UK8SP_~Fot!GEIt1^9dX5ba-8kw8Ha_;*W84YFb*S}lOsLa3yege`^4O&n zp(VpTKb5p+IMkIXxCG_>Jo$C;vY_Yb>HFY$&sUs6-6b1ObEC~enV-43FhBIkRA^j{ zp*rjTsSUOs8{K7^AMx<{V=ezqJyP?~p74Ia`$E47aUT66();oo3qMYMmH1bEH@-^i zkoaAAok*SqKL5uQKaJ4w@c)5-Y}2}he+V5D_~2Ck@OQ`#QJ+)(-_w_(KB-9Gjqm|E zUuR*SOI_Us!rRz-7-sX^JRV$kwDni%dZ|7-SnvA-%GbfiLp*ze=KVy~KT662lMhUl ze-ZC##P8$N#&M`)-RXBdzu95%w_m;X@W>v{>JQ&1cbOh*(DU}k>H7aCUL5c?@U@(# z_?>Z!AJnkrxedlzI z2fPWq8_Li7yOdX3q|c8PSDO8;)q5~593q`nbbyrC^x*#X&vf^`Pv1Oe<*yDnymw+FJ7vX$ePx@7Hv2<3k=js>s=PF-8{gdb4OV6GAl>TEB&rKA*9z3$_V@HCX zmgZl-FM&5ag8w(aV|fa%$%e9j^u3YCIZyR8`bkyi(0UpP-=)6i@kr3V91p+wcNa81 zTXOfy?j5oChq~{E!`D4W_UM1{%R<>T-oI^CZ=r4puNHM})vxn?lm17052|(kRcWQI zM{m4sUELwAAI+bW4hRJuvocSy{T+IdT^)P|;H+j!S6uy=n&0-kj;H!%g!fAOh=+%U z{r4s1Kh*c(UzF}E`5N*_*hSgH7V@3!vuhpiv5T{WTNQ6{Twi)PJDUBB_&fAFf_H#t z_|MAAqB}$V{~YCmwIA7Y&-;@{I@P)Tm6@LTiu8q+J(k`3V!02z(67+0JW4MozsNHV z#zj4hdItU@ea^yhMaD({qU@iZeqP zP`6;8RsPNkKbGTe=Ls*3A1ORUgjZNROOgGK@#=l!esVtNY(ASO!$Tk87qH*Q=y|RO zub1Cx(fBj}x?`PV9iCh0GXV!w)^*JO>qykMAHg4VsQ#<|+xVRJU;4tukL1}8uai9| z{wVIhhlWiv{+E7X$0J4^|Jq%>!}yFJ@XJK`LeHm-XSRD%*Mlcc*Y%Tx<6!^Qb^YP; z8;;OE{)P5U_3QXzf9xvu1&^-fl(wUOx$wREzwK`#lE4x{G>Bv7wq_c!o~j}p86k@Z|NGws9)TUEB6P8SEI$A2Yi$fexySFdG;xJ zzK4EzaAoj?2>0P{QC;{IJ?F2LN3iSendjBv4YS|J<~(Y`t$E?bu|JWx1$>%xBqBVv z9|>OrpDns5cK$(5eW&qM@#SqPT#|6hakTn7U(I zu9Ba_yzQkr$N9qVpmz`cz{WErJf^;z;ykn`;Kk1oUfYfz?yeL*XQ0LzRj)fv<0QVc zxS=t}Pubs(*Sc*_-xt0EUAuE_oc?z<7)*`PFR~u1v0wUj)mAqyD>iSUMbI#*G=vCQSQpZ{@0f4AAO~9iVxl!&U{#)z6##g&NC+1XGx#K z9k>nY%trYaaXrNq;)U?UbANvHZ|g5VeOW^PZ`P+Wr!G*Brhjm}@=Dq#(>nE0{y}jC z>kb^2jjJQ=t2`3CSN8ij?3S&^d4F`PmG1@b1+Hf;sC|sFv)R8_F!(Y*7IKq7_zL@O3%l)e2FSq$D>!aCxjB?~x zz(2D;()Vh|btH${_;dU-d^eY<|6b40^Bk@JW+eS)dM}m7FZI`YT$wCg6Yths6Er{Z zG}(dg^?bqAnLVt@b=2YE0gnx?Tl+<%|AX}h&l*Mf0!0*kM{ev$OT_oz-)TekJcAoJLJF!+= z>2H!>bs2r+!e0rG6~&jL`4^tBv?x*EYD=p97rl?gS~uWpp0T*Y3%?TKzoFmX#@7w} zm4_eCejk+cSHj-|{^3*g^TCsMocQX{mlA#=(qBwp^nr>~CJ1)}k4dgar@W)aAHUK4 zFfMd*vhlT!3}!$3g+FEeIs?LX!c|De1)N))e^2`J`1ymvzck;9!y>wh;5*?pgwOC! z`77u{pc9M!cB|G6c)>}Ee;<+l;Eq`zW+_nr-9hV-`k&47m_WXY_~RDk1z4x|%YU-t zOC{D9Iu_J7rJLr3_whGrz2Y~4pOpT#hmQomU(Y?~o6+^0bOR%}EA(&G9~9xyI9z%@ z=%T-^=l7K2->0=+XK5cqzleR!uGcG|!vo)~{od%L_ZH!y5#MM8r}&cIANt0@9k$B< zqtE3ZcKs&$`!Cb_MF&aaiQviY`aK=^!VmObeJA^u^-s;~65crQze1+pq~Hs|l}R5r z-g4V{o$tE2uVbC@9)d3;-oH`n6n+!+{dxKpY&^?T@<^{K-)_J64PROQC0+gQ?roDh z_jB81>##iqcSzk|df*CpV(E2)_<>67hn0;_d^*n|p)qd$#y^ zz@;hPu>HTR3wDCy5B$GuJk!Spc%rt_xGcUI9lY!+^YJIe^pWW2+VX_@NkpPtj(b&>w+t)~B$%0FQr_wbf)T)@YW&)y+W-%>wRBp=-> zzm7UGJoET@?OL4^l#$FUZgnY z9liHOo_gZOKH+<-*R_CSCEs1l$5SU*l(Mf-N9K9hJdwxa{G;xv$y=;UJhPlc)LyS z?aOpYRtI@F1y2Z{D7x&#eRf}yop>3``O=YF-+s@f^!35}=kM133vPh;`7*`->f6eB zA&FD%{Ed$BQO~vCx1*oSga4y$jt->ikY#DZlO)rv-Q~DDKAK0kL+_p_)PjU4VgdK*DWwUqJ%u+I_d+m`+;w9T8{e!e+7;M z|MN!ezw|BNEPGe2d@p@E%Jak_ihp^p=@$?_+{Rm)3XU$KtA?&4@fLMn8}IM{?-Tmo z=(W+`T=%N&7j5GvzdgC?;RHURQ`hRNqW@SrZ!Ofvl;1&rCc+BoX}pT4T? z_dETt+vjc|`_L8sRC|BQe7eLV@NLajoNni9@6{1N@)^i`oV!F-mUv-w=TQQCLf%Z=n!qx#e$ z{2Sv{AEUlQ|1bLs@3s1LJ$jYk@3-BlU$;HBStqRb<@|X5dehyFh5R2pHmefpR%u=v z?0GcTJ9KEo*X_ZBh`*Hn*Z8XHuy-4NDc2nlUxKF&c=(p9C*0pU$z{)V#8zwJV3h}H z9u=y!@7nwh)cRn&%Twy@^z)(vgT4m-{t)H=(8Hl_#^2NLW!I_4-oz&1CFtYEFQ%SH zzwkGTdx-a_zpr(?2Pby4_HXb&cHOo_esp|HI5l`C=t~lBY}EWmulyRkwDMcx-!%WH ziMQ$z*{Q}XpVCF|k?>xv8-0{=oDNb6!XG#~aKpv7bcnPT(LO)xWd; z(Ea>Se)=!p*!Q&RUru&+j=QP(i#w8VQvvsdy&Uh9*VK4A>$#WQ#g?y)9sJH*dJty72dDuf5d2_o_sAY+V;TCV4sbC-@iYocJf>4CQH62a4b_ z!7HF+yqWxUa8vZ*!iVt}ucT%kU_*~P6L zx@1NC)uMES@Gs!AY<^26`AHFeY4%h4z;00e6kHSie&|A8t9_q70O_qoTbHAAeo6TM z?79`X4w!J9ny*F4C8}S~(WmO~essp;xFj)N@^N7=#fkXo*hO^V&^=?k%B$!1iEf1I z)Dit@^l^-1%5^93)5RAX zuhRPmKc3x>({;B9wT1qVt~Sn6p8!AJee0}v@X5~A&hVTg^YM$IX6X!Ql>GaMhcADQ0m^i`HQY7d(@NrTmyS-%@e}vk z`1cZ@gI#Y?O8!|oJrTb4=@zHA*l{%h{+DAF|MI-ht!sV6&Tq$8@jk|*H4oy0w|OY< z6Td6WTXmklxkNB1J@hH`V`2B( zlGVlws`Vk>=korE{w{evo7c+R9>7EWyy{xwiH_7wo|j#h{n2>9i&O{BZ}HT6&gxIS zz+-DXxnB{wt6vjb4t4_Gwfp5Sp`XD#6m@F)1nFGod>hi+^h>ReJ&I>MzN!0?y^82- z*gUkS2b+D%_X8d8kC8505$8}9F3|CFG|qRGZ)cp?JL=Ks5Eb>b7A4qY?L(2eHg#$n zpZLYfdL8%^4`g}gPm<^L`Bb(ai+>uwsjS~{sn+rQH(q=8!HY%)#SQV&?SJ*yZ!TMw zDi7|T6)zQj0{v$AiQw*RJd?El+P6}vPWGC7{m7tosC9y$)+elA@ZUO;ZP$FiazC#l zy-9xJHTtCfu}uCM{+32y*Dv$CfYaP<_nDnu-?d+`^*F{&UGse{fiGeFo8&qL@Ib)7 zf&Tnuvf7v`m}o@0Bex}s8t@pe;>A7{nQQCje7lda_b-)(#NWzcC((|@2 zFH=9Xjf=dAqrdUuaKH*S=}TFG|@bnTO)>^#Q(l`A;4{qV8jxA9Sav z2epdd4E(QMr@MoX%f9ywvo-&!zsL2pUYSoju8*@g}Ig7v9~sCS0qyf;gAwba^2kzoos$&3lGf>X#x944#)fH+e+mvEwGn2ZOH@ ze~+hM3Oua(lfCj?nos&a1_gAWFHt=ZK49^7YM&XZ_q;7xs{A+oQ_4sBzL~vhNoV}> zjGEH6-GlYBElOAqww{LOdT!LQ&`En#c}Mc-;G@ACqtC(qNqu=mA)ifu%AjEV_mu(N zIO;lD*SeoU4t)5ZonHT;ZTqXF~ zN9F%fr`$*Rh2=fpy5NU#qg<-`>yP5qWgW2Y>BByK=d1pG;dveDXR2>z>+rqmK%6_? z&YSa+XYcsIqv>HneUNPq7#J+HrLKIy-(@%MGdE3VXM6y7=tXCvMm z_+o2AFU2wT_l-gLPg{4byr&;q{(SoEoR{bSgvX|yKp%b=)sgAH6rX2=FPgq>>>#|^ zGp1KvA(ml+Y=sL}&# z?C;Hc1@VY`>etk5g)8@uD&Na>>1P$Mc$CgGJnzzRt9J!n&1U&C(;Ln1ma1H5=@Z)g zS2}Pr>BG4i|Ucd0i#PySxbQk@E1WSj7i zhG+jM+3KA`zC8Ha>aeNuVY>?d3jY=SFW70j{*a)0K!o>Ncw0|DH}9?LT9G=rt{?v@ zdrUt^oAw>zW%2dJm&JF$erJ3Zee?XYbV5A*!}Aqa(m#P8%sy!2?;4o*E#Q|C@1t;+ z=z2uqeb6`8yjBMI6xCO(=e#6=r(rkQMev1RDsMMRyqbfAuLiffzw&tCA6jJpocJ7$ zm){Al`&`9Azft{@x;*a*xM%cH>01dI4zR2%W;j6Qp@)X`)L#Pb_)_JSrLUv=qrO)k z&Qp9Td~Uo@{w8>&X4Q$s`x((aFY^Aa>u&z~!DFYqI4ZoE>Ck_aY@@vLkK$kJul2Z* zo)i5_*jsoY^gbo(PXr(6(KVSaTs!?A_ygj-kMC=|-zy(MoC5wA{DF93m8Y%`)Ja>k z?!c>)PX<2&u8MwY`W4_Kg?EefnCQM)uk>?)6B6!F&!sI9?#pYQ^?Pdq&i-qyKk_5u zca2Z$cl0%z^<1CR`eQx5D}P$+FYc)Idw}vhcM9*w^FU`>_v_)EX1|=C;ZN^P9(nPl zId}IP;dY*M_2M3TR61}c#I>q#czM^I7H2(EJkb+3(%m_Ikhf(0spq)9s_r z8!*w)w?e&+eDWoVv%nv~hk1eQAN3n_V(F{>xBNQ0Zlilz@yCn$wBI|@30eN-v-Doo zk0&c1!}WxF_tdrF;XG5>?SAVW z?-}=Pzq{OD{=N2F={iMlq>9fxI$6>|@Li$**|b=D(XpV`3|Q}G+1+Yr%Fq7NNBFL8|Y z9d-Uv_@m;I9W?*+o#pwzY=E`$i~onuw0!SC#vSD+prhnZm%RaxX!ki5-c?;Pv?DuqVI0^zC7ed`+|bLF%wtXOZ{-d>VXZLe^PlT=D`zB-6kA1>!-isXmmWx9`>M~>*+g| z9zrZh2SK>q2)~kWRuSGh@ZI3APEx-e_yg6)o8V8FIbro>uYUA%a-8C5`mfPD>LGmi zF3JZI$DpHB+!xAxpW?C1)=6`JSLpwpJ~G!SqTk`M0b>_zwa&1B{-Uifbb0EX#-I0J zw?1Qj2s#jUd|P^?;$`xF;Npdg!>-Uzt#valyj!vD=_ha6Jv3VVH(7M!J1_m_?Vfoa z5j`8bPJbufBTpZ?aAKag-Ht1{If{#^Cs8M!{<8T+=mFfU{>$Apzv8EFLT8sg>^~{K zc}M>8rP}}T3s)#!5nn7gY7d{#a>Y~X6UzAv9+>lV&E4Ob@~qr=dUyOmuDT;J3Kbx zz>{wOMZa*I;%53pdn>+XU1pzcb%B06<>6&FYI2=0)mJ?E3dMbKoX+R4L~)w@TDv|tv_%QHLh|bLliG1Z96Sli>v{0K!&Qf3Jm8mRYFzZsF4Ov>uM_@S z;wkD&@BoSjjr@vqB^umZ<$KXZ;kg(4e=FRJ;?1J}4W53xpRZI`s}JCxsn^)QcMXaI zG=EjDUHcvH>jd35eg(Wr;HHP^eX#RYJLx(_@((}h{ZM~;&Tp>xI>Li}k@8TlYdxY% zBHfe-?}6$`P2*OKczN1{p5c%6_m$`}sH7KXeBauld=E8;9!?-3s)2RX2+t2*>-Jo|AMiNa<`Y`$!fzFikZ-VYuIHTWAL|dEYVuFwgY(DPJhWUP{|R0>c)d=R ze#b8i$CoTU_OpqDZtfbSBjo8bw(AZI%8x|l*Yw^s=6$t1e{k&Rm4R!lQ-3k|Ci0K_ zE6&xr@zj&xWj$E-S$+GFx_Oi4m%8knr){38w|u5NocIdR^O4;ij?Pb;zRP~ z_V@jr>>;?5i2akjk9!sN5%43u96Sxw-@Y#NtyMVkg5+7>*8Y!v5&8NLWbd$l)v6QB zvU!S~OdrWt={*+yG%7zITa^#A`}x7@SFOWx-4x{+J^5MDVPm-M_KaT#w46VnRT8Gkgif_t()NQm?)vRIP zrK~^juJGz!Zu?ZcPWJLMJ@?|i+{^7DJ4C+^ebM6W_BW|7X{c};@aq0Y^YWDDsX_Gs z@ZQP``%{#6W#5O7!PY_doc}8OK7EXXmxlTT`<&_&k@fec*5hxr4mEFH{Qr@B_+!c| zp*Pm9JVAE7e4qXQ*gEexD~jyxUttL10GBl6VP?o63W$o{a%vQF#GDoL>Kf2h*MK@E z#GHNxjF>TDj$KZ%rZvlox~_;0M#MBC>WIj`*FMj;m*(^Ohxap=zTMT;r>jnQ&hxaw z@8PAF=2eIByV-gXzdm}Ko%fx$GCAR;ZFhV9l-}X)-iN<5we1jiKO#6H`W)>33W2zW ze1PmPZj|@Ow7#|^y!X8CU&zlnMsXo^20QuOe@Z=K* zq~o78Hb|E~zM}ne;hH@^xPAJ70G}{?BlIP`tUNV*=CeMreSx}#^23?_(PMgl;3Z72 zJGaiU|K{`0LjwBn=(L~nk4iu5oU(qm-mCldd9`@0rHd3tYaMKB^X4zKeL2Dx0LvdSfAcpXw5RmMnSf#1}vRt!t<_XNTeao-X$->v?~s=ig}a zP!HaQ`opz)?(DC`1K{E5%csARzAE

jKn3v8aXj{5yo*Ez=a_jtZ=8D^KwCG@BB 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

?3kI4?IkKzA; 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

9i={rF}VyC&8l!a=YrhzbO9!9}V?bv-1*v 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

  • 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

    skLIzghb2CVixgiIkL&q{ydGc~ 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 z%0D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

    (tR3so(|4M*IN=UC^kM~@s9lW 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ȣ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%0Ay)buv57iXu8@_=JFeFPNXq0{dS7aD?U8;@`FJ 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%0D9e&F5b>3WJoV&fz(egR{B~I4|YToAE!R zj|Y!(O|ZO23kMGqI4|N&^fS?&G&^f3US@r-vhVW1b0Y7D|EoTr_>kg2bcnX>Kcdgz z7Tp89zO&u#n{L;#gB#ln52t=G`i#8r5s|(t#ruAqbf;M_H`DV2&qRLB?5`#$pC7*( zGxX+HC-ryeg@9Lsw*;OO_@5^UcVhFfw6J~-H`x}y(8F&I-s48azng1+5+Awjqi>j# z!;=kh;3~jJ$_{P5t4<2PTOQl~e#Pn?!nK2LaB;TWRw z)gHZM{6BOQ(brAqq3-W4kH6i;Q6I-1pHqGEw_N@ieZk(2Is^7@c&8@e+|~=K8*9GS zbLe2$b4Y^voqcov^a`!d)ThZyjDFSPO6f60TL%ZDr{JmMGX6HoyDHBdIZyJO?c?yZ zz?(+?867C<>gYNCYIRAE{fUP&l7A+TUHh1wzj^-oJnfI@o!C4KbmBGDJhchZOOze7 zAf3S)<5zY*J(cCLsDO#%WBx0(-(%-(Dm*1W@e_T56YHmZisA~LzZ$=j_aXjEejYs0_<87^pf>@pzu8?c z_mRdo_shCdAAYtfydZxL{#$e~Q~jQMM~0{54+@{*oB50A=E)9ff^cQ=IPsR;ptzFf zfqpXipmy>r+`o7*&-2IV<4xIXz7H+>MKi~J2gG+Xq{?~~sl1$>kA8A^7RtaW z#S2sy79UEcuQtv2#3oWNhhI-|9K1u3dRij>Wa^;8t4HeH$IbrXun*q(tUz5?xU5X~ zk^GPH@DtBobkm1B+&kQX4?_PJyc2j1a9nnuZ5{fPrwD&VKL`4g;^B0^{Ace2cvR_7N8#V}@4Gp0g!CVQqrngUL;c#; zSM{&L7im85KgDlh;LqafZ|Wcc60vndYq=i*`F zH&EX^eN>UULV8~%T^@LC4^%!y`d$76)j_CpfAP85-M1PyyimnY?Y@fkyT?y}Pxo}y zTh3PA(dKibFjd!sPgnJmNW820mtFJ?#M|J*$fHcrbKTfJqw*l`NSn8)ypbp0hCUN@ z9qMe1`(xclo$5#@>G?fspYaIgtC$z^bar1o9s0gppZYj`mgM6VpG0sLw<<6Gp7sI! zR_dM9>C)@e528NcPggxve72GNtnz^#ysB{99-e>owRrfQuUB3iTn+o*NF%~3o+LXQ zD?AzNt^80ur>4RwX+EN-vwpV{&zbeT73t66)9i0x*h2YZ>Tb%vdz;VpVOQCSeNO`M zm;8wcFXwRKtyw3f7v0ofjN$e{^rNxQ2X$`V+nSZldDw=u{7e-xK}= z;nTh8adgV!`3F=-=Q)6@19vf1cnjtIZ60ce1a!}+3&9s%r{@oj<2ThwMk)^sKlr|S zPq4p<8aMGWe)zv+f7Hn}KS6aP4^BaN6+NdFg{?2S<%X(Gon87lvAyH{UaI#7ep+xm z=)M0cewU*RU*RuQzZ!T{#lfC>BlWuv^))2_*PHVbKB1BTkp?m z+pm)fNB+y^zqJFWPF_QH>BSq9^&5*XHj?jNX8Tr#H&OprL3%xr{vhg8_&4BRI z6@mU=>L29u;YHjuR}U%=L$zLLJ(Rs9&Z~X{E!pX?gQ3$#+60Kel-#o_2|gVWec z`LJ2)C(yhFbh7Px$MDg*{$_oN$3c1~tb28`!;09OGdo~Ciy zapjKv1ia%x@+{`)IG9NcI1Y-xXh7B%do?jx0X3^HezT zBxyXY1MkfbTEEmsp5>wO1L=D^WuJMMonNy-AfI9Uie*mY@aV0B(|^=-Ad7XW{XI~C zpAkMi@J!Sh;QvwG$qPqd?`etG^^#nEzMrEHS$vuio^I7?qv}?A&(Ue_;5z2=+f9WJ zRhK}I^E%~qsBex`{^=9#55$w=chmW+ocdMb6{;7JU(oXod0v^s;kORc`F|A7kGPsV ztN79U`X`siZH`z|Xt?nE+9$4QEb4nvI-U5{@X|#+U;m_@uhu_}w_E6L`2T3*>+7id z2#@AhY5!&Yv*Y%3---u<{#N?&FHzs3`m*A2L#Iu@q<4ovyl;OG-%A;NZ|vhKNUK#b>c=_3${MJQ!p4c&U#MhNK+2TKi@}mcL zca`5&oq5GO-xY`#)DIh9)VvWl%3t!e^55yZ(|D4H^<2fn?O&Jukr#!J4P8|A=bAm& z9~3qazt1Rr-Xt8Noqs*cJJi7^UE$E}JWqA1h1ws%jiCE5x^lxqzdL$pIA6!XEBLMY z&ZoXzSs@(27; zSS8&O;kvwdfc0Jv3T?zM2k+grx-a^Na&b>dUqHu4^i=7Or@vl2bdfv|{pntH!`ApA zvKOAuQSvL`fy-ZaEBK?}JM&-bzD^TPNqzfq{a=Qj(0{rMLS3Icu08Lv z&|k-$t^TB&geyt^yKlzbtCDyMercX<7xlez==0B zYTbfY)Z zDO{@cl|FviL&Q$)`I7gnbl}>lx1rwxzX*II#8po!{|D}oJ~*E5RQ08y%gg#_*PSRk z+}^z_KLGoKkJyfbe}>PB01nvtxJv$p`d_KLoxRg_Z(MreFU6(*eQR!)D@VF2#mnFq z(8;Bbc%twN)UmdezYG5leS+i>ZCoATZHV8_Z$16W+sZ=EjyK%4?4>ou^$(r5&+0C# z3;T)R2)G#yes?_)Me?XgwJ+s z)k*Oy@N=(O*A7eeXZPJR%+YmUla3+%4%A6|eY5kb^7{vbjX$_`>A<~PIQp6K7vXQs z^ZMX_Rk_o(F2UbJUU`h33%tU-H#V+Lf&4G{Yw!=mbf5#6KdtL%93hxyawC)qfAg&ma7*ju0Is3@7Lo~ zWsZK@e`$RJ=ZH>$`b0ART5y!`1AirdfP5}-$sx+qN?$Na&q(|A*dV{p!+S-(T6tYh z|HJwpYo9K1<{r+Kp)XlKcbHP!Iv9%ZhH59)t!cge`@~)Pb@yp zxP$QM;@R|yJ2Kn~yyM4f9_w~Kc<>|dR%d;C=&L>>zlC)IJvDSCUsHb@c^7aX@H>NF zLB9~(+)1i`R46aFRDDX{$nQkQ@kOl@LzVw4sDBI{FthVfZelLaR~^KA<>7B;J-bkO zLGZEQ(f51f=~k=G?B|xXI_;qM-s%$0y3bV^jR6db3b>8&0i#Mhb|^{ zd~od(ln*{w_6L6d7wunfDQ^ZYAHPz5bxie4*Iz$SZ%Az2iI)gx(7fLX{6$`Ob*bUB zN_v~<$ZR4!-mi-D&?n8u)qR}$7rgY%VlED>ALQ77Uy(hI*ZQY?y@z*`ygYT0OJ!fL z+TUgT<$r8(*)^~2*(&r`-2t2oxU21z2mM<1r}~B`-)D9)(DB~j?}8J2P5v-CY)v}P zp=KZOduMvP;AEOq$AO0d{Fih@<9D)S`nAyO!|wt2mX5Dpb&K=_HuLq7gUT=IhLryXTS=v$|})+?&RKSIm5ck(@5H|fkIMO&Zg69Hdp z*J~f@(1&82H!H6=mT|sr_r*S-JfnvvZszT#Bk_Rg%oL=H?*FFuAw6$hub}#MJY3Jk ze(&KD>4cXHzohrvCy&~F!TZ8>Q$3ZfMmyuH9T7DD{_pZD4%T(wZuRN1fwRz+N|J8k z_ptjc4=0Haz`mo?DZZi-&*N>Hhe0+E@t=lInTXCf^DO=$#a-RQnc~OdJ-$PAsrYB! zZL3dIM@pLIpG*6v#pkkf;=~H~yz1WYJ&=D+`I80=b;j@4Ii&p7Gbgxi=J!ST5;(q) z^XID+-;I@jT@&&;W;|u-ANg!_}`B4A;=djX(I3cN^zV3VQDG23=>n&gUI-LBnswVL5(N zbZp9Wf4zhLUGr4t#0x3A>Y@4SAHLM{05?UR-|nxk+bZ{*%N_m}{p%abul!B;Wc#~@ zB6XZR-zEJ7Ng%Gk|2s+hZ*Q%CM=iK@aOD$Qx%BgtNdcZybhlL3^y(|neO2hb%H64! zKhEwS+%q^U>dxw0itvBg_#2C?hs4?FlAWt@=I4|3zpFbje_eRR{A{h)>G|QQP5Nf~ zgO4i@e}l!Peu432x~ZeD|FqriD~g7%)0@0kDgZf(vU+6U>uMR-bWo|(5^S-nPhj`*DX z@0|W%(#zEe&v~ivSAFF#DE>7&s2vtwkRJzMmhzC9-VJfm$dp%SP2niTA6fkKFWaZ+ z*9Xs~_&TD~fbQmBY`^f*o%ZtA{eP8rRoseBqU<$El&_1@LyGg%AHe%DP3x1**O(x^ z^30E!rTnwv!w9a}j;{gt<}U&wF$TH~M}7+!98l2d((2}1+<7t>LybmT4Z!{`@*cjNDh-!@P@NB^yj zvy0RFul28~aF6_M`ijxL?5X}9{A=P<_>8_+yi5IRLN2~-tMztNkRG!q-i60%pyFz9 zhTv|{WkY|5{TG}M@rv}cqjaRfVMg`kNAftw%MaAPgV3L zalzXw-fS1-heUXG;KkoN-EhAu(C14YLp&gHweY3l2Z?!pwVFU*LOTDo0|R_R#N*WC z_Y@AqbmaOt;fA8};Sv59-Y4OeBKZO0UHC@GcQ)4t&+~6}bKrBx7d@c*A3AHw_j_;) z;ve=$oU>=IJ7#nU;D*3EiI>K2r1ulNnfO@XONe^j@F~Q_(wFWcXfxY8y6Y5;s;Tju&5!*+o+3l(*6MPGJMZAMg%dq<9%zf(>V&>o0zxy{+H3@NUcQ z=dT&nIuNIyq&U!yA0vBjC@7xvip$}-(fHfCeHFjf-fihT{rz+R~;%f4>u_eo@02tiQ`oV)O+pk z*mcjNub(l{J-*LwHE(X(J;)w>vdHX;ydCo|yx9`seDK1nEw7E9G(4Mrg4P@A2;zT@ z;1sGpK6>%ec1wz>Jzmf~;P>q!zkiL^3Dv*!oHuZG-<^VZ*Zjs>pOlx5dHdT=&#%he zrg*_Ww*1qEmAlFg2f@efSLXU?20HM=@TQ|5e2U@%_Gj{u`8WkV#~}e7Tlj%({G-BV zDSoG&86YoFGY`r~dg7_Mn$H!&WudQ)Zn2%G zu{cTdaM_qMUjzQx&RgNAZ#3EYG)~p)OLZwbPJLr_qsbfjA5xyv4(_PQW8S;? z__krs6ZSrSkH<=QjP$>O!9EAO0a{nK)~EeWK4>7(H|FWKz@&>~B z%1(TR#wVT2c+6vWZGFp89h|L?RjyX{!134<{8i{3U$6X*>ZcK&VfBGbOz$_#M|@t8 zZUDL{zFhVHd5Rxwep-f}@^7m2S*QKf{=KoVkJdGCM>YEU;}lPbkK7CQ=kFOlzwWCA zL&G-GNwf1z(|qot=iOKo&$s5i(jBXP%8u_5KFsA`l7K#WwZ=)@x3lUe3*?VlU)9q^ z!*f4ftWR;ZuNN=YeQh}Ry?5_;ufOc5lwZw>vU751IaUL}%vLeunFLI5(fG z3e+>jkLb_V`4`#!=(>Y6A4wu!a>f&;+Pr1oZ9GoL_jGHI+y8=Y8&!Jw!Jc~h@tTJ& z!pWYc>)PK}y1BZ(o};hQal)f4;rY(dJeKQxyAI!AvmK7B4*NZD&y|Pusm%1k$um*+ zTc$W5yJ6|_u05t74qv>KXS8X>mvjyAlaV+5MDc-eh4Fj&Dd>qAp04GXZPT-OY4i}!!!E*v-u{nzsU zz?b7^z!ON^ewzFhJ5TGdxt<&O=C^cRo`ZCn3)r9bOFg$ewEopP=|SrE!TP;xAP<}G z|5#d_uji&beI$QNzW52vKfH9jXSV(=R~-4_6U*99J$u&XsuP!VZSB6=yWett0(GxW z;YP(}$I5Q)_+gIsj6C!zn+K2oq`b1nZ{xkOzn9;TvOZV`lSX@)WVTw;` z&8#oZj=%Q|XHNX7{=hRvhL)34-gMtpxL!1-0Ek48NCk^Ut5n&DF>e=%M8Wc-7S zhbFzD!H#|o`uR^&Ulo1vcHitf9m0EB|Lpg+p`H4$;RRT-={s*$bOhhm6P^^0o<~RN znW(QRkn-v~3$F)1x*gxaHLM$#)eQ@$D~?9zMdxLHJpJ|WcH5=)#CLWK+lbGA zI;`T-$UHRX#kcd7@R`Di!n4_=zI^bB=u4dQOqri|PPO~xx7S*o^>dr>KjoDM%dTz` zzmjweJ$)h4dGhE#VR!HvO;-Ph^o!7;^XMazU#EZ3#@$#{zSXyq->SSL zciloh{vG7#Pk{%-j$2Wbep04eYkELC2A(JN5j(!L9%~!}lm}rv3zQc{UkyEpmGXmD z=rcV}{b+Z*)_FeD-|L14^pcMJ^w+8%`ZpEYsy}9gt|z@H|FG7-H`UKUe+>Fe%qRLn zHvYx}x-Rxz`#`BLj=m4($^LzqL&sKj=&voo2VUsDo7+V5&|Tw#C;gwAhp2Hep2_Nq z5wD!~p~S&61TP?cEvKrkHbtMxYkF|qrwZTg)lUQd3jMpa%73B@g3cOtd7b$7s)W;K zUCi*m;(Y;s)eLtY@0Z^|KMlH|o9Ml_`776c*URPW?p?IMbPboQf91$6{}}mD{TOHV zw?nvD_+$8cd4AL%wckei*w0p6K%GcD;#u9&{$4t!^Hk^B9!i6?dc zs>;t&e_%i57cH*-y{P(2B>trz5#3?xH&ZkZ(i4v8AJGSC<5^{Rz65-GSItX}=B?V% z54YEQ`=8Z)uaaMPLv@D*m;YXbj|m=c^8Di!cTy))odP_$S3j}0>zC92<?e3V1*OHLi4@>!I>P7Vb!|!6_8V#R{ z-s2So`rhcngn#Z5drv+4M$-PR+1H-m+Wl|MwPD=T<>7bs!(e$@#($>eHR1sIE%g8L zp32|Q^}9L66Y)mXZRwAP4>%on?Fc7cW&69@>Y#q5NPhr2F0v2!Y2tdScea$@V*frZ z>({gIYYVyl@#Mz>x-{ssP=C|Dujja-0|(PZ`z+(Zk4v65KZH1x=bPMiK;y$(eOIV@ zr{jT(U+(YzCqIiiJp3E<|E>LKw-sYs{!lbsjJJy~r+B453h1R$??x|5{I*ejxbb4^ z)6u;53{AFP==-3+`*@=AHDAcjCC~nl;%V?;Hg7fIikx5G-+^~kKd;VDU1bNC)74D& z3EFSyD~jT)@a!*oUp;*oN$bP6{O9BzPV294k=kXa0G1UtN(EYTfcicG8 zp&M!E9g^`7?6v7XmtT0mkA-^iAs?Lj->Zus3fGLjoBE&qN5W0uSG}#{z+2h*lYoBS z56UY)DnALHiW>7*qIia5nfWnsVJ=UxqWHYNga5blR|NVG)qgF!oEFr7?Vr;)!I{6W zankpL-JqZMg!R|P7G{q@epm$O`lQCM{+lS?Kd*l3h#zj_Bj295|7ab+U$|l39&Lxu z{XZUvS;GC}SD_ckIy*`J`bk>9(et$HtSENN^8?HNYBN3u`EQZ_@x63Cp0D)bJ-8V0 z-)TO32l3!V>F!421ocfubUR+R`HArDFV}sWzUz=+>tY`_PW7k@Q@){3i}k-Oy!5wT ziIbiNep1FS1>cm`LoZ$|53YEYZ~)-%hkR!1^QW>q;(D8}!44eNe##@jgAOhaJW6_e z-9~}FhrN`qoU+39$H&RbtN%vNy$FBqTe80v!a+3|{=`pL-CulPk+=r`jQlpb(9$!B ziQ%r7;BWq@>u;eNr~ge(rwZucUVwrwe~ILjL;oTDR=@ zoz82|wb&{p07c|K|IP$cJgYDAn)j%d_jQDu{Q>i|5EI?;52$ z5eF;oBd@9T!Aln*;%}^w{S8w;m+(Fj{q(N#tME5Yk^hb#xJ2t8{Rc~xKZBRZ@K8P6 z>9WI7#wX;@7LMS2J$L3O-(Nf2f!FFH{Gaf6{%Z9lk>^^fbsXH2{Pf6uqi?M~sVH7I z|J!#n23&jYe&Emi2^trAYw3K~4{^Ld;{EmC3J3U`?DH}kkH1{^KV0~SH?0mCkJbHu zebw|`XIwiBKCwuD&&!GrHJ|al^GCIETpqgYv3zAddKk4 z&C>npdBL~h(f_K|`Ueh5I&_gZ(d@oGxUYzR^NQ?G_{WHDx9UmsH$-@a;L||&?cR%* zZF1fN?L+$c^!fq)Bl2a{;=i)%cL*P79n$lTD`W@wA;Rrtai#Eq+BX{t>L2qP3-?9; z+R<7M57E9Q9zZ|B>YLiXyTZri^Ekz&1#o@)$j%-%JM_XGM*1D!*ZMbF_qF?@XDmMY zuJro4!M{ewRx;qhm$YX9%&)(_}z zQTIDe{v>&ZXXJoI<1bsYEu_D9}7@R#Uuk^dwA0{;ei1%1Zr zbYJ4v^~7EF9_;3-jVHxV&?oix8}#1u9?cujcG4~T_HgHjM??H4@YH(zrW_wjGBD%c z5N^p&U6+5O7FBu7EIXi1v!3z^SanSJ!?V2j)#B42UU*UQC3*?O)w-_Mk8Z9;c4zkZ7v)<+LM`JH>06(>B`xbcx+eOhoUKWM7Bv9WNU@+`txdHkoAIlL2k zbLBz28Ik-g>v7I*6OONO_sbr>R9*WM)zy{9jF$+H4NnSrgo*Y%vh_*-9?8?H|2A&D zt{o;j+Vd*uj|fk+FK+pBU0l{RoOAY$KS6xt`u9q=Ty?FL>R0+){rGRm9|JFRv+QL@<&9?K^3Nl~s$Bl1 zwWB|LXI-D;(WA2Y=;l_Xx|ZvQf2MuEKNcE<|5HD#|5D?#sEmx$QK*odW0AeNLRI z^Mlt)G!MdSO|)r#V5jTc-p zeL%zqcAkd9MYgZ%?;47V554+6BYisXz6duH7bbB`-6LgvC7lH-~FR-AHt?c?O*D=r(A@~Pk_r4Jv` zhv&Vu`)KWE$*$nPvfulLLzGWi0spi5bl~kskE^S3HNu^%&gRv3toMI)A>V)0C5)Dz zc%|Z&6;G-@tGrVe)lm*Q?UG~Oi=Ex_6zA7Az~_3r?Q0(0L>q6n06w`H&e0{0*!kfr zA)lYvb(e_u#M7r!fA>RI{riZ-)$YC1QA4ij5X67yFV}ub|IugP9@_DY6@6r9<*vP+ ztBt2T9KUWKQ^NaH>N`&VD+{AE5A;bT3vHb0Q}gh?(*J9Jx3sXIo{MnNp8Ngwr@8Ic ze$_qSFIGqV+fw#d#W?kRN@q1*m#kk&^JDJ`@nk8F+X?<)vj_U5=v&o$HQ2$c0w2ub z>O<$gkGAng^-nEvvMc&uS^vQ2(q}3>W@P;+>b(@MTGyw~ViU)ChH0In5AvFI-^&uu zw2iAn_(^pScvj)noYL;e7oOaHK&Vf7gYM%w+E@KXlSvNA%^*bhqw=LC)w4cGJ zpnhi$-x)lp;5~((^=5}Hf_=7f_;K_}b-rka)1K*E+JAHXZ{Y09!C%F^Zee3H{Y!8$ zeH{DWjmmGJXHLBZd@=lHleM1+Z{|}y+zulhb+^`rU)J+!>w4z=iP5slDS`U0`gkL} zR^l^k_I$es{Fp`B&(W(^f0>TQ?mIaAtub2f+4tauM>kXbR#AOI(d?t2n`?Pvc;d)U z`a#003_rYe8H;`=eG}|6i;rVbuc}gynWI;%v8NobqIg7`jMy$*zv;x zeN2Wctqx{?gWQhmp0_kFHlCJlq+M6fmGRlXCdn|jyXyATKj2j(Z)iv2U$o5f&*WcD z(YW(|{{YQHnalUVWqolx=ScsWcsBg$(uqKK0l(G8F$g>h`Xe4bZS*$LE3o572l147 zbQ`?-h{d-Pseed6BBBdMK4Nd}zu?2{yq&^s+8@yuv)@a8_^jR=%zdD(TWIV>5 zxFWbKbha*D{N{VFkL%*nxbN_`u2DGQO5vBJo94k2*mZgY`akS@uK6#p2!a;OW!jN`A2&U(*b)-cW3g zSAY4Y6GpV_=bY8S+Xg<@s$L`A3J=dLdW|ELe-_>+o*^77eBjM-_@A48>=Nt>9u6C4 zZzp}42o4|K7xb;+&qGfQ{EGd3g%h8He@A)LtA%_0x4vg}Pv!H3dybpw{R2l+Ej$SN z({}#K43DGuM(h1>_oDf;{#||A@x#K}(^ESP6H&vIN$jAyiEW@xuEENAAI0p##!i_X+PD@eugb5qkbM-ctXB^1K0Wx3!JV@n+PFH{`(5G>{UwK6q;IdMyHxScE9pMo z(y6ab`@$XL(Vu}w`Yg?(crv_rM7{7N;FrAgV7&P0b^rLmU0goT3qE6j>#P0O_RWF8 z>~E@*{tUV>nVv6s6Y}}!h*HOTT6RdDf4t^1ou5*iX!BG952eP5-@aw^nU77yL(Y4SzQir6V_^^Qh{L6*pO*X#W7vGUyQIaE91 zUd8wRT=`4(@0Ef6Ui)6|%89GfAF2ZJGJG*(&l*3!|3!@j^Gk14d}7D9bEfOr#vN?=7}?nqPvD2kpEdhVzAIMeu1EZ( zb*FBG11DkU?;g-id`tHsKU()Wg#H$NALedR946ibKlYAU$BZBNda)+w*VFew+|f|X z$A#5yL)o2;1OI%W1Ba&ZWIUh7e>op!$Ba{{NecW{(5y`u$4vMO_y?GkBvlznU+*yCi`JxI>t*?tPcm zqddO6ubyvzca7|T=llAA%NJ}jpZ=oqX8f+@fxH2@f!WF*gL~Ul@qMljDZBqpF3(@kE9?Iy4*)J2-W2i}Hj|CT zFXTU|4>(dcqMx}gS63zPSMFvg&uZscT_pc}`MUY21UyDlkvQ*J<+)U6@|9ZuQhQjq zWk^4F+R~9H20wOy=3jW>NM8MA<%_vr_k@eX)fkGq-uw{zKZU#)t5 z(E0OuIqqv<#y@KFP=+3sCy#Ew6E8Is4->BJZPm%BpW)xy@gu?-)t|(>6?r}vi9sq<`v1P#E~pPUN>3@Sk)B9L;V!4?)9!0*#z(rF)(z=c zd2~R)bx(gk^&ghN^B~@3FMPho-$##r2jR;8AspozeWuqf>Ey!GDxK~OPr9M%(5l0D z`lRXCQh#y$Oz(~GxA9fsZ@0hh-!snnqHlPwX3nuM75cgUgBN`E^^dEIr^pWzzCXfW zakcCneP;00={S=v0loqI-rYSaTm^g+KWn`q{uiDwqDMqN2|Ug-(`OHuHfaM#oMPwg zo$))S-|IGZdfrjER6kVs1KyK&RDYwN3qC9S0dQHHsBe*e9rXCL&%&z~rT5{t6JE9D z_bFaFidQ!t^wFHtuRW;Rfy;uYNchpLo_qNR58ish%D&+=i+_E8;lQP<9S@iNiHFmJ zE3kRM59#92V^iO)M{kRD9v&j`Pel5vz)M}d?<@Tt`>Ncj|2QsHUJM@BRmu-_v-jLf zf7ydmrw(|m*-fPX65P4Q7h4^7S><7E2gK)Pe?wHCsTi}}u(_YtgbsVXS+{sxQ*ru| zhfhD|)e^sb`rm5HL)W!+;sZv<# zFN5?{Jb4lNjo=qehgU0puDT5~UeqUr2i!__NS&TKIDPo)Lx_J@{#ku@@>|N#mx|ae zeC2i8eVIf$_U+e~ zJ$kKw_I#)>BmiUG3ytUP?pWYLA ztkdh2crwvdr~hd5+ZM-Bw^l!zze9Oft=sH7{z%2Y@PM+B@Av{%o_T-5Tg(~rH=(>KY{Art)egS>#DcT?FgcH`j+l<$`mlM9!!~a~X z{dYU>|QP;}9>c8j$;Xl|o2M6@^=+mOFYKGlU#%q1*-^+je z;Pf8h0Oj%6e_N`b>mb=prR=qC+D5bfUHwxL{cPzw#pH8)UhOqs%axCVhkP&n{WzTu z{|BC>v$a3b_XK`Wby3-6dHARNvnTc0r2V&r?7p++)#hP!f&7r(e}9jj7kzfvk=AFu zzwIsFDb=^pdv6e~O!ejXr10qQu_$j8wa-R$+P~EPb)wc+*{7F2xqtQJBU;_MX-oG_ z@qrg!9M&^jJo522U%dZz0UqO*wEq()j?sFl_{NJrGycW$YF<3KUiz^fefzJJ7h|1x zTz<+A+8@|2YW3cu|2XrIUMf~CMXX|f@*8f}K4wv1M2PNM@{%X165AkFBmFf>; zU#5OdUkdxr?OLZuo(+9Lc7jOPvQCpJ$#ocgabz6SbdEPfgr@_lp4 zAD8}^by&JT84g7Hpn5-66gO7i9=uuf-AvJbX5(CB`|`Z1Ab#rjMcG5oZ_`v3=FXh| z!rN_HxDWR2zWF1&R|fXGPlYR^?kPN_2ZwR8cwKjvzM)-bMG?QyzPCm9%1iGcu8>_~ ze;>#mAJzT>P8#>A&lKjhoeZD&EqBg%5A53{(JBR=3eGyNHN6*{NKh5o! z_G@%>GmT%TcwOI_W1ii*Yk*e-zAui~Jn?)Z?~iz9vVL3q-Hxg+Q-6nl3to|;&2ywL z;vCtP?9OYw(ERmuvTILWx2x6pqU=n^_0RaSa`}#=I;aoLONXBNV?0c88tcwA>bE6d zue@v|&o@hc5AF%pOY|p-Kgr`?gLkp(_II0WJtMDWzgIf?hUhcbdKl58 zu;WU2eAz2F0QG};`jMpf=LzTQaP0zD$~fAH$gkw2=w;jDk^LCvS#?=;md{uZuRAJmbzr@DQi zkm5bQEbNi$7_`?o{-)1quBYnD;1b{=5`HSf51=DX{hK~S`oDO;PmvuCSKre@?LYK+ z($7!bJkP_Hz-y!TwRN^mvS0Vs{`;8LTlU{GwcZM+RWuI~>1$vht~^^hc?&!4;v{o2w~jT(Ra zMg70BUk|=y5ADBO3V*ue(h=wWV~1hx4DG+dUuhndpGw-grX2pIRR0tYN%Q^J?qi7T zWP^bJhYlt@S>SqO%KK6thNQe3t=u&2!{RrK+OIX9>8`EueKp(1PYA~;Zk;at1Um6U zwEt?K1^=e=H5A3;hCkykZ|2vLueJN?@8DCz|55+4e^PdZJAK4%5_{JjqFYs^J@1xxX!kOTA=)Lz*e!z3`3l2T--rwFk6kX2# zZdvZVXz$wQ_?*F!_Hp3qq;Kijf920a?Z5D#dT^@RuRXY_#aB#T_VH6)UEj1{tX=rK z?Z3sFgg4WEExSpQAGLqy{mD}T`4Yv!-sWLwIA8N1{1<#;;7?;e?ThL0bz=j0frYXM z@M+RN_bX*r=>KH?qv8tT@x1s*{iVu7)+!Go+>{@0IG?C}Eh;|tTF-sa>QL2!{Ug@DX;u=HanBd~-uOom`^)z^46^;PZkSWOU(cWXJ$3z-0bC3`dgLS3 z$DZ-ZU26NUSKZmOUr$#a|EU!3`|siz4=z1-$nw<%@gEDXK3(hTbT>zQq-I|y*f^7E zp}pAXYrsd)%@=>G52^DSR@KI@Kj-)X+>_|cBz?$_Uuhu1uN)ffGGIlDS2 z5O4KSK54DxtKuKZSEc8#JHTzG_s6ccW7tG~u6^Ilo=e@Xu3YEYSf8B7^vA{r?9p^F z8;hsdaj~~Pf7Nw=&GjEu>ACa#$A#a;cW>7p7QjF2(;GkWWQ}VNcwJ;CJG-{J-fzwF zx|4GExplDfv%WYd-3OhgJgjLpj%MTWjLYtSitKNU>~VAP0X$o%(sQah8>{nYyi>V(n4)S}er70J_d0b)2kJcJOT`P=%-`KDhzoH{@MxeWbx&=kmfhqY~yC=-~T83o1*dB{EgQAl>EQ+zij={_ateQ z9hi<>UuSu?K4GlxkNk%H{caBbX$xJKy259&$BovVmt@aie>YLrWBn};O}Y1k_k({Q z7CIhw?qv9)z42jG2jT_swtMQ8@MfxRnduL9ITsQR+aI1FzL&83)E5loN)<;%XrT-6o zaXbGIr}Ia2c~$TB@Ox4Rzh8CI4l2VBDo!(9h%xR$)!p7z zed`{p*Dq8dBdk!^jpzs%VzvV%=i^#l7CynRg;US?OBmBIl&j$PndAB*rt4og>eOa+pMOXwXkNv`8R7XOZzJ9?zstJy={oW^ zZG(6n{N}2UQh$>^bVM&&`UX+;uqb{+4^9vNyC6Gb{SyzQpDe$See)6JwZYS&pTK#+ zG0_i2e+vAB_PqMLDe3;-HSGS#LkCX%%fRrk^@kMU_ou#W$5#a5A^b+N1KU5lX83mD zb+i8cf5;B${}t}b?<6}^-PVhb($DpMce!Fp>+nY1OZ$I%(hmiAPrz#`?``XJeYLBT z-NN%C9$&wao`>+;Uh9}AuLl0POm>srUtMqBt2j+|Ask`GC!4E-*AAr~9pOU-=kbi} zkLzJq;F+;6>ebl&7_F=14TzUt(>zYi+2IK7Yb^uoHM-+})4Y)1U8s0}f93ypzV=)z zo%sH};=hRh=dnlmBiJAD>F6BKZ+{2xo$4C#Zsk?r6<;j7T_8LMd5URiTvQdxrQdOJ z+K=8PP;aOH&i$-1{x1KJ&5OTG^RrfYUGhj-UTv$b_nkfeKLzx|&^H1946iDBFg7n$ zp||=!&NuvhtXh|UvaVe7FT77O2ws~gUZN;oDgU6xCq5v5tMaJS<@A2~OO&T2udrP6 z^@R3c8yEZ%ZFT*|0{nkxt4{zNlz1oNLd{dBVO?JsT5K8Muc1$4edYhfzZu0hY3q8a z&p7KlH=a?iKJJWX6C8=2OVs`Pr*+@T8~cxxmxD(Xy$tGIXDI(-_c_QF%oTC|Vy#i3dUR&+~X*(R}+K;7ESn8A9&DOak_-Hmv}JL#~slN zv+MVF^grmiz^f6Z^AjJDUx=;*{hjc@Qg^*ic@#TuDQ}kkx4k1D%|36xSGdh{anJU8 zUK7HVs%zYB_Tb6?4YKvFV0=Ws6lbS-&CiR>JL?j-ZuB|mBOvensNxKG#_2ayKY!d* z`AqnI`)OU9zI?y8!onX5J74*)Yj0c7f&22NKfSsjUI*C|_6M)ykO2OadbIjQB79vo zFWoe64TZOagT(%bpYSvAhp21P&v2pMhoYVvx<>Gi!-tAKm0g#0xwjjw>*CLW3#Ly} z>!KTW*6Rz;-SPPXd0F@{v5)ra=HqL}==m-!5C`!7fUj5oO+?Qcf0X?foH=!Hbac>Z zqHcDN@_%+;+v>U#1Nmn9j=k1Ht%G`Q+iU*I-6L9$WDk+L%K>R0=J&Ch?vv(fww8?{=S!1@tNL&o);5caG{}vNxS~h=VTy zT-EyP=AWxhb$70te@V&%@rUsIag_WDo!^7!%IkCOL*CY3pm}3G!2c8fd1U?DOV4+? zc(YDO^XrX;BZLcr=Wm|+?a|LQ`x_9dUp~C|dV39ZCw#K^waaero#yqVdfR$db*%fN*lYeLe?8R3 zvEnp`KF`*A-&l{e&Uvo0h5QPe*Mq`Ixqbea0Ixdhvh+T(ei5Fp_-FiXY5dYqd_Bcy zJY8TN1qTQ&f&LeCEw@hB#quyHwa3AZcm>@h{P5`(kJ5h?^*!47*_V?9T%mY#;%=#) z!TOnw6>+HIQx8vyaEChI(!y85AMifQ{+#k&9{tVq_fj9;W8$e%p9MKjLTpTk(#a zw;~LbpLmwy-#fL>5*NXPW8)r`#lP@DkRL{W8y$|rdY(0V$ET}Y^LU)&S1DetSNxc0 zpTd77juUJ%4ya2clyp8;>!E3&7tx%hW{ zApTH&C(hRMLiYkbr@GWGE-TFHv(0T+omK7{W}N)$^V@X^^fhbW@Jn*`(3ARUR2|rJ zU*g@$aEL1j8MV}6S8~*G$+Be||w0ZqM9trrn^6^P!fd9pg2Tz(L z=wOM@C9?m{{j%=VhbIpWfBVxOx2Sdp-_q)fS30ck7AanU7Yh6={tJ2>n<=hBr&sYl z_$9wkaT)tReHh}Oj4hr$?ud==Y42L5pPj;a>Q4br1pjltb>of%ewE6A{wjR>&GH6X z58*?qaP+B@-=IHcH}f0N5Af*cXupi;!EB^`Q+QtgxYjxL*@tp*$|Q?Z>UIsptCM7} zH)-F$cAr09y!__1Mbn$DFHZfs<8N2r*}=hw2X6Xi%x}`kJa_!8?$whJY=UpUkf-+@)!0V(ziffsK!wTD-OE8+uTE{vwpvU z@?Wt(be%5NJ`c{Eei5x3kv?wK^*s0&8>jF9$y8U9!x0Y6crH8aG5VKzPnNs6vd0;z zzUSwK39<+LRPF1Y_0R5a7umzkng1{Qj+q{j;tKRc*vHTxyixt?)G6$|U4!^3@T2@V z)sdgoI(oi7?f6v%@l$y5+xSE}jHAte^7!TOZc#^ucPTOciizZ9RtrC?KH^ASo4#7B zM|R7245$w!%PkMUI<|xSH^bHTa^mZV@He1WrSoU?WV^4yj=pJhDXCM#^B`VbznA*2 z>BoWp7yc{tIeYr?$4ggHd91iZ>w;akD&v=cw~;&paT#@8J3dKXmVYMx#H@}i+=Q=D zJ*8VJO#ec$R(%AwRNubgmb8KN#** z7mr%s{0*`{_&q*Q-!b~r+sV$*i%ajfu2g3y?o>Tcby9Eh0YC22B0QY*>yiJPAs(LH z)t5}aDgDdx8$Ee-;Xs$rSB>7{X|HX2_i;3%a{iDG$~c zMf`fzb#z}%)P>{j%4^xUS~~fav5)d)x7z+5$Lo4ibbaB5BK;ZagZA)WGQa;-y??yy z!mhKrK)x5gpY-=q{*Aiu6SBu_{Yww%Zt+esz`@rK|H~`#_k|yc*u8iVGhJiq+So7l zL|m_aUFz5oT*Xy-Z?FgO%=9NL)p+R_HeSBfg|{>=><@da)_l-64NuuD+0`$aH~7_f zPtfl;QTuw=KlMzm=@xcY-eN1^h8i_q_2WhCQTz_@)My>4&Ui}f`7{>j2O-ZWUCwxb z@^#>7vA?0RkE+Wb8PNCjGH3l&4Tb3&Tz=x>@_~-{_YT>U`cb_4dA#EHjHiXXyN#!t zQ@rI_|Ac3Y!tr|g@9vX7Dqa%1zq(%TNA)S$`C5fD)kkdK`v>}o;T0jTPrp=oz2$W$ zHp@RB(JcQ=|C60J(;d&ompowW}1hq$Z!S&2`yKlN(%fwx+JdwT!;t~31sB8Uv{nb0IoHxpKf8&F{ZnC6D zNcZn)qXT{?I2!78bCmxe9-WlS-*$6(zQZJt$EM$gxJUa_#ILe>93=m}EJ%+|^U_#A zPp_-?XK;7qDd4L>XOsGv{4;OoZ!A2gx|{02aSQPWr~h7mNa!G(L;Ahy#6aFz`i=e? zzN&EKK6t7Sn{TW@K_(S}Ek-ikIuQuNL)7^gS z#_@GCocMa!*T_Hn|E*gGONM89YVbQE^wXcd`}v1!`#Adc;0>Rsysmh#V}trOZ9QCBFnn~oKp*>y${UwU zKb(3g_4{*Wm*~Hx&#&Ycqo>zTxfK8AC-T^Z-ZB< zTUtNV3_dbf!J~ zF}(QjBsAlXiSh@%{KP0d`e-=Q!45rd*5O9wX~F%1>jXb3KRVN;IY7@_ex1L>o_jn; z&s#Wr|B3u)o_BiRCA=y9nt#atItVAef#Q1Na^iLJo~yKu+5EK+AK3ReMf>^`<#nFd zcjYr8`5|zq;sez>T^06K9DAqg%H&bdnFHrSKBh@HeDW{wDm;%=9Fri{#Zcvr`|X_K`9- zO6v-K193TZb^54@S6|e1#JlLXzT}o0sz!Bk+x+>twygsPKY)CX)-$`0UyATP&lIj2 zeM9)WrN`mnMZHSzA3URH>iX!Jzp8ykyaMq>=@l4WxICQr<%oXA4euYojr~>mT6pY; z=aqNyv&;_tH+sKWw+=%X;8`22^_%{WJG3vcK9Wze>z4)ka+H6G z@W9myPtW?79$(ihz)wj$2kyYmhi?3Y04~>lpXA`(0N1pM{9){r{3rd>_IEYJJGOo# zl|lT#@pjn__rp4&eR+v^0{!=o*7oVRP5037=jTh6;go&mU3UKM8#wA))bBP{d~tJH zC;dNt(r45kL7auo2lX%F0(e-ikl$|O?+`lV>O!5ecn6#;IHmWrUV&o)w`1q2%Jeww zdy=RRg#ISkVUl34@Bz{PvRM1keRn>YSNQ0XRd| zMLl{(<3F0z)c>C4g-gL5^?UyND?jX)#XIDW6z_QIKNGax;dj}6w+{ny_^ZTyqxIq< z)xGhj^7c0jdyL#~Yvl>>=fS5-_bgHeryszs-z~#0*!TLvKi0)rl==gB-@xPRyH`Jf zFW)|XzWRw?u7~aeo~c$E&v}a9UQX@sfx;hYe)gB*!^VS9zz)H!f2?}F>P`{9G>zZq zbuyZYtqso~@6);f{^AkkAH@q8;e8>Wme+&m=DJ)s*Nu~t@j>7HP5JZtOLafQ87-8L(Rsaem*exP{dGgPC^BCBfoEk; z_Iy_toIT%(_PvjjK8W6r3U`j|`b^~$Sr0g`{oNp!$LEd>)YZlF6=jF<^PT3^S8lSp z2o5)|8-(s*Yx(&r3ao#(+Ir~Wk0yK~xb@3G0rQO#+;>;{>$-1?<^1tF+(fYKyaBWVfVpRd0MI!$JKk#y` zqwr7Rr`mNJ3$1hctHF--82_9186H-28Ng!;r*Dvvfe z?4tS*`y=_QIeI@19J$YHAMM{QO#kz9c~^J4;uq;Ep^p>EJ2P+KPQe$zH!Qq{CqMg; zczNb1|Fl_)*{_VB^lkCGbp3p>*fx!)KQ8JydGXVD{G{`9IEM|h_Y41qysgKzHYxs-QJr2g9Eq` z`l#u*{j%$#9^dcQFO>Z<^n~{B4RYz{o`VB(*oHga^xXFnfkmRG*fqs@@!G{m6({0<-`-j&kx=PJU)4Ccue7O-$niuc$mxNhp6w; z@3`c*?cS?X3xhfd$<Z$^XgOL((4oRgX>&{Ixb7={?o; z4D<;IFPZVq!uLtP8~xeBTYLNk`VsBC+XnG;_^-rkcD~|P@g{imS?qZ9*!zbMm0$kg z%Z)oXz1z-p6aEN3+Ier^xp7T(->{?^59{N~JHu z@$lT)?@a~r`0(p}q5E2^{0Mk#@sUON+&+-swT1Ha@ZG{MYUl5n<-6f^u-|LL*WyKj z59Ds$*Gamr<~5G};MS!B_ihnX2k`cNJ*WB%c;bu?*v?<&q{r$PtKI;A?WxKS!7G2d z{1*CN=W8D(zjD9)w9Ax#X59pLapuII>JL1lt9w%Gt@_2|wX(nQ;sw}7`6>Fdsk_#w z{vf}~|1ZTq_sVcG@Hx<@-ck4fo|AOXwBOM8*E7J!2;LHZt63gC>UY`U5cDtfy=S;q z`4#m&dFhk*_vOD2Q(vv>jFJ4Zbbcaw>+nodubi)W2N!ms@Da*;$FU2}?|yclKHf{*8!kH19LGOL!B#j ze^#7?pDI3@c%<^rpUckhujqRw{?NGf{F(~;$=;QhisGO1;;V{{%IhZ2+P(u1?=j>J z58C{(xw}_7`k3Vh#&6W$Pn}sj8xj5+_zu)}sPR-g`Yx!yQn$ws6@D-~UUdxg!Q%9n zZU6mUd1rVCM=!JS57YWV9@L)8>calYM}rHTuXvU^{N>66lFvtf?vJ6XuD#&9_F>NZ zpH1EA`hLOs*j5#Ed<3_M9vpm~W`|wi@A0*)(@Smq_JiGrU#$1(D*5^30pMq*t_l8Vh59Mc2fJVU z8vWM9AG{aT)xZ_$K4U@aBYe=r7w2ewfyadRvElo}@1L>w!=iX};x$?ig`P z$N(pWM~>P4V#9WAE*b?(S~5^`Zw`?$9kP)A|7}kNP2XGxV9h z*1GYE_Sv!EofOA|yK=$-!YhLAnd;kmFIzeBSx4}Jivdz+r;O|sWHH&l06aQScINgw1kw0Jk#^^=g#|FAzc6csnb zGOZWjPYy`+7rrYRKW3M3)Ph?FS2or<`jS^^-T8lPop*dyMf(3QAt1&G0YYd2Lhp!x zsGKnq6|gJ1_R6}h)l`RHGJc>S)Z4UbCla4mj@tkFxaskUue9H)Bdi+!!KSH z``kUu)IOEYRor@qt{rwgu{`AYK*+bKpRa@$IWC7!9O&pbg_m7*pZIX9|M5%lno#z} zj=r0#GCstNx2f=^og?6=Y+Rkf>B22a7a~fR+Sa3CLSWyZ_i%@u`}Opj{$i)?zWv>7-B*2{UV7)+Z{1zr+4Lbnet#a==@FX z-_u*UTJ689_n7(K*Z-R4#G~!ut9ev@tJa}-h5D1pZ`kiUx{KOAM@fhJS;d>+pdXR{ zVc%bjez*2fS4W)gkW8?XD?yw$o@THnuwPqW{5a`0r?=Rw*JmBH)z(UT$1FP?^sC(8bA zX(D@Q>yq*9t(Wm(5;v*-t@Z1Y;d96XD-Z1ruTdV1$9%XuUhxO<@5wp`$+vtU-M8)J zuZSnuw}=lFoJnuh#nIuNr~QI`k?vmB??8Vc`3~8Mc(2|E^u#91pMwun`ylS5Itn;E z@b8=E)~7Uo>3@}ueRj3tZ0Qh1aFpbeiQmB;DPH#6mwt#Vbq>SFID5s0^(*K1ad+*u zeDBTn{=NA8mg}!>zhnDA-;4a3h)$n)_57$**XpONUNuYk3-EpLAEG}9?-V$dhZTSP zsyN{q9PAAwx9O!*p=1p;-}g-{`IR8FJ9_T zepYPOa~I67n9sZrFaDh3(5nOdQJplet>VQ;XZ%U+w`#?|OSInT7o_u0(gPMgk#+Y$ zd4O)h=~B;Zc{g2``HSQaf?u=w92Mv%BcC9?Ku=v#I*=Y-;`HwtOT0FQ%aYx!anh5F z=uG}m_5WT0G-;nA(tnY|ds9!!SyCyu6@2`2_Hh0Nic^W-Ri}#N z5p7-3vuK~`oVVzF)cG5G>A4?XxMg! zd9qmkXMZQYPd~wMg&zF#gYq-rS)uP%IFf81fO|>#Ub=L2)kkl<&(ijb5^#by$_}AZ zv-+I}mK<~a&fdoLzj%l9cbvv49a~>(x)%CA{O3F3e|Y>4=_)4b4~XC7{Fp%wJ3)S6 zsr&)@?IziMBYk+6=Wq z!Cy+h-!#Ro$<2fKA4+vk^qZBZ_sWMy=97Ht^E&V7*Z5I&DI3qy;u-n-`Vl8}xcAo6 z>p~~RCHB2ZiYp2Q`gY;x74Nan<2lG1EQSv%iVxVYQJ!2l96xXGKMY9A?B7=;^a^9Xq*=)ezfnC|ESCA(LvuEoSTQip{G8-t?{xh`dqK) zwfD57e`(imDH1R3tNZSk=F6CmNp3A2n9wix+$)M>a^vV1;K_SLb--{Rp)Y?D0_%~wEOmRikJPhnt%KKNUe9r@RRJ?+|&-fP#mcKpThi#8r~vMU1T6ZY@z^H%P4;F$wm zPWP%XUh}y{P~Oawhu>1?k?J*Cuhj|h|GzX3)CnJyp98H@lN?{J&;1Mdku8%JrMvA+0`55KkKr6(>OeqGv6P1=Z+xKgx#Y8(AG3K7z9uf# zz8kN6A9WG(wI}4x-^|`c#&7dCHuTTULs__0?Yt2-f2QBB zuU4EQei&bP#I8fV!OriVVc&=Dzw(g2eI4}@;@LThx0UbH`_wf|%Hdd-7KM+9)UD{7 zvnT8k=+pYE@*DR1a<_MGUyKa&eRfeDjCkwrdoL*a+g%-l{VZGi{MAIV|Cm?udYzr> zQhHxoiWxtD`c>iJ3N6Xq8s8&|e-~KYGm@8URet2(>T7x4_G58QY9Bw8o#7lF6ySAC zZ__wZ=U`vAWA3>-hsnA9*waye8>jjt^-jCaAa}jSCmtd_*AQL5kK4NK^%|+GjS4ln z`W*8$Ui+`kewOM0ec(w)Z+APbkIi&n^bWK?D%^Xj7gN_=qJ2aiuaEwodZWcL zD~jN{cNsZ)JdW_)k_U!oi}wNkRB#FK zCfaj0C&IDCT>Q~EC@jgvhn=+!OB3PhJUpjXKb#zb@`10b?heipd>^__PwV`p?-CrO zji+1S9ONhK@rIqp{zv^xf8RJN?3D5xtmitaFS;)EAHOe3k1N6xAl|18zY3m-`#!C4 zzpdw>AN?7{Wo6=}weNSg`DmKpT66Q%6CUd*URa;feD&Dbfy3*m{l7r|9P7dQ*!8P} z@Ts1D8u}aIU#5?L3*jSo(0+m^fIK;TsL~J5`WeppN2Q;0R*CoN*H_w~@l(6-gYxL$ znk$6AUAyl=eNqwpDSQ_;?mmw78FdcryL*?gM^;bP+Mng?*{@QCykf0kXhCQLNGoQ!Yz)ZFM{f4<$fGH5?~^cTRh(U%I}WEb^S zp?6|<)xn{|*}YG1=+MtC6JCFw`c0M^o*bQV51+dF?Bh4et4~n>B{*#MCA=wr)Ae{C z;4ww_O}wb|{YU&D@|5WQ!lMG8kUc;7-mU??7W+N%$BH6)J7)hTg}HZ}e%+okH+Q$H ze};Myyu08Jmnk0lQgPX1${X1A3r_jj2<|TZedAD_XXBlCdh{L;2aF;Pi^e};}j05RF@V0K<9ODjT3*dM@VriTdf}q zN42s@AEx5bs64AbC^rw40UkT}6yS}ZKT!QW5k4XKt=NauHPoNtKh?g1|3xPxeXj`9qt(^rs)bE5ds~{|EDko>iVVrJLrZhr2WvFL!jT$3x0{ z%TGoBI+oeI)PJRYWAooqTsP-$4Rh4vc2IqXekl9?7>6E`eXh^+1>lXe-w$(o&mz24 zlf=Wn^5c1*-}Chs#j^6lwp_49DGz_vlXv|2jzNL?KTKH!+N zk6VlM=h3fswfcshGMuz;QeA{TBXp{`K6)nbJZz?Up#RXGZ>w-`u3v9EC%)3SmFg+< zx3dr6SAk#FuG7bj%K4qG3A#n_$BUQOt3TT7eT(vgWBCDhth2+jpA;_@Usm(z6?3-P zxTGH>zJ{xGK2m?)d-8%0FWA4#&Dvtaw=Vii$M8{l&itIHU%;QLIwSQj@g_w0!g+60 zN3eM>`Ne#uPno|&m$4@uc5=s1t#!Cdc_;MNs5`;aEuMJ%YoFJvs>$-4%)k1+eZK#hmt z$ba|n32=Y={^V@`+2^gC`Y$8(b@)%kqwVR(#IBWfdi}iX&Mga^f9+Dc*xUW8eC&NX z&#;g1bjz;#d>=9A!(g2g-Q1+jAE?}ALI;N*p!v^ureN6`?o$m?aSnWo(I1$tNjpn!PSH36*jJNdzx-vGC}p{Jl|)* zf%~G5#>TT+c&P4yeh>ToisV$`zD6pqB>yZ6#S<09yQTMr{=b2N z>yl>>?=f+QmyTejlPUflkKVa--s5gM&*=9NAAUq91N}k#2XJ5FQJgPc9#8*>@o*1C z@6?kQIaB#c^5=>R<5-=K>QmFY_YL5d;2nV1SG<`XzBTc(MfNd#`9p*wk^XI_%YBr_ z!MLb1(TB2JamCf@n}fe9UDuM1EBrW5%U*zo1P?muz50DNexoWdAM}&JJFPmGXTRPz z_3WR&ZdV&N`Dg3IBfe?prfVN!FVJn4E(`k79{W$Bc|1SbUU z7Q7Sqm%Q%sM5pU!{M6vDPFDU;`N#OQc-g@>kO%pz&R^ny7UMUI;x~&Uv`+9w+WS-O zo>6=NjuRcTYURV=yQ2QiXL!qQO7(vGWcaIVHD2{efhUVyW$&I8|HeE%%Rbq#jI>&fY7! zRy%k=;ZLL={2uWi@IH!nPw#J6m+wES%ks3uC0EF=0tX6?>R7#>KL`gkR`&AXeBYrz zLf;b(Fscq)>c2ej!*h4q+&`@M)7GO?z)!`m#s0y^hJB>3w5#$Z($k65qsaS_XQtlu zsCeMvQ3g--mF$Uh?ftGj<{jSY=AVoAU-bS)=WJFUc2HeS_9iaZx_+p?Baa~-H=P6I z>uUn%ukt)mx{q-q@gcK5^smu33V%QNH*k={G~cqjcE85Hj`vFA(Ky;=ItK8-z-s_5 zkGSUzy-#lq{m0!ejp^a&9}3zB@TcpX&G3j0zXfBH1V|iZ$1B>*FR1Ae01up z17B_*ewy>=H%}SX)ori1@e}!T;P0iMqVabPwm$~BZFCNbAIp>Xxg-}?!;3T6t3{#im$_C|L99RxotezbhP}p8G(8$c_;EO@{{7CE@#&*`fj*O ze~uj<$g{#fru=`DKNM|z^jDO-4myv)zmxBP?*e`tcmc>WSLX7I%?WwjwfR+CTb`wc zgY;bcySdu;((S+>jjFS0ob)3V&^7kNb@2KvDeH0Ws&OllzjYW@@ymYA$#th6zu8$! z*LUD;gpcvy?#MU7--IqOdDC-seu)=8;s?Ti1#bShVdt#-=Y`9PXDm2v#`b6bTCDB5 z@Ya1_|E&oBMx*#Q)UT!e*C~ikBZ3crXWZ7MI>U>npBu)zT~)UQ_pr6uyI6OL<)4*@ z&H4iDI?W0EPUxZbR(_Q{75gUhXF-Cr{PjoZY(LBB^K*nO#A9oYQq{67w<2@_gQ z{doK?gTrsa8IZp~H=BHr-LJJMeie`Y=?7;2G*3U8pIyQsi?=#HsCA)Voj!fWk4`A{ zjMd5yi*LmCQ^TJ_2l2JT!=e6Q?YDKcKi8;US(Wj?Xq+A%?T6$Kkk@`N-G57yBhI|& zxzl;3ZJ zw@*|3?O@@q?fZoS@5z()eEwqjWALt`FZSq)2maG_>c`2is^{D%y9f`=-r5iJCy`&I zzK5dapLO63h=j6UBPf)nx8s% zu;$?h^P~K4S}%0rh5PdGlm91;H-={Yo96Eg2=JkCZoFsn7U8#Lec=zc`RD{bUE@I? zuMqZE+_b;N0e*N6$59v5$D8HJXDl>(TOnM~Nb$easb6M2AQw^r664te&0T~|KMq_a*Z12b-J(h2TKp2q$_ZAuKqi~ZIYXZA@1Uw zAKc#^EdGsyHUEj`bB5LB=T~Z;Z9Zz<@pgT! z4_=y}Z+5%#3--J#65*b8-K7cnv!j$3g#U^>(C5NS!DD9EsR`qA>wwN-&mi6t5B|u$ zKSusaP54##=Vd9+e?>66Smvb5q`W0~=}uuUJ?G9h9ev#Xr?d;;i`Kp8*Xdt9^{<5f zDRhs;I=I|AFb`dw z@;dQegW2) z@lMR~PZreoRN~#B-+KeQPNeTHcdi$fnjc)M?{ThU*THqKo8qOqy8(umN{YrOTvWUg zWiP!w=kV~T&PDJq_MDRg{ru?kajtRhQrCW6=dbX=agFhCCe3f``SKAP^*}!=f{H4e9&l^YddZnfP zsLJfV!rj>X6ncctIeWgf_F+|k|B$?={Hv(Co5oq{S55!x=$7mJK2_&A`5NgP>HB>( z4>dvgHeauO1>YCERrCe4${(o9^~ZDy?ezIZ<;CdJ=`G$K8`q$4l|r0SDDM5{l_P#wx0fp#?lkFT z{Yo*1e=hZb^ivO=b)bcoAO`XbMsdf zw$r+_=)7{uW_?oRZQ%714@l(w+GO)8sEa%(`$t@YT`oW8izNr|@^S+HafNs_8vAv-am87;7nhyz#JTk?L*2^U z`8!?Xni{He_7Oj_xhQ>mt^Xi*wDJbPiv*!<&9Om*F4AJJch4*zWY zP$#6H9^D-J@8F$52U&Fj4^J03Ve-5Sg-@Z5K1}=#(lPWlj#1!V;Xl>96bid3&msL= zuX8Zty?;aXC-4fd=zZ@f`)AkRz>)7!{zuoZ2s@|ywxvk_$Z*9o7fP25ooVm~;wAOU zlX&6JGaWGU9aDrWmOi9CXUU&P$5X=n!GGE$dtu}3;l3r`BRxgK8JGCYG!O8~(vM8N z>Ythi^u)-osy?abt1g+F8h6zyF=qZKP;skS++yiS$P`q9(r_W z$cLkwNj~Tr&F6{w3EqP7eFyT| z8GgW?vs-{458eXm(bS#DU;g7&%LBu=+Be51UgO|D*j)LLvvm%p_bKsEZ>fBa__eey z-JSMfvX1e%h269-h0~47>qhz*O!s|Qs6O)chi*Qs%>AS~8h8=miamVjtSk9vd+yHe z`<(w*ExXt`TlaM>ZyXJmJT)l)?e9=NT)2Qp9@?&3o8h0~3zzP<7d{rh)831M;+)2D zfqq5dv^77A6ZGuXQy%-E9j9D-cIVCAmtD46GWg0`XLyWt9lCVlz4qON<6>WGexh*H z@Z(3}w>6&rna(Qv>K5y_s>jZQkA715aOx%CH}M~P$*-cmOkEayq|MhLr}^_W%CnLm zrVd5D@O||kp(CpP{-}Cdd_nIAx(9asN?X^4iB9LNo>TflrFmap@pnw~H$N5Wqx-A+ zJjbYx2OjV~%iBllX4LaXsjh}z4f|KP;%q%_Tz%K#gM^o%F3VF|ygJdHmhw1H5BI2E zNSqG;+M~k%f|q;U=D|->bK)J;`rrrmfKL)WXYHGI?i1_N5bxyjWT%%$kNF5 zcPdX|_xp0K{yO+jx@(??yL`V}YZ3ln@&@pF+4Tkm;fFPzYNtNJc$@N5AN4uM{k&su z`uy}<)PINQz5{q}U8nb2eQV(G%UnC1zx02Q=dwKa2-^?O4soen+HuD~egwT%aGB^t z7IZ!O`o7gVaedb71LaqAy{NvsX#22~fB4Jm_tzfRQcQX0`t@?~1CeKgw>O_(BYy_J zT*X@X=kCm#=0!RYrOCfb^DCa$cw>q`T1WF)8~Ww)S%U)ovJWd?3Xf$z@88RH&gK6q zo${srOyzSA5)Ov`W!ncWiREFI7w28R#rq#U+ub!O4@15d9F%>3-C#dEJK}NrZ+Z{59>ao!p&{#AEmyd zX}SDgl{;Df19i);%KIKCJqYx}jCXLN@v#n?6b385jDN2Dc|GR_{fz~!3pjh}?Rt1P z;V+f{9ShO?A8;&Y2P=d5g(IB!ZenK}XIyIjQaya0Hvd)O62-sh8&Jove;*V!%rL96VHAB!y@$r`(C;BWli`}aS*&4$`9#!E7r14%KsHgdR6k* z;7uhyf6r$sm5wsQyds$E8K(P4$^POviAM#z}q?J_G!} z`*r@N`|wsDdT9Tp`(neXfxIT?SEJ%lcnuZj#|sqqgL8v#5dA%V&wbU87R?_V=)M*| zODc;#dop~ap6kQIrg#Gccu8+zRTnPJpA=}9!~NieVq75d?KEzm3kl0YY{FwqFW9A2z!QK?!~tUuYbEA z4jORX+55)lo*wwin1A+i!XHHV;HWn$?g1Z}@djT0&Lg)U_eBqI{~kQ{Hg+HMmwmnR zdF0DK6CNJiBJr>A-VyuyzTOA;6zDI+e|>N3BcH!^l>D`(K|%dkUVeF$UvB%XX(arH z9=x-?2c5%A<&tZk+q~xSRmlx$obX*@dB2|S0{MTO zzvLCA3*vP?MtE_yYik!vIzhN**yH2=jwUTUjUDNgZeUzv0z_7i?u zx*q=L+LH!vzkGEOeOTe0z3}1iaC+(G#Qu*R;J^NNmms~9I74`I=`Z`i`b__Yo(rB( zpVt8y=Fp`8he;lrIt+0X^Dn%U|94wlcd5VYK;?;Q)ej^7&-w4zddU9u&G7d&fAs6N z6lGT;{Y1jI`a@Mu93nrXxyMd-mMZfgNZ+>56&oEv4>J7br19!fzx#wsFFP!&3@Q5d8=AYQWRZmwm_nZL0m(Ap5wXcu-%} zdSV~Jzrd$fW%r-I77pBxR~|su_gl#x?xcPAs_KO3JEI2zE}i&Syb=)}m|JBJ=`&Fu zkJocX@^9j$j_9(a^V--ov(xG4rooQB`OUT7_-WLI(f^g+s)vu7`+@hPpXf-f({-{J z@9H_VZhp4TVfvxoS$9GEhqfCSR{W#+A6rfA<95F2w_|SVS8(_@r>Xvft~NL#+b6{7 ztBcCBd*vhjmD0adUyu18jeYaaU&?FH_rrOytLaXH_l%~K(>Xk(d52#L{ugj^;wy~Q zKRD08iPA?w{7YN~uU8r;b!z7hlD(iGU|a1Q^y7ar{_rRr`DlHYeX?^+{6^q3{CD#E z577ResQtZMJmfZyi<4<>&!3WCzEJf#@_lc~?*i{m-d+Aiyjt(`H}ZGTGgDuLe?#Yw zcts-ke)549N7V)JVbW>xI!FEOI%ha{sDq(@Y0ps=<|+S2p9$B2*X?q}?}rFi#<_g` z-(Kwb=8az@OCNpk{@dp*D{k}Fgq@GSsNk^o)U~Di>UmGl*Ff(p-ybwAaIVnDbBWGh zeU9`;rsFU1KmSSV&p8fn27UJ6JzCx~KZN|&j<$Ywo|O3Gw$*yl|H*aeH&b557pz_| zpZGxh({aufKmPrbbD9$P%Gao$>sRqw*JwZOrSX1}_Mi83Ppkg}9UAFY)QhjechKMc zY}bh+We@W_6GQ$7fNu8Wm_#!q`Zcm7s8bQLRf{;pPkv_5D3Cy(no z;@OVk1CGKS`O{_Buzxqn9)QoIpF{mb5q>4h39_@cUzZ7IQym(#e)IfE7u_)b z+obxF#IsdeEW^7nh_y~IAs-gxord+e<2O;o>@M>n7@ch0_(ysr7; zywm>6{1W;viFdGT)Y-+;@5xhQ|HP~6rBi11w}eBY{(%lNI4<%pPikIA>-?opk`?`UyXX`S=<@+Pco%+H& zdF4#6CH;e5LAvIVpW;#1b9V{y10(kDD~(V6U;Z}nRltA1K6*|5lXz4j_;2v~=&N5X zT=;3~-=^M!{w41i5M;%;sVh?|k&CiUmQHlros`!C;YL_1U z;QD0ArCE>qpxzCSb2*GK%8{=RWSpdNyMYu_&f;rAmre)_+p!|UnG+1%>#{zL7n z$8}y3cR!}O5xg3gs4tIm-|p9(P+!LnJWug5{bTeS!S_Yo=k7yS9r5AzzZYli*KPZY zUU@x%---Tqm z%Ty)u=YG) z=iyr<{)IQ+c+1)a`?-El9X#tV>7;tG-DhTa!RiBv;e}Tw|4#cRUQg)vs!+Y#zJI9O zTJvzf=0SJ>pPz@;M7(F7`Z9HA)_tz}ocgLCjlP^bZ&;0k#}1x1cvR?nMQ27h2(R%) z{C)Za;p?Cdd%NzB4mbU((y{c<$sXg^!w-tylk(?LI_$AgI6#{x>Uf2KKK&n_JZUIJ%%4%HOi_%&`1J z;m~k{_(EQj9sDiD@%}8{?(bD6n#uRwc=6p_Av*+b7yH4kUl-63rf(mxWL6ddcPpBcYcAFU7j+rHnL(8nM=eH7oO z7Z0bW51smlcpANQkRs=}@Wv5c0mFj~bYJCgPMN->)%hFi=ufh9wuH-CqVwP*oe#{r zcsV0}2RJL?Yv6PA@;5ww0Cl6A=IqvSnn5%*_(6{?f!Jo3hSUFG)O>%`x7+jrd{ z+!6iF9{jfPb5w(Sk2)VUpH(5RBO?1#>QfND$e*oq2R@$lbN%Q29r-8u8?jR7IPW#* z?;$#W7nMIWVe6MaPja}#0(HJZp}qR(^7yNM4!^&!z~XN7d~Myp_jU@c>Sv~JhCU|n zc&oJUtbgI>;uQIXoWEVxI)9}xTX_F+14Db;#BC**`5s@rCOB1b0#wItzaV{)Idw z^FUlLzQZ_O`RC7-|NC6H=Vryfy{vDixTE-w9~W-K=3$2X>Eql5ZTTq*hwAsU!U*v@ zz^f@fFTaKSMR+yoZ&zH3-j=7H0ba}QTj%fxv41xzu6_Kay16v&bI+;!HSVhQb58xsdhWXLeQq4|&utNiV>O;={$qXU=)SL* zx6dTE@}FIQ+WPKIgW;flOnNDwx4V9}w|Vn>XddB3l0F%6a@2h^4>KJ7@!a3$Z-#sD z!Y&{0_vo_Zid1*#6Ziv*D>V;Xzg+93`O%{ zKhv!%=(*DCH60#0x1H~XL>Lm81h0C+V~JLp7eQ!d~*5133!S>%|?Z+h3C)!f; zK>c@`J`dKo(81hTzh}OMuhzI`IC$8(uZ?tu`zVcHo=VD2?KAquhrTSXOwaW%6X}n7 z=7H<$34`KmulbEL+s@~#Mt5r4&xNhr`q~eyht@MPe%AMR`#X*Mj3B!W{vyk>qXU|b zr|}OVzu$MT{oZs~#=jx|BWk}#@}#5nKAR5p@X%3q&gwYZ1@s4x()Zwhvw6V&Z4wGO z`zXDI0{>p;9!Yh^y9d+p>KHa``+k<}^d@cJyVCPuS0?MeiT%{P)CcJfcz9s6F8YCe z7@_xmy7pt0!#>)+8yoDoH*y>4{^>p(vZ0d>Oib+zQ0M9nEqPw;bCV^uDPrbIDh)+`qCfPJdAz8=SgtNf^^U_m^s?$W_8{*rlN1m6jKYHAjL zbs(SI--$;j(*L2pvWV_!`u(PH0o)Yhklt)m9o#S0IF@Q$7YPq`pVd9!vB-FyiMRGN zzimGKhnr{~msIcEaQu=<4*p4SUyPT&HT8o=_2b14RhPHtT%5qaqR&O*QtH?AuSriL z)+!F8{=2jG8T@*@|9sw8|E_)M!F>_GQD;&-;$KmmeXr{H;z^JByid1a{PaWI1F2uo z)y+r&m=6^b@w?(@+HkB)qTxxj?z<}KTLIis5+-zw|!Q( zzgqQWa9`j9%9IbAqx$cQ+6UTidM`&gcwlFX2N4}8a4(~j*Emx=7}SGD%HOY6eY1z| z$Nr;E4Q@AwQ)(I>m>1%N!pl}~{hM(4=q=L+t@2cUk9u7J&dsh?SO3;ayZeSMBj`;T+8);^<8p!sh} zRKJJM$=_%9&G=a10liG)p&oOV^`R%1NDuSU^k=*9jKwYRsC#`sf_I|+y51p2Jl5xc zZxeX_j;9VPz7=>4#VZndzu|ABzG(B&RGip+%pOmF*w;-wW0O1kU%0YJKQ6j1Yn1Q) zLUsrpIdEU6YX1qR6NTIHR|(g%MD;-OAR}b2iO17%H1>82^qzbrdjqeLlih{)*T!7| z{?Joz1-}ZP3U#^J>i>Z!LiOMHnes32{KC5ePc*#rvVU1$&ndzs**I#@!PCAVKhz%{ zPLCbBPw}bhb$(yPzp5`s=`Y9L+JDrY*?;(NvUBKA$Gc?zY&><2{IlxI@8TgZ6~bkyj(JU(ndUtQIMtWoi}pQbzw49_(EI6s63&nOIQ_p){cn42eEpwY(0$B15s?Zc{Y|4WB1 zn6YaWyo-J-%MV5IW`le2_Wa!f`bX-s_2g^q-`neXn}o|55stUKv8V5Yan3QGuKDyu zlQ*^N3=i-pPglN5`T4lHt#@1@yPJN$X^7po5&ng8NB$Z8D(c=km*>+b*FWWR{!DeC1jH7kxL>0qo!VIN66tpZ6@`x9JB)-^so|G}D8* zLim#&x-U9Q_Pq(NQh5ON)kob|?_EiUI@eFW6W@>Y;a{nJE`70VKXjCigm|xtouubR zz4}I-T8EDfG$JGpb!t=NWYo&KLWBp^(=8NZf#3wS~B?#Ay`=Td%~Swn(- z9ueUCS*&rwTXlif=Q-8KHq-fK;~9|Y#oFi2fj(FK4tU(Ki})S({njG*E9!4LA3gh+ z`WyXO>EG4Oc6+ovZ%g^;F8F0_>%WB|?w=aB>}%Be+Ws%)y>j`My5sSGh?o7%djGY) zkvN7vyBEZ#IzQdFKNX)$>p{O3={F$m6Q6$+kE)+~#T%2lJ>1WUXD_1D(n0oLJm@yg zhM}&>bPbF*s$pcv>nM#5@D8DObgAt20=UpLVs=eKnsWL#6Z=(se4?U)~Gw#`oBGy!uY#x$|xwyW-5{Mfm@SGtiTorE#95 zeF*=C_+TRAwf$7W6WRFvqlyE$&K>$J{@+MktmlgG_JF^-SanzUg4Nd+=~w)%*!#|p z4?NhOyY4*qvpzqs`MzHBPy7L%Mt((hzlyf`zQ(gcxjuvMSG?@uu|_9L*N^jczw;GG zzal-%4u;pr^arVT63 zUJ`Id=tNwj_(^$_XxC|3tADvRfS17^0iR~yAA?S${=Uv(|L7A%Cr3I;-Yaf+N_ZXk zzKCO9czuwvZS7&>42KRTbz<^*UiQ1FaZCT$_VJwALHpR|v+3Y~ zKG$^38~Gx;?~s7LL1+1&=wBYU^+B(%cY144`JLiW<<-Es!F!_mbi}@5=er5tXZJy; ztK7k#1AiBF^eUTo?E`SFo!vRguMnqm{$8xU_XBTh|K-aSUBZM#?Uo;OZa4Ro`eim# zyo~<O{a4OS z@^JLo*?oq)q;379AUr@}_n>$-7KKBg-)+*z_Y|(WqGPzBcGiZ^O<$fon&zQDDe``k zuR;Ip{#>1Ii(vQNl6XAMmEVNl1&#~5E?qRgN_j5(d*MV%{OsUE(J#jDu2Elxgl#E(mpPG{{fywB6E#Y|sT=Q#ej-EWIP zJP!VmxWxYbf4ExW`s%gfdU)^lR9%IBEAl->`AOnKH2YlmACCmQsdp)liXPZJ{hf`Y zqdVSsaQw0QDPDOGzczi)X8)=(JqU3B@O9AFLSOpSe4Lo+Hee^nccJG4|Hcs2VYpt| zbI1PQ#QQsica?uJd)UXpm)ui*+8gWd?74=ApgxuF^wWOdlIdv3K5E|VUkj!Adr$W< z|D?jf2SEQXas7T;mznxGP4PJRNX6s2{@{$iPjRY#ze`ZOoYjAABo%=^Jn}g0Q-AII z;*b7ID_H0-*Ii!)TOvdrP@Ib+%b%NH%@CEGx^&$EY;2njR-0D01!?yanG3uAA5?*qQ_)?@>7W4gV z;QT8c{dt?JFHz4M!BNw9g6`y{n%{FZ-_(ulxkm*0<%elJ>hJg0Xuh!*;w^!PGUF}5 z4j(9cs(yYyQ1!Zc;dOph|K4*ay;Lz}K-chWw|(~-&{Q3ENqL}K6YTTO%D>w9ssnrq z#FzH_=Hef9KkiSwyrJ$V9W}p3xIXF)(xuFF#ON=k?-;)Ijpa8kR{TppH2PaMj;`*H zww{@8A=eR4eC#j#(P%jB`Q$rxZoB_VeR0&0Zf3iMD{JFw>J5ReQf4Hmmli^$X zI^rYh;kr(|Mb|x6<2^V9yeufHUz6+m!c%tc(_cq_x9a1uQTu79T>W=M*h9}l9`^pX z>^e(Tj~9Xq49D?py8-)jkkEb`(!Vly0M^ zZx_9e1+r^4kAvN~+PxY@Mpk(r9R>){yzFzJiM;2%6iRuZf$pMkC6WC z(KWy$j{VcQt9fln#1j%_554L@{&D5!;Fl8aCfabeHvZun^FV1)}v|lKDC7gYP@71o;npEZT4dqVpaQs^H z&->5$2R`LO?E~eLsGG*i^n3b`m z>u27X)U$&-YKsluy67(*op6msbjXQ6$SV;i!JloPrXL=pL{5~0_4N_Oup8x+rza}{`o7#F*oTtld=L2>`N3IBMj>gi|ey5$(dpz}BV_l6DJhQjG_eyI-T zo0Jb$oa>eMqrW}&Q5;QOXZ^PM=UHclRkr?-{PWeC|3|eR&Ma1TC;_ygW(o3G*S8s+os z^VlFe925Dc(tq^i^WcRfA8vnF7L>oW_p`*if0yhz`rOnr{v*6kA)jB2l_%YI#5LtD zMfDwdvy0UZT#4$8SzgWXYolCGy-)UeSO72cH~EX`LXTDcmb@IgkT(7y)Z=vi6@qX{ z{t=B+exRp*N?tIZPX=#PsrSDIoUH#{_K>{#pVL0Eb)9%7B6&gecSg=%@_N{B_!a1T zPsiVINI1H!J#3n3dA?F#BmNq71o*4T2j3_AzUG5JG*2jN=k}Sr;KK{{FLR?-?Xqy* zdO$uBZK-p6!2btk&Awt3B_!<}$x#4}#_G*3PXJ_z9@BK?21KIMV@ zy?tJq(0{gz{6=_J#iQegD!#PuR|WF3`0GcDPmVYf-O`6;$8_FD^2)ENUJP&7c@yXE zdFck719k&Gc>2l0Bsb{AStZ>g!-XX9PXmul z9{_zQ=-#St+)q#(q`tuU3*@J7sQiKOmk~Qb9%P37orlj<*Y&1*_E|FR{X_n9@J&5} z_)H^s7V+Zfz3vkfPkZ)bzF(s}sO}#X&u6;llZAH#Z<*ICZ%UMhh~H^`;iny^`4tXA z>)V{5y9)0C{DAO3Q}=+^e4z4q`1!ABKU$x|pg^DZ?q;{M_o~6_n#tUSi)KC0b%5J( z{C{sD>V5D{JR(2hEagMsRkZPRbo7Hqd~Uy=uk-9-J=ghXj{I`dKYcP^`O`?;VApRgj#1zFLutI&E=)*2|B^hc z`qQiWY2P2>4wW4`TXu@R1bFt~QQl8_q2OllPsl%AAwPhB|4cZJi*;S`je7Js=~qDi z5HP`|}Y<;loHiPv^M zd9RbT{x)xg!sg0jZKHh1Yd^pH?2TV;7-SD4`8E4~w;)|8*~dYS=M(Ns@40jI<)MeO zrSke`2!E+Q9dJMNseADo==#mcthwI!%j~ad}=`O{mWIs3$ep3CR?!d3Fzoq}b zii58^{pGKZsc_`w@sFsV7!JLQ+ce#0>x5fVJGii@xXP=~JL2C`kGFa03BC_~N6kYa z2sh}r)B6H{ig24z`8>Px~C`sZ@>mQGH(S)P6*?fXoR9ldk#kLYQuU&KpaB@zz^ z=Mxj*@WA1)Zg&02fpw*hM4y}V#3J<>@pfgO=V{%}OD_0$@Kf!B_|>w$l`C!NjW$CVBqsi^>7@gGP($m*ouCyUem-E}h^Ecn!HT;0fL z#=LzR8PKJ)?-krE;WfZJpdZm7{TAx~#Ix}B!JB8-X)Ycud<3|7a0JR@Mfx7_!f$KY5v@5lpO-8TL&Y^nHh_pnI&p14(f zEk2hgBi=0Z3Y%#E->UfFN!cZIt;g4lJ^1_Y2f3MJ_I~Aq{b~Yznbe8tuf`5emR%Gc zGQ-Q;^Y_j6AM1|Yf>*h7TGyXn+C*ZWdVEu- z`CMweW2NW9KZEZadv!&Qm#%NneoTH84o$qXp8Pm=LFbhR*DQREhkpp(toiCkg4Yec z)*P=&L48ss9)wwnldy}_O{FvMUz~Zy7U$3Wt~lq{@^4>Q^<)u$O!|(I{FXfj=dAS4 z3#B@P_5=A4;s*KzjBlk7^8A}49k?y(8~A_Z<>&)Q@7pxfeI*_$px)N@yx|^AAZ;)G|6A2UzvOk?+NRn{IlNwmLhz5 z@QdPy;J4vF^jTP0+2xp);;nn`?@k)j-Tipp9#8* zj{G6Kc2Rj}`+lGBi~Php>}R}kEkAf?;xPMzz`B5I#Q%d2koWEa)%)(z`%GWGU1qz$ z`L_<(*BH}uz$US_yhgPI)BG1k467*;c<(X87KA{-Z=1Y^7FJWM?3rm>Z3M~rE~J2 zuD5SEKIeiFUfr`*Lj`Zw_#=$XZ~LH-06Exx;TnQ z+f%16G}(Roe7n=qst5ZzbhS3NxcC;( zU5Mhb%lJFRZ?EU3&!EEP^7Msn4!p4ZJdd6Ub^8;PZQWJWmyc-LPC#HCL&beQ#@2#m{ z_=EBv=y8xY-Fkvqo zRGqV0hpGTiq3xp*o=)$>c-1SU9~PDW%Jgr(Ql9b%)h&o??7bNdZYshL3Z4UAZ~E}G zUp1bN4t@ams>p|j0DKF$D|Bb>RDDo|peyLSEBKwi{7!@ty0Fy`KEY)}nM4Jb1~sg@3BsXj=7*e#?sNzftP< z7hcoD=dii<<5aU3c|292!U;d;;i-N=b_l+ltHt+oi|ml}3Zn2i(Tk5&{MQ~G9`LQy zpB~kFzLoTk;7J1Sh97D3IV6C$RewP=UG=IU{Sm)!TmP?Vkn1e_2i{HmbN)ihYeaOh zl)v>i>vPNa z6FxKlEH>JG>*c@u_vE)Vyl>-?9rgRE{&A%EX_WVYw;(EBj(aJui%v;8&y9uf{mIL2 zI_%5Oir=KT=Psc<#o>3#^jNl*9ZbJpH`c*N@n@Si|EcoN>T~mJ<;~ z%=mgY_m0!A+jHgy0s9E5=K7uWoSFX{;6JeOv=oUC;47l;C;Uu&QgMKN zzo(lboqPN-`V8n(yeP+K0>4A0%injjlfG^IEjLc$<(4Ajffon;Q0u>{2|uPhaD80I zw7%Uv9It&0&lhz<^zVd!j8n9a(f>i$Wsc5Y`o8)7OR8&EiMP-6pC^S>kNLpqPWq0K zb)TT?=lW|)`i3@tRSrE-`&^UdpU=6LH$v2rSjoX`;T>gQg+bx-DvlY_T#qupLy6{Zy(|C7so0#&I2hBFTiV{uRUOC1#s6EBCu>bq=h6C=yBUf< z;76pcYWr|Ru>Cj2O*Nj^2;XzF;sd^KcdBw9*>id6rNlRK?@>$fAjO+ARd+wqe%7PI z_G<3?J=`hEKfkYWPE-F2euCz|sQL8LA@@<^uz#-!=%v`_mgEWD=LC)CMqT$8`N87t zi^gO9b+UcRYuz`DNpVxFk_OHHaQ#fL+b|?Zk1NXGxAkl6=Vt2qkLo8l%>sIlx-b0@ zW(TJjAMcb+!j|IM9V7pAnC^S;I?v79vK9WP)&zYdd(J*i{cu`u_TNC+%caSSnulXG z&);c$hiiSnX+D&j&vJ(zPI{ll{tmp1a4R0a0eqs3XJwIiO8x8TANzL||EgY`>8GGq z^P24CO!=qM9ggsZN}n~;_d}2QD8;wnPQl|4AEIBNe0auZ1`iH6CHj^|YTnVIq#p;J zB74r7jMq)}N$>Guy@!hvbP&itqkE>jwZ7k)2>%(?kK%Th{=t^EL6Ju8_SI?;Y{ zI+0^?`22OUc=;&R`&;F&gX0n}DYzbgx#|w+kn;8~uXXfS3eQ2Gf%-cm zI&$>k+5Go#=njL=S*3A(uYE>+Q+j9c*G1yrH}$<^^>@!}|DpS)JbwMp>KlWXPkPmQ z-^%gRwVu_EJP!4=F^2on_Xh=dET|)JE-aV51xH7|2Aw|XMf!*HeIK4Yf&7+;{^f;w zFTm5@t9`)!0RKmwfWBMwbHUYAw%vz~#Kr5O3mixOG~l(#W7Z9a#GZR@dsL4wV_E%A z)sNN&aAoM{{!RBEt3E&BF}>k12RrGD#yZ6*==A0CB!y0Hq2h1yA@GpezW6o~Zpg0cP0Jt0a73hN{&OTUialOVtJ#5yC7DuC7N?i)RnJwji z<#>i0dItPH;q&y~4RNQAnb+aVx4XOD)X(|j@n4PWbys;n_Z2?ckA)w5S?@i%Q}@{X z*UwZQLp;@4-=1`XJo;a@zGDJ;6Y65NZ)zR&PwKCxcTf|kL-y2sH>ywZX4yYL~7^&xCheinRa{km|e{Vj&Dx6e&cZ&h7wL$pQsP{GY(75vb zDHZbXYr=gRr#t8!M4tP%ftZ?{3NZwY>r8YkVcI6?P^KMVfsdvo`# z3fJj#LymW*lg3$QKTCbBHqLPYKFxnkIlBK=r~D>7_kWVXX?=Q)ov#fWh4lN46P@D! z$WOZt=X-4cUueJY=We(0WPIP?dWJHe=@)z0^$T4ceQYyQy^j82|1fyb_`8Q_KlTdOMEy(@p5%-ac>TUI(5zFx&t3J#fk_MTQ-ABoc^$xg#tZr|?|P7v<~@$X#ufAsZG7d-l@d#B%aWWoKQydL#f@DswL zN9CJ5d2F4J8Q-Y%-n{hZV?nxPJ%qc5AF=S5oohdy@Wi?GEnUO|xGwmgI6&VYsrpC5 z8+K0FbJYa#iA3?d#y#a{*}pF?f;YC$RoVX2XK;Idvh0@m1O1$M73C*l7rTXS@*g)= zeWB5K*6079-BI?|z?|CsFHZ>nFBC(Y~6RtEBzH^@F>Z{SC-mwkC#{;A&UsP{?F-%>nS@xAh| zQT@sON9ETIzc$+4eeVTjf4i$997t-^%pX}pc``I+fU8((N_Y=;t#8-u10>85Tdv&;2^8jz+ z2dcL+|JW(br$0{lZu@)uhUR3ge7gAsr8+zFVBg0cHiSyEhnxp~fz}JZ`ChFreNyCE zbxvp#BtZ(r~%5&sDugB7Y@+4y^faq5 zZxd%f#b?(z1inzs*WzSU?(hGnM=M+rg^{h?7od- zbpN3tXa7q0A{$rhTKl9|$oq*^8LpdoT&#JpzwheAI~4PNt@1pDfkFE)+V}CRE5lg% zZT9=|!G7|8@_((xJN5j`13JaaH4glK`^(m3>$Y~jwBO;&e@XL(A5Og+KM~#8hu>QA z(i4{s4C3L7S8lu4Gk?5lc@f-wC!GU@f1ACv`@SQ)U*?4WiTZv74^Viv?f1*WL9+M6 zmHGFmrFf>!JMsSe^<}^7{*hj1KI?g_&KdS&yPU2RaRYHob1~0*T<+xGXnjh&)Vi-d zSLZNOe!(G%f5Fu%?--k2vhi47>8j-Alu!55;uGT0<@~#)tsQKv3uCqK8Nc1HGCS|> z^Pr%-wx6AWW_72PQI)M7#Ci>Z2oS}K( z`toBkJV%xB0@h3Sm;D|t(Roc@VzwVFFEO9KUix;>SxwLH&wGSz?s@Qo@h`6*j?p|~$)_saJRN2cc*l=U~*{0sNg zI5hOg@o>O**;(_rqG889u=HG5t4dU!X)^P2TNqyGu76FfrT($OWc@u-f} zv{7iy;jnwzI2tx|H|f1O!+3X#bEOYIWcR(!Tin>*X&yX0J;$o9Bb=DG`!pxyd+7Tl zU(0;j_jvx*Nxtt#enR6Q2OqTI!qyL?|MPIXXmkU*gOUA1KJo#b$Mna5w*tq7PQ2#R zPf;H6Ve3c8bTYtA(~koGT1V}xi^R7vO8qqGdw?fXA7`8*{1rH7>5_Wzm*{4|`;4B2 z%};s8I|=Wf>KWkOW0UG{%FBE5&*cB?I^Ybz;lcM-^0(6e>Rfl}$>NVcJ9){XZtJa1 zq^}n*Q(hW8i26l5^%&{TdiprQJ3XfT3(szPyGHuwN4tDow4;rusdQJ_slOQCZqhrg zAFmS*|KyjtW&Kwd;ag@u-ljSPyt#UheSRLgIrb_1i1z&CeMUL)b?bdD)BF@1I=ptC zOmO#)ytDC}`;u^{^>ujiLBtW#4~y3cM>k)%ZYO-S`U5i@5qMwm?D|u+zv!!C|0)0M zKeha(hyUg_?O*lV#bLc(X=y)dX>xk~@}>h$8yWT#&&tW-DZwt%e}?|IK3I+u+LquZ6C%>gk%_P63>c__}337PIgCIPtjHz8n@_)i~g7 z2Y+>j;xh5?MC!lrl*2O#FH3vz+sMDwc=`qL^!U8rJIS#RO<%6u-LF3B!&Ud#U-ze; zPT%K7I#0yw=7nGM>R*WPslzh_zmN815#HnTayW!SVT$HOKfT$->FyqlgFGAcU)BTO zck=nqXg*nIc=6eP^e3zlKhS$$P3*Gz&9929PW|%CxUzq^LHIQB;Y94%ulhdx8}!=> zcNk}-@AW&0^m~g(-u2(Up_T+5W_$ih2mYR)_WR}{_`eSo7uxSj{R{dGuUk-Fiuy+% z#foIj$MZhF=j*SFb2Lu+Jg8^$p03qLlIg4HzTr{z>A+KUy~eM;mbkm>Tf)8j z{q^~Hz5lwtSD&nhS020dj`mHyUvEptyr_Qb(X-r3*JnQNnDp_|@N*S?+7n<|&>^W~BY+w-#$t z{iJrX`%8=9J*%X{0dGI}=X@V@M|W|~ukPo-DQ%?lN&UGVzYUxaI`+1H-Cc#wKl|J_ z(4Pk0Rdz-5wqtlu=a7AW52y3m!+T17i9R&^5A;vUs_tHY?0UZy(d}qCEo7Nt#;ruw$l7B(s?M{wQtsWCfyf5PX78MI@i>v9M95u z$~=GvxBKqmu#5J2`v86g9t`y5wm5A5YbSlTF8oU#o`3s0;&gC1{T=!~%p3Yyo;mk_}pG#P(Iy?*b>*UwsHaVvO4=Hp1kzq`p_ z#$P#0cHPI;^+9|3f7LJK+m#=-<$~w>IrVLMc;(5L6--BTzWnKk zzrI@M4!rL+e*E1&S>GhQzBkR;t>efW@r&EJT>o$50EZ3+JoMp5XDPeu#%btJT=Ht%m*3m7K{j)}?)F86Zeo!|jO z2Z%l?`hE70y>Y@lNq;*w2nWEvw0W-0`hET-zYf2ix)b?D;eew2jQD;Yx8jYDdzhn7 zO8DnE!k%CIqau*6;QY05{7*OfUv^!1z2NtZuj~BH+rK_pzt}dy*}w}sPW>qj-BW_v z#Q15uIq(;XC!+Xh{W8N(Md2dIt9TpV(&9U|p7r!0(cehF9{90?75~!j3!fW#>tf2o zww~MNiN_AudatfwlXGt0>ZIxY!`<>%z(0xKi#{6vnmxYMn7P@+S0io_F=&d4-LuLWOiAuS)e>+B^7% z#0#$d(cRHE^`_zjo0pCOUNrg(4ild0I@NvPV<1ihkH-F^kA^-d{vF&G{TlF{>-v%W zA2=xDar$=1yIrOJ9r(iG5&up6SL93Zd+*Tq!536pToMaQ%ukr1I0fDr>AKASkNmlR zXx?9MO!05^+o|p;eFXo&rzfoc$B##c*%lwfeE(6`Fi-XmK0cf0PUKlVJZvY+4}phG zJZ(|qk6!jr?_1RKM(m&Tuw#d_d!OEL?)Xdx{&bBiy>HWa2TqLsQX9_z2me>I>M4a! z)A^|%rRT^0yit8{(#edUS{>JmPplq37U}**_FX<-)i={c-8RLwzh6A>wMVyKcrTHRXjtHcwv?0iS_+f)pN?7be$sgK+Z?}a^fxW zFX+#r*8v{@@d@WO`NivV@yryBa}0bY5&ScDS3I-vwgDYCzipp>Va|VlzF*~}V-?X! zBJZVqitLN>--Rl-Qu}tGbV1;o+D3lFm5M*m2>{ZiB) z-`0Ju`@)B=I7Rc$_>{jd^-GZtHocdcKweWkBysOKch35_!@yua2Rrc2;FsyYBwvUw zHFKCS0M?^gbe_FtbsUT0C4v+EX(9qi!CBCjSLb?v`W z{nz|-FTLDI9|in@=r53mB7X?}6n@dqbsi~CmFbO>$AKR>ecr~s0{k!Eh!5ss^&<=K z>cs=2aiW7bD8TP>(cDFEEu1tmfIAjXOMI$f+9&hZ>z3*N3ilNs)Ou0xyIcD~e0HAv z4m@}C3n)I|=xOKKJmI$u56d+PQ4M3i?2^II{U} zv(L8fy}}m4AMUAmnfk_#ig$@y?fW%ubM<+`i$%NxA8v#3ie&s7d&z!CcRFg{Me-X} z;@_Z7MZCrNYwNWed?|6&TKpT_xA3T)%dNluvFh_@K1_a6U)x_)Cnb)h4prWkkEO)J z)IP_*Q5zHo*t|EEbk+X*Ux~Mx_g?z9igz--IX_d+OTHbQ1N6U%)6?q}wg@*_-0a(l z2L>M4^xvCQ4=fCoz3k=Is1MWrzRvO9!pHL9c4uvKu(|)Bs|RMB%woQa$71`f)p3i%h z;rI0q@9T!SGiS~`bIwyf&*vk4O&!;u=U3~%pDaj{e!0H)3mPZ!hx+Hy z+lcq-zBG>-_Y_^H%Ka?dfc3$R3>U8V`A$8ij&P@GoHp(uI=%yaw^2Me(f++HovwKR z-}RyR9)zR!Pue(h{Vm4H@A+iEx45Iqjmqj{InGDd+tTJInc$XM|89hD9NieDap=VAQTY{I&M5B4^H^qns*U8?Kpy1I_+DjDduRNmU^I@RIU zEU(_(nI2L{d){R{gq^oNrT#W^{OQvxN4!&-Ec}!4AkHnJE2R8i1ZRc+C;YnSKJ2{I zyTMgeIqO6EF+DTmh5s?#V#RrCUQ^>)RvJ>kUoB1xI?QF==j{At{44rf!p(ul^Y9d+ zQ?=4~a$Me5-_P!{{EME!K34-@ruhc932v@7*V|>iTCC@}NO-(!^qu(kfIVuq{@V+$ zr0}3l$OzbUgddysg6&^LJZgU@9J1`K%xkH<&0)e{Rcd_Ti*4S!xudf>V^?Q(_*?qC za9Fi^{yJXw-zQ|S!9R^~wjNf8BeZWaPR5_8zlnZ3`7<#Q@8z%mCvM7xsT!wnHs039 z(Xzj#CE+mg@f6pAw$d4zPrJV{4jdZ&MBuN4E01mBBemmOIltzyy|lgNfqscB{_Rxf zIu-D8lg;kSI8JbG=pM3fg1?6sIZ@w}?Zcg&=>YV0@-_H)bsv+7@#rt6tLM`^C~x9q&+uj}22!Z^Soj?Hy;KGyq5o{x2#`v9j2 zeiPhE>#Msyd(hg$f_?ULLuzI(J#AS3@Zs0{t#(pt^-8#08EUh z%~Ii}D;#|MjB|qKp}0S^r}t?+xnKD{v$Kidi*?=sdJoF`b737`d3;HN?gBVy=?Qwx zgY0Cm?6$@^jSCz!xZMr)K4y2`tov>r>E;yHzxLA2vMW7j^zI`25`LlfbN?sd&*_VX z?<420%`P|roT-QZ553Kj`~vlTGVeK$$@z+#<)8T=e+{0aOLzP2=?kvy;a<#mgnv$N z`A4|(^qr|ARcKziy3-5wYMy@w_p|!cz_o*0r~XF&&TaUK$}gGD?H8q0h$B>gat#wd z@8m1gk5fw@h@KPn?^fzl5btu*Hx%(N3sdzcMDavK@?7xXFb{ezUVZicI6W8h{}N|> zkt0Hp??m{tGAUj=Vvxm&ttE@jc+L z#}7vD!z=!X>c5T8$?p^&R36U=?`!i~?n?ugOP`c*da?C^731F?LHl+DSGoQJnv7wUA&9_X63u7M+t8XzEbal)|v7; ze`R6at7CrMf0gfkB#Wb8FWr&FFY`;{kx7-e^Wx3U@h|Xij8)#4zJKtWeq+g8iMkLwzv6ZL%|a^kHr3$bGH8 zHTuKR<+I<{JNR~~M_wi#8F)OY+u3;PHJ%RGo7Q92zxq&b{vmwS;#q3Q`vRzIQ>PoI zc@Y156s{HiV-Ma@IBHM665Tj(s~adEjNecEcdz;m=(~V-UO2%BFWTYCSHb%s90xe- zC_EM4J@uC>RfiRRH-dkLPva_`_Z<0S@K8~ITcr92_0azt|J*N+KfpoT^IOy1lC6VZ zmttmzor1onCkii$UL!i9X~UJhXYbn(O!sZHJ4-lW9T%y8bW{HMH1*{Z$Jljy1>weh z(f_M-lT}B<{%l>`)(N-c-zv^S-WTz*<^kNba0-z=73JqW^+fW9W|wQ^{vfz)8|T7w zUA+ga%NEzyhy7bVntNFKTWb2#tGE%u;cMO^daJ7_{|~6ga) zb)Tu8zw8PK`&(cM`xcz#${%O@@C zgmB{rh4-OcFSq$loOm1k>*|jlt9l9iA9h^-K)vCf zmGb85qqgT==1-Adtnc!Rnn#EGG%m&i|Fd`>$%u{4h-jNJ+trif&2jWsP{$JE!&^!zrwBR z?=|$p>$=omEAl!M{0GFp*vqT32kh^C*<&V4{_m!s_z_&3hZl6A>N@E7@Lb-L{ec^} zPxnhd8h?LG*Ujwj^sQa3>~Zq%a;%LzIO&5 zDx+|%v0+7g=Zspn_|OL?UU6jy_ez#`ekFY`!$(xPA;Kw+(Wjl4KKEYkX3Ycf_%phm z9oNr+>wZi9m%A$d0aqp*fyU2!S`)@1Yw#W5VgI1{fd_k>c(EVe zqpjyrcU8JwC;YA>+fv%(v}FF?&ktw6j__WhXJGdWzwb9C;qs#L;Ss*dBNYG3ukz0* zu1D7i|DO2kars&JtJeuPMgK!~-R3@FnD_$Gzg!|56n#m;lI4KD4G< zM?8+cw)8KGdIc@z^-AN|RO5ng%Er+fop1EN{Zj1<@G3E$n=;z znK^1n|FAOOjqvdHoLUCxedy_m{C};b>4oP%H1NFP$&-GBo_7V$+fP*g<<-g~puf!g zfVVSy92@Ab9jH7G`n`7lbq<_4`pc*3y`auCU;84wLFmm$Ki)s5_hSA^`|M#_*OG7d z8Fu;U)8ppC>ra*)qE92-bL^{l7G6K{c;L_1()guk5ifY_p6ieLq$Xg0y=0H@p3=W@ zl-8k>wf;zlBG*9$m&88)pw?Y@jo=-<&+ao06+R1IP@CsE2fiCz_mg_>zZ72kL|q@9 z75G5F!P4KaxHu9Q?4Y{YLh(o}opEdB-1mmLSy^AzDq*Pc!jyzV_UJ&{xEkCaRCn1% zpZ45`g>zN^!OvCx)5F7gx$5t2;?*f4+ zwWf=`;11>Q;AMUG?vF3n?dVYse$TzskD5K-rcrK&=J!#}clP%g6N7lVBlsMx&pD4A z{P*lb=;4^%^v?T!5F7M4a$`f=*d z^XnWuJ-Ti_4&rIM4!i{w=t*f^Y)|PMMel=t5&K^m;ezC2m$?kO7YD~f03kHt;oU%sXI75p1IPOO*0jrtMle?s40 zJn1o;?=s)n(4zn2@6ozReMJ3D=>9~;HB0Le{@+Dfhv~zjpNKxwU4_TYuG^w`pm`ws zEIMA1`e;w>|5LB|XyL1)E8Y0kQKvtCW1YMBi9=87R#)xdTS1Qj{6G1fGc-Qw6h-(z z2B?pk{o!)yrBN@@`XAwcHoIIih@YH3ZZAAHeQ}{a>sIj8-Ws-FNp96v|6Bk{II`t|lu9~N~+`U>V~9~95Hf5h(J*2^+Z@h;5= z@kutGq}H*o%+)?~=)Uj%u*>1UrS$jLX9`d%V=e)wawKS%cE zZ?&Ixk^eXIOzW!}BfHr|pUbVED?TGT?XPv{ZSBAC7ScB+-fX{{{oc!tz0TuV|AHCLVHl9_Z(}R?i(iCG~sRJhzMt^f&Onm_3Yj&uf0AR~6B}C0~Dz;>yS5 z-~3a@tA9CeqjgU>`lkMEh-LccJoy)Key@9x9#YD4f04vzjn$;`@ExXxWVV zrKg?=FNKW*JQel30m8v{4mOX2op68l9PCHs|1VC(#}mnKYaaYO#VPA4{)K;Wmh#Ey zjuHQUAp5gZPt*KN3!_xOF~9t~^aAlDUzydJ?p8jE0UhA3RDGE~C;OMdIe!E15B+QK z6P#pqlsH~IUG!VPvnBo{Pao9!iWg_8J_*0aeP&neW4^TFewwtE7*~Hi7x=P>Q_vZJ z-$^_x@qY1JXupW~|Go9Tl4nNeNP07k;Gf|QhM&Xcg*5&m-QZ3xo-O(bnn1F zFH7P3%8qZ=c#;Ztp56=U9ORkNF9OF7E(n~x_BD?`ulld-e46Ivs8B0Ayduj_bPWqs zCuqy`(|(a1&fs`=ob2#Ytvm20F%PUe>z31p&qsMFWR_~+}8Hs!7 zlf*7}G<{M(Ue5!a&QrCop_5I$7=9=CRH!qGugTjwHCXmCI_z)#s*TDkP*?Tz7o+>J zPBrP~*Q>*8>i@;=`pf?8dCv&qxpT`-95{CN-9MJ@5YL#7^L*Oz2RQV};r%;B&mEqz z*EJ8~Ve{}i9iw$od?udxJzjO^M0I)cXVQ;};0@%z=X_@BE06G**!bE~@*wD)udQ`h zcJ76fi1an0KMkHw`BjhpCH@BMBKlk4UD(H8mY+27lqok3J-5PH9ljU**s{m2w(gbd zNH$(@v3>Nt%)cX?3I5)>dhh8AMDOV=?HBl$>@)BN(a(7KNw(;;r%YwX>gqv%+6I$MUtF zen@yF>^apr{7d?2*U~x)zw2y0C++8+=fXM+Unjh;dam(O`Hve4=fge=&If%1c)j3- zl`h-@_Hp8fpJj)J|EP81<4D&kJa_!YAuHiNvByexv7Wo$6Yj^$uP}RVp6C=`$C2iT zM0js`uetAS7LGan?_1Y8>`*+MdN0%$kzO3;N%=_WtfmmPb zj{2Y@_&4HQ@O;=CI6(Y9@iIhs*m&=iSB<>qy!YVo&?h7BCY~q{4vO`-x9~sgXAdh6 zbgb5M_>ErCzQaBX{$6>Q2=42V`@Z?*&PSG~_PHb-qC9Qh&m#Uy<0%>*SXai$|I>OH zM(R2LO@5gDeOan~B{E*|TSo3v`;tFTaUcEX;J%iKrz`KTlV9+Bwl4MvH5!L-VS3)x zfpLhZPJi#}j?lh)i9QSZlFe&r9UB$q34bNMG_U>IgU4I%iS|hceNi1uFLJdoChOz* zvQ#B}7oRo{GaPYDaUVY*NcYdP|6Zf#c#!tjL$v>XA$%7+jheqWOUHxX1E;3HN99fP z{a5GDadqCH4*Kr5)%|Ao*|e|rpFP4F$`4Sd5|5T&)o>pE zgIVKu{%Ey{R&VdLv74^r(Munv>)QM&4_VHq{NLXvhb8KxGdMLs6PuHJd_gU_9Q~#dqYl8mW<^P`D z=XqNSce-Pkp!w1~#P83p|Kj4!N4Z~~sQzK|hEmXYB79tRnulZcxm@|@%`|SCj{|hw z16D|zjE1|=|G*IJf-sFUcAn_Kl-*C z!c8mML(|a?z6^j-`* z@|D{MAGK{Td)(HI*Y(Z*)^ONkXZKCFhZn8ycuwfwslFVszvDDM)#o%1xxcrPA4pt$ zK$xQIb}{~}^!*Iyl(?B04)o&^_P4Fhzr@~0&HsjOj_gjKcHQPf-Ks0veY4(&=4s(Z z*%!Z)U3untxaK>X&!)rk_r&IROSi80*G4LD|C9Kyz7Y?K9k;a;ABBx`#wp=b@xXj1 z{*97;FFrTlL3L8guZ;*6Pj+=1NdI>uU01)09BUsAGY&u;oyG}uZS;>1N*}+YeR$j-|Y8E0{`qC z8kgDShT*pl&N-pslFfqA&~3&%#7UZm_4SF~<$4$d5++wV4F{(Ob;kVJTY?B92H{N27!cHhb#^mh-x zopg4+?27Z4UH{H6VfN$2mzeV|{!95%@%%+_#q`-uP@RuDDRn9vPk;C%z4C~WdNq8T z<5kzQ<2yO(ztVg5m#A(BUiu8xLD8SH-@ya6u(VQK>7~<*ezX^lmf2%VT{s~FBv*$M zv(H{(3)R8bSH4qtkSLws2%cJT7`hh`-U4_zz(u{JcmrO|xp$?@$IR^?zdWBm-d26{DaEbm zR85oJttp)04;J@D^llDPe?9hO^U&bXl?Fc{oOYaIc38xpCEbFapWc)HIX|hLFLB_g zsV~C=p}M{o&qO3Hf`{~dy;txV{cz>)0QrvLjlF*drhbz)3Gaj56!0O*st!BjJ%opo zc=iUxW$@9_e?&di^x1ki`Yyox&$oGP1ZR1P?2fwS%fcUQr1zHko6X1SInIr^;bz$- zc6zV!f9$_o$sSp!@K3goU82u?qwsR#(~Yt-dymT($4+-p{#m%M2tPhJ&k2g_AG&bE zMejY<%Wa+EQj>7I>=j&z_@un*MR6-VuP4 z0Q&*oy0g}ufo+eBeP@kPPI#C|-X=S~sm`H8i~jPSsv`@>ANB81I#8avD*dkDpQ(51 z{5FqGqXPVs=)RlZFfxEsD%73J^?CG84iKL~^0VQ)1{ZNqF%b^UYh7htPgML%o#fh; za9?{H{>on`{FV4fqjcBe5yEGoM@b!>{?e$pmHZ!gvy1e1csTL@f7JfV`iK4fBL9T* zs(;dh_am>vbsn|zNAk3EP8Pj}+0(+I8J4Cf{>swR`fhM{hoUkFQhk+UF}jyh!6xy;tiTeDjq-_4*wD zqQ2tTsgN(MR2+~5`nS-3Ll233Cw;5npQSe)tG+mM&E5Cup6AIP*Lp8Jc2Nhr%nN7p z!Z=4d@}Sh;z=2cu`T4KM3_0k=0b$9TUrl{$^@X}N zb<`i#4*>54^#J}I{JHwTeT({BssD=q(9^G%-B&a5%~mU|YyAjIQ+WE&gc{P$*m z{ajF=0sQaiuSoC3ix*S&*EQt)6#5$itv{D`@}CFnHP8v%X%O80xG_Fw8B^nG5U{GXkF zqPs!yZ!!LCaO;Za5?p~DzeQ+MoJ#&~3+ba!U%?(sfAGt6aaP}XFeNVpj#GL{UUhrf zLpKM$gzLjo0`Cs|SJbuO*_EDDY#lxE?TNh~EYX*FvUs%cV|xk*nCabJzoxVMs&LZL z)i?&aHsQgue{Y7r240wl+F>5DEP;(y=Y`?|v@3vT?Vi;6S-iWzd?BV7~R}dYJ?y?6v@4^y#7_t+sJN1Eez&SzKA3+_>m&QDco1SC|2*TQJio&JVCNs@@MGX<*jDSG>bX%mRGR;t z^ZfJb!e`le+EeUrf!1mG8+g7`vOM}vC4DN7R1v@*;3tB6o%8F{_q{Xp^-@piefHmA z+gCS#O9G54R@ zcvx-FI3sZqeM@6izlR?fT#}7vge&qowx;-hUnwsk{uR%AMcxGeO?XO=ZWDG1UJLvn zIGXIbGmdp_>3|#G-)ld69!-0?TNM|BtA@8Ee}A;zq{7YF_;(6t6!MePHLrsMc1#{d zIC;O7@CT3DdlDz84!K0QwC%F^r8O1aJ?C{uwEn~UJgfHBzcftm4)0>l!^1kLeJ9#D zhq;fH|H;0W`NMuI>~sCKK8?uzQ}lKW$JHyqe@Z_`vv`%IOC`H*FYT}Wn)rzQ4V+R1 z{BhYpsC$(A;j{mKDHU{-%6a*|y*!9~>^#7u>4WINy#-p_W{3H7(b?`f77w9)F)%o|(^A_)TyhHIa^{(u? zbB=VssqTQT7P!)XXkUhBiMXV%_TNICG}$-&qWm*<2j9N#FGUZH`Lw@}rXHTwT3)9l zeh-%_Uqjvt-30cjjF0lcQ8^!yoez6rof#RnS3U_pn)kP;TTvl9XiGm){tTXK#e*Im z-?d&|<@xL7o*leX;s^5J4#8=n6V3W@n66772J1h3asR#U=`HuW zbD&%L)8w5e?*2)7gYeO;f8dF_7x3W2^nNW&xo>oziD!k=(EAD>%TPyO>v_umkihS>U2`J|wQII2zuW2(OJjw@ozvn>z5V@FXeDi!Yt>Yv*)y$B<+Np!?EQ zW*q#dBfE5PMO}qzbWA*TEIU8%`_!QKCtue!zNmda;#cte&XRrs`P)6@*BPGjjU11t z{xz*f*k6TPD8I|bF+A6UAdh8#Usifd{?PmSBu*b<@t|L-K2)>20qz~0clKw^$KUsO zZTPqRS9qe)$ATvgo-TNm6z_Z1ZQ_Tg54!#h-yhU6WCt&N zs0X(K58z$e|L$MWPj22JP$#C|slIm)E?9jaaqtEA4;%dAvUI0RUu+dO{n3wie|GP( zU1tCFppPP|PfqqwOMD%S9N z($9hZr23ax2TSb*Kczm`l_h>O|K!*7+ZFwrWVzv7n|lZ12KMLQgiq6Tqx3tX@&>x@ zj*k2b^9YG?K6f0sVZ_+UOvzh3gN}X4$K#z`Y-+dRhgR2)KIzUIqQ zuTx#vqfs3b}k2_2_7w|6|2-onz3Ey4ymrv`%lFZ(g zltRt)KMrf@9d?(Wsd{llUk6@1;zIRlNAgHEo)Pr3d)2QaIKT-S2l|EcRNtd+=zr?{ z$gHNpuI=UZJFQVaucUeR*cm(li}ik@11MaA-lNWrKKax2Jg5W1XN5f;r??Pal}0@e z`Y-8MKVNuJa16xttYh%oqEjqAPH%b=o!!gYPsKmfh|bG}@CL9Ya7CK)svq6w!O}QpSV$Z7x+>BA%BB> z<3#1Z!8c&9)6I^32l1s~kHP_J-u|aYw4KEjk-p;XRR6vH#BS3!E%z6z|2I;1wfR_9 znlC&F^JRZ;DS@le^NR3q&{r{A{yz0z;YU3BJ=BrqC+2;Y$)~mtQrA*l!}IsfTAxSC zp8j>J_5Y$5KtF=?ksHMm<4;rG=0EB`qEC6I@`C6UvabJKcDT3rH}pNiS3&ugzx%_ZRu;QS)to9~p>8s58@NM81jq%L2u}^v{pi zdPE=e3F98_^y!ucPYMo^jLHa=Z3x^nTCLI-&2fTjJXqM?RN)s^v9$5tl^b2J!KD>R`7i zF0uQm3Xj-#^0eOmUg?O>rH|kr(>_ieZIS%Z6P~#9*$01H)eY}?+4+~0>wl`7!RH*Q zqb*Pzkl|~}?>qHJ#`%!e%Zp@pGnJ2DDZcT_pEDm0U6~^lw|t=UpudbBEBRac9*Ixv ze%HzCqFcz`(AnEw`|n3u=jcZh@2{VyID~rUJgr-*BYNVPGga499^2-5&ar{I9{qaa zqw@F5?qnyr-(@9q^mc#!;!)qO+MXV-b#zh2Blvhp{$5nxJFf#5^EhjU2IaenlWZRL z&g(YdozT53>P`++K7#n9UiiIL96U_)J*y8W-mAQbcrkT9ZRzIbdg!}RKUg&Ts}IV<$1m1e{o3a?80v&u z^K+zMO@BN29pX6R0GqFcrDC3@vqN`;zH9hT;5mW+d4qyKH#l5W=%X2lU+CdU2k&vU z@;K{hpA#QB{YUUcc=ciDxC;0JWQS&dwa0{CERSu^qxHxD{!e*kkIu2(Z?C+sel_j? z!gZIxb)O+TEp=_|@d?!x@&C|KM5i}9fAe2m5y!i|>}=JbdavweRrhltt{bkneW0Vx zfV~^edRa<+8hqV^=L{c(zKY#n62#jHelquSFVy->9hdVYPuRZPuKJ*@gCo#W@YHdc zhfd17{$$5{>`!`95xy39)5t$7ej}gY(S=0s#KvFeq^lLlKP&!@O%K{QSI$45q5W}b zA-^zK^9jDEQ;_bW*-g@kJimvBa`R7nZuVOJKTG7FdA>L6{Ngk4)R{YI9%8+5HV9pHE)K?4jHTyK9D{xwdq<>2rr}8NTMD^fBet(O0Nf{JYOedG$N> ze6JDS!mhWcTc*5v7sc7+eHN_q+RHVoEi0WM`~vwC`(1)G_S3^{&6(f9j++>NykFksq<+`;*`I)bCdl4&nsigBj1h*54Uy zUu#bdAMjggOXab^b=Y~kI_fQj_qg1TIzsbyjn*CURCx47!68t0HNL&!(*5Za{;POX z&)t*HdA;}cO-H}Bjoy!Lu5HElrg>C2QFSD69hxs4Ul}xSo_KgO<>9E;O%+as`CPdU zCOnX5-!_~KWlJ^ zw14B@M%H1wZhI;`zV9f1P5JJKp9Ahj$Ct(^4}`wfeey$Jmf!VnT^HQaZTb$LlDaQ; zioa~a(K*4`TNt{mil-4!)|$_dLpNDE?RZf7(wI zx3=a%dQcvG|MQwp>GMS9`Jjz{8+UKZTF&fm>u|05aBLj(0}WV7uT4CMNiXy};uZ3X zYm0UM_?+TB_}-SQUIh*STqSn-wCn-ifVH)rDK7Ky|4=tVhY6fMyjtRmir{&~x0~z4 zz~>6T6TDK?=Qq}M;R}NIRCo$czRu>Uy+oV^U#Rp_{HfxVnrXa8r6I!0e^=n2>1z8- z%UYqx+arIdc}@3=bc@&r<h?Mhbx-gB zRZhBH*m-ii_7QYMtsku}gm(|Rq35#NaQ4O{=eKt0?Ye86Ni;tZUMu0uymYY^s7~y` zcfsFg&$pM`Uws=brYpW+L-AvQSIdrTp5O+m-g}++?3->ie{HIc@2Yjs&f8XM(DCSn z3XiXO=8pktQ(do#M=9m261r*u>Ov?blPF8$U&Tx7bejZn~I=)r?UBX@H_#X0adguJZT=yIChKol@$HN~oGVi~mZvg&i@s0Yas!M&T^Wgs# z?XWi2BLE+3&uxvcZidtA;?~Og-Cj+rvvu^n6nrfGF0ae4K%b-GvipvBqT#2~#asUI z(LFEel+VM1>gOV_(Yw%>OTYMrInEUQ2^&v)x`Ceev8tnQFFOPm#XP*N@t|KaPV=C8 zKrHIxpbtU+2Ys0JZmj}uhpahaoVCH?&(Bip6EEYDrDuY^((&nkHXPPI%-OnF<@%bR zkn;t>t4dq}js^T}Q7?5_I?wXQaW(lH=uQi#9Hsl{ZKUXWRfJP?UG`t~+r>@w9@_EU zWQTQ*ytMs&Y3U|ix2WgY+m0{moDtWPzj<7|mDKy}JT;tGxaVRg=JRxX4 zz3toG+`${J^~T?h>>PGJYS$zG@L+dGeG)#aD}@gck4ZfA!CN-H?%;0D*2h}cqJZe?)1Lnvt z`a*gv;B2o{elh!f&J*}?N&PPVOC4XY-yflVA-i6O&|meiT75Qazq5aDFYTuB+V{mJ z_`lVE=?^L#pX-D~`0#!jvT#z*kzY36r|VPy*-rJy+r-m#xb`W#PQUPW;krpcA7;45 zDSsw1pZ2?fZeHd$&QEXCXG`|^V){3YbNuW#UcdQ`p<0it+zzA1uDkUS!^8BuZ@+l| zL49*Q63v^h)%@0K-k8seH0~E*;ZLLWgV*T&+1f3WE)vII zsdZm|x~K1#eopke#1n1z(KOz{FPNRDX>^cYvM*Vj?^{)`SXb-2`Y65nnY~?qafx-= zz7KKKeUDOKCi>9!@8$RKKX<-%_!Zmd^Gy9weK6p?Ji1KM1@Q2>+Ig0yXUQM6@4W)` zdGtTtmtTP{)53zi4tMjj{-RE9)hvGQ<<`vb%D<+E$d8<={m{-|73RM2+B5feuXpe{ zZ8~P(PtMxny%PQYOXLSFksl)c>>TI(Pwks_zD+|>4|j5oi#n$;&i2w*%A5S6ysZ5m z9BMhXx=C+a=UX+$<*6VYdl}sA9W(?QmSKupVRxhsm9~Na`E%n zIOTsN6``nOhThHi{5>E}u;29!#1GQ7^WVz;#8csUU%;)t={Z^8$rbm}{vE{`)xIcIn;A6X7_eK8@JiCkWTQr|qe`O~PLF4qS-|(tZ z&$~m{wRx!wL*?I}s(zqrgyXR1BVNWP>SLS0Lj~WNuTY+x{%4-g!OG{uC&&1~4^r0$ zkBmQXg5D4D;l}Piu6|V4oyR!%atCU>)=(P-viy1vsTO#H|=H5tND*X{G;()<%7jf>ZdB73XbCv)xXKB)5ovp z81cte%I|vW>kC((vF3ZXb_i3iZ=QeL^&ghVA2$kbPX7b_8mDf1#Y?l!`7vGi`75)l zFCORQ|2BdbAV0$TXYnl)4#9rZVy-4r%3(`Y`|A+pg z0bgymxazK9VbWXIFRa^j6_@EyZZbLSq`D7%l*x~lrzLOqkn$4nxl)HvACag2OFvC2 z`>PQD+_&P_+fleQ>;`@m^vtJ;-yNKEkp0>5NnjrTpz#V1=r2%S0A3tBe$BAC`D-5i zwDbeJuT=RC`lQfvJ5h1XsXCu{WSRE}&kOq_^%d;T;@_`Jk7x1659$8m4gU0F%Rhgu zdBlIt##zn-q4V}v>GF&nRA;ye_KesQqMc0DnfmbRym(=J7qvt8jsi@d-!i$v@zalLsAVLcr-Udae`I zhfMzc4*4zU3o7rjfczym`ZrWJ1jhmY6uf8f4uVftoj8IYxn4MN>Q3-3s2=U%amt=U zO9Oa$f1>IY(us@Up3xPu=Z4=uG>o=X8+za zGN^An(ocY1VYB859y=$VFLbKl0~X#o$NAuINO#6dPaz7Imh(<*E*?GM;61p4GbjBn z_}nAMx7{s!!oKKNr@w@LjkonaiSNe$q`Jky(s?~cc{O+pgrD;G<$CU6qWJiB*ZYS3 zHR}GskI`QVzF?u=WAxhKXN1R2e1>{Xt))%RyY8ym9z9+5+1S;w{%xta)yA__@o0?$ zuMeN$Ihq&p&**&}ujdBug!G

    l$KDrVg3BLhfRbq9+ zeBEo79oB3WKVJICKv(_y=ajy#gY?Hc+Ib@J$3KKiv-?S$S3d)MGX;LxWQS0|$tA0W zcht|6{k~9X^4p8w9_CJX^4QvUwyX@_fzPr!cq8K%&Mx+sod_4`(OD92g#VlD5MBvz(D;Gy zt{u1Aob%7D9}9nfG=2F>2fqb86w+OZF9|$gX2B^PV2IC9U}N< za5MD%GH=oi&^%WJ{QYst*T1iI-Hz|(R$D1vd0TO;bV2+TiU;At2k%4t{y?_geV#UF zc6fJban|?N!J#h$PbK($@RZ~aY#id1Y98*+Q@!8*KE$C{al8C|^e^q-dk63?_I$-$SW4XzbOBn^KODaJ7?ElM%?)*~!JU$T~PxWg={0#Aw#UoaqHsid3-9oXCoA|I29yq^|>Z6_2J;3i$^hnpCkU1-{qSW2Y@%#d2-&Q4TLAu z-^qXF__ED~cRWt^_@dUo^*=0C9WtVi>-$aZ$rrx%O-Vddd0h(L0_B6ir$+i}xF6-U zqI84eAH~Bey=YH=-RH`?D$en_F17X};z#m#vlRahmS5e=K5gF1{H#wYj{xu1GVzk4 z(}3>gIIDM+4%R%Xk1!_xw*43WTH^aABSudvE}ehg!BxvjJzlJ=?0I-=DqdB8x%{pD z#J5UZDIQi&y=JEF3%o0RG;@Rlr@k^x^?jSqwSsid>4)^QwZGS^Ux<0Kda` zS?PAgDf9zBp?V#7QE-l#KE>44!_A62;5{e){Z#(nml_9s#eY>?Ggk2o{kP&fiKgq+ z*O8B<|Bk*B>e|cNle>4ltxu?}e(~DruMBZ7U47fDtuJ>8(rqTs6ICZ9FXE3>d_w(N zddyyWg&v$N{RH1C-ca5k$9viQbyi+(jX+$3zPR+XW1Zp@@-xIM=)|Gp1I`FuD)C_jl}{62b_ACM?>suOyH45ryw}^mDA6xWe>MKc&hnp4 zk8Y4F^1amuaJbpLG}Q%o{E4fy4#zu+{q^t@M9oW7JQ*JnZsU2`-+18>?pEFgy*AY` z{y)9)A|F_9N8C3<>)e`pKZ&o!EAH_dh3obQp0@LVoA>D!h_{G;#nbNJYPxaYGiUa6 zwcmdA+JkjJr3)|m>tB1EHq!FzExqlt>3@9i^zkniE@6`5N^}p+u6hS}_{krDHx~Xg zZcxax3?e_A^X}VuYJ>8^Q8*Or!ym5oS$q`n6Zy5^tI$JKJtOBwmrj*OUk={-E42Q> z2e6OcvyJthOQ$8*yN7oLKB20HtlqO=sq#heTSl!P#9{Qe@}9v@&U#_@y+nD7dh%}Z zaqWlbW-I?3@pES^ws?(w=LD_OcD?~&YwaJq>T@UcucQC2{a5Q~k3fDLz7q7)h(B1* z7k~SgyY_kL?UeQJNsUwcwXc?)?xxS=B^zgj#z(yoT(|rQ_9aigT6tX$|9khhwm9m8 z1>dDpHo5!te{a<%TobR4-#^eZkhceqgU+4JL#2aX^55DY;ST_3BL08*e-nfJP>&uR zI4JVD#3kUFh0lny%%1#3Uz;EDgX)0F8%O$&@Q3sq?YiYW`SyB0)W?q=cs* z|KqX0{b72&+eqsI`){()uDeiqc>D#MhY^lEHS5XNs%!6~{qTEzo~wOaen}+%k3G{r zh@PM7F!7(t_fYQw&j)@*cxkh@a$nc;@&{PAb3g9)0XK~eydU(v(P#43XOns^d;QJQ zk-Gop?e-pV|LenZJr?O)#jWi4I&zvJSQ zhqy%@PuTN~SE|D)ceD*8FeXYBc|;TrXx+xOuC{M_2=zy3*a%*whE@XyKL)OxVc`c9h1hN)T)_m=&^ zLt{9rA#PuL4v~FR_*)M@8+aM&4T=1{^TfySqt?q;fk(a05GfVFc@y8uWoTfZ7w*B6&jPnW-~0>0y=dKv%Y=7Qe~M?nA`eU->N4R$;U%UY z`ZT>S>Q6wg!%MHmi$5yQYw&#SIra_UELi{S@8F*or<=}^Xq}a&n(A`W zv5%R~W9#tn_t4?hZGC^&+jJ$P>a+1Lx^8xz=6<e4Y zK0yB6;*$EQBKphpJ=yr{g8Ih%!;5S_iJ!nr%zDx8OZl)!f7Q-~yn02LS(wkR;acSt zCu;u1Td(=;6HXRh*6wdixIxFO4=g@!{CtfAG;fT@a0L^b^%so^nm3;;uyIz&9`v63 z=c`qLQyG3sm9Jec2|^bLPiU3+iM=c^q*SX4K&TJxDCy~THJzbp4=sZR1=)u-vd zEEV#+wRZmIi8@a`eH5CH)gAh?c3yBwHMuU&&GMJy@Adyp-j~0c@H?Gnc<60@UZjtL z{P~j_AAQ;UJ?nQJwz@Oj_MRcrdpvBayG{NSewB@DsQc3L&EdJJhYsEB#O~qBbe)-_ zmUMOK=J099e~9k9*(LmtW&JDr_oXHE$7uYW-B0qL;LoFPgMOCIx| zbbO8Gy~-V5z>8NpcsGP=)ba4*lzBviUr`<;3a{*cF5t`CQtCn92-p6e;zZRWJ@FF$ z-!a;M2WtI0__pgu^nGL#mwg_$L7=XRt{?hQw`KL;RovziuKb|OPOYi&O?C)>(Kz96 zWIroDU)Jqj@NepV+f&v!=r_pwcm@a6A$8pW zu3776vHys14sg^pi0hw_zuQ6mdbS>pFgx69Q%64re3js07(aal;0u=*o@3YWlln}E z)4-(*A0NT{o4sOJU0t*Cw2HH0o{tp&2G4(Uy~pLq{b}b?msbI)?T-ugvHS7lX^;PF)snYP>=)oW6W^eJc%}G`d9ryJ;GU5mOrEw$dD<=I zR|&Ua^N@@P;9%i3B3`B*@Hg2f`Dfyu)3u+#(*|Cc`CcZx`YQ6v;7he}E-lGlkMK`Z zFW5!%g3ej3u9xRU`s%#oJC4gPVe&ZG6-(;Ton{#S|^2qTs&F}ZJKj};7Ja+g= z%F9IbPQmTj`q(QxAiDuKfF6Ub1D(kac-19itLzf{g9jPh6uKqw49!;DNgOI2;ds9M z`*#(0pCUg?e5>%n6zkSaqa1Y$@z;6yRKc;^xVyPcmH$F-d_S#=Un{OX-SRK~Fx`*( z#^M|DE7~l--3We5Gq;DOZ_DOG89E6>dH?;9~2!B_+Oq{q+ zAztp0^HSRTRv+N$7$-k^hqo;L0{;pA?}$R2SQX&AJVg61y0$isKH*@+U%P7kv%mjZ zdOE{Bzg~JKi+evTJ(qnhNt0mr#dYbEu=QhtaOmU12=gy}a;J@xyn*6zy`QxXeM`G; zLy>>b}8|XK_Qu7a9hUaegIoy$lSwnUL5B@8~c-apx#A6+FpX$FU^R;(S zznh)6Pbm7y@Bwsoi*#Prb?R^SyTM`O!gYG*ajSS8^nAWa;d!`T@0tC+i!=OvC%5+r z=N~P0b$bY(9nzbkq-975B4mf_ME&&r^8-J)dr2 z>Wbqn^CdE$;10>}%5HR@c6UiRUk6U{QRU^SFBSWA(BUlW_z9O}XBd$8|EjMspI7Ej z{nAnRGk=!+1N0v3xRJSD9{70l+1F7$iob(PaPpg;&DOt~@au^K$IiaHv%4q51Abjn zeJ|2~^o;!6zFPmX`JcN{$Ue8-$Wf;fP9pwE<7`&{rH!*q`KBr-o?$(Q_ViQ5iNsI% zL-aE%FA=3*>Q%q<`xNGLX{x??e}VFVc3tA%WvTKEy6%|pt8iE9m(~2kztEQMulf$W z_!Bjs?Z$&3|FXBek6m2A9^mVNw?=s4I9K~J{rSb`SP72K^W3GU?1SbX-jw2f!M9TH zz~8~YM!ci@@WgBMrD`0WJ}G!D7~lQEAF0k8c|Khhx_s{2rtxAHUUlk(C}i|UW{m+t=TkO#jg=eHGSEL6RY_(^?h@h`GJ z;$?W8RL_d=SX}VdJ=Y)g$>4B;-m9US2iAFbh{T5x;X5eCInJaem+ZI}eLb%Kk>m9*LV|fAMfTZ?5MFPE6yA=!>wA zIN5K_T3e2q{c(Nhw#&=S4^3W{&RB5YiHAPd&)I#d530Gd)BERN(|Same&NOIK0f*7 zQsDU#FE?xd-B9Zv_5Mv{k7kGCbNt++cHT&RShx`4R`PQZJX`krGTyGJcTTAe&ncmQ&h~-w%}i8Y>`LWn;ok+%n%!@i7okG& z2>ff{elO7a2mbQJtl$2N(v=qs*y^6|lko84mvsHl6Wznr%9Hb+z78Hh*QL)79Xj+k z=Ic0g5fxD?&Us+^DsI7F`kUqpei@sG%>z8Jqr?M)uDJ4?QGGA5UHWPC z$)l%vx1O(fPNJS$Oymz_*J**LXM*gpDo_VLUA#5oyNK{oU#k2nb#faoesZhKz1;Kk z+Lyl`kG@{6J4#>Mg|gQNn>P7i!D`j+wTwS@SxTIteE_}Ic!>3<+4$xh9c-Sb=D6{X zgr|fb8a{pcOPqK(gvZY7aOlmJ-&uAU-q{s zPC>_-yeRAFovL>!kC5Z9I;@y4$j4a~&^Nkzl?&6yzy2}T1GaHc|EA8~*GXpzyqyi{!n9$D*IsW3La(F6U@Ie^k9d^=Wu}{B^&ti;H@N z(@y>D*Rw8Ol0Kr}HOUUpyI)=F-z|UMf9A4AHDu*i#rACXXMMs2VS+J9X7#7 zv`bJwWK_RF&VRyt2mijtA2-l*JXihzac6(oA$Tx!dCo87AK<};kEhas|06%%X7%Mp zbQkFV-KLO#PN=)XbLGJ=(q}DQl!!ks{mHmfhBH`LGXDIpN{v~++nXtUySi?KKi2H0 z%#SNSzuNRAy!0LPezlh1Ys`*s8sns+XYYN}@E|=7`=0c6;`590A95ZV>Qv~coM-)M z9=!;3J8fJO(A(5`TTAr4(T6!~rM_MCJ(8}koOSt`74E;kULGdTuL{2?52HLh^B+%E z{VBQOPwn?@@=dAswblOo&@)5bf0Zw)w)3N(5?Q~J`4-QDUtm5vNUy}kKP~Uq6Mt8P z=LTJKJFW`d(YUJgJ)~!$`5*6!_?6|QLLYjvq=Zg8dga8a?0@VhcD?o#fBs&rL*T6J z-|NGLs_!y zdyDEXMpsGCy?O(ZNnC{<6{Y8}@S-Xq{Lkv&$XP_PV{TzqL-yvQkuE$@4Cj)%DowtVl%-0JyDV@7mseIeq0#2zleNx}wR$Otj@YU*D z_S%Z+;t_R-A#-C6h z^vc^s;yd9?WT)_fC+YmOM`1MSTX? z$p!KQ>3`k0)#|Dbt6oDL0{u*IdGr-!<7i$p(Dwk23!W(ONQyW7Wbxdelkp9Gkhc6d zch=7X5~n!b^Ip&=W%oJ4(Z@So`G4@zGgTh|e?Rgg+jl;Y{n95jL;2@1%G+M4_mci2 z`j^3l*mZ}vyOi&lu6YyR7yUdDT^2jOJq5q@itKL{^#v~z&SHl0A(L7U-{p~a>)kdw zFa1a4AH>`0uT}m(5k3uE+!8&X#PHsYr8F<(3lScK`xF<`*Tg<&^U%-Tr}OTh{33ng7piW7jzU-Uv)``g@u{8< zblJTv(h<%6_N3<~Qsz5n3YPpZPOEPieX4Lkqw ztcA_rm*58}^7JnrGT-j|om*kPZ`N5Q)l)h89j$L4=FT#|?XWTEbx z{I2}{$bE~)(Sy(VS$1{4a60e+9;NxFPMg_L%SiZRJUmRoy}|zwXX^gwYa@@{EV~vD zepLTkUN3pY#vSRa<+;6a<{BN{4(RUg1?OX+gp0iG%vALc&0o4wrK4$?(Q10&-vZMM#{IMyQX@H-lKB; zUU^n~54+O89QC|B&*@%0w{n z$9s66@`J*OM*0ii)H*f6>^|=Fz)24sa?7e=lJfNQogJd}5I>E0nYfbtjLkz^3H+md zUs$5Ad^g$szS_6I>48JE<9oqZ=JS60nT8LTYrH|F?Xx(xE!|akobl%8hnbozjkn>wwld}O}>AHR)zKpxi%cdz$?e!GE=dMrAa@NZKOBi{Ph zbYB-R|L}0EtnX=fIOo*&pA)dLdpJ6~yP@Uz4A7sp1uQU(m@0 z?+K2#$bVJihRgp&f7+f)-|!!uH{UPh=c@h{*Ofm`T=k@me@W|a89j^sdmc|I zf2HSM>EMYb9);(MI72*D9=%2J8pXY}E)XZ(s5s!;o$5Bd^{$J(>40wN9#))E)bXUx zsnV%$N8@SD^HyUtPc}d8sraDK3HR`f4b^?puSXveaSHE6M#uWy#sNH!^mKIHA>k#( zM|Qo=+NVZ_3lzu5{`?fhH}EA0=bpza;&De8Afm5mxTy~4cqp%a^Ax+D@YChK>mLhw z5%8D&-7MvA=%0mG6FvcWk5n&@n=2oqJf-ZrCg;BbFM*0%LSNXp0ls^TpD&44v z{>psWA^GqrI-Y$T+`xUxOOZdzn_l`(DKVvK}+u2FHA?BYt(>Px@iNfxj$2WS02frz)=`er>OQSpS)= zZke>TG(Pm8;5Td5^;&hlQ7^7L^`7|y+&%kVblweTbPeb%aosjuuU*I6^%ken&C2bs zsOz-3)`5-P85-v;8lQNp_`BZU*7PjhFXODRaW?Ly@!EB(g8DgPKh0-R7i>%U2ixlU z1KmU7v$Nl~m(byQM%Oc4?UBLa@v4ydA)lA^KJ`21LG#sknC1iApmZk|NZ+cFKExLa z&tr6u-c6LgpYD5H*dp^E6E`5^FX|U=GCtH)ah(S*NB06Ltl2|P+@(X8h=yXACC@I*7yDt zc+n&j=PgO#1(Tjsj@J@y5BGk-(%T9V%?$^Fb zpGud-;eG4S_3`$7L|~sG9{88?myav{2PaE?*si1Xw(O6puB>rUhpx|`o8g_`C7vmn zo^`K)p3frHKfpIjU(BNe1+E(YUAumbyHxkLhT>O_2M4A5itxgdzko;6&Qs<;Ha#iw zaQcEAw#Br<45yIvMRH@JQxQOq8yDbvQ%o#}BewTNekQR~q4?!XH)t zb3~^Iethf%UB8v|!Q7tK@8RCfbhbJNcu$YietPtZd=`oPn6h6{uYMEN{XDpCyYIna zU*(fp;eQrRk^ZFCM=h_uj`V!1Ro4+OsOE2J30-45Z*`a;yu-!vSLy$?e_vRduIt+O z%Ao$7NMBbn*RCs_XixuO%dPib@}C3C{nWc|d+^B1x&`UV_~d>&9^Mn`6p4+00e&le zTIz4o_<6ru(+jl!qHFxo*ZZw@QY(19D*BgXujRg&d6u_#nm6JuyRQ)r{t^0+=#%2U z53zaBIBGe+z9)%v8$I^$_4l*8EdQcUDCl%IgX8KD5_^v5FB1oP@xv^jKCJn%`v4bJ z&QJGHUl%;(hl&@##yiMu+~v`y9^GnKXvzBFo=P9E&yw`hVnJ7}c^vw;nlJp=wH@o9 z^zl6Xrt~4QeyD%hf3JGz9Oc8%tKvMPv|hqfc-e~kdYNb1#@{VaC((5yykz33&^Xao zALQ64uGV$MF9rXAH#=M<*k?H5qklv=nkc>FSnRVZ+eh|aH-~?-mezarnf?VoV1ka{IBcl>lAZL?_0b(47T~p^4|A63 zf0PW5@R9n2h?|CBe=F%b3kP22!zk(+4{`L7&=*F3zWPP{O8hAi{66`4o8JN9M&;F; zwEo)PSx2h#ym$8ZG9MoLziY3E6C+Qa3=D^Gs98-)R|ls}HTO?)vOO zYxmFfm&u<~fA3*=5)Us7cx4+O__?lO4aL7tFM6@>FD+f9SG{%sZ*0eplKqX+bE*o| zzv!b=Ud$K$<6%0!($VK==c@?x?dkkF&b}qdDDAt$gV|q$+h)c2N``1W9o#q@eO=lE-ZQ2lvJO5AS)|`IjVP+Y9&zx0 zhv&TL@QQ%@Qa;%1zIlLKqI|AhzhgMLz!Nnz6nRo|JcNf=wyMSU!A9}V!Vh&|A^xq% zd1t7HqW|$HB=t@4ilz zhmMK#8pw~+muvT3={6Kz0Q}0)@^kFpN1!{4?#2TAeC)YuMZ8w?Nsheac#ZRX<&mTE z?snb^*Qo0W$G) z?%u@-@8_up&_@COU-jI$tvweHPOVwvU)SYEagpMGc!TVB!$SYUy11+a-U7Y~a9nnL zWe{#u*KIF>dxgiA{2#i1daiK;<-LBm^3rWTnX`uLlku1L3mJdbv%r4*|L|MjKgfR9a-y4F(EHfOU8ua=KZP#?p9{{OIu|-$cAkAh zH}wN#-)oN!s>gcpM>fv((i1xG#j+E0Ie*OZc3+gb*7ZK3dGF<=?K3>|uPObA@MmA9 zx(4`oc!znuITkAKjJ}%m zp(4Ds|23W{*}>>M?{uf^ka_@p5>vF!zoR&mxJLf8-s6QSd;)z`Z!kP|S=UnaYnxZ} zs|SWp6!((J{|C8PC;*|N1vJ>hQ@G~V^&*}F;XJ!BX zr<}FT{8|T37`%1p6fc%P-=chhU9Tq8$!|DC>*Yblo4vsPy|4Krb0!3E+TaNOW8;gQ zAN_6W_y17+_emW`{U$qa^BUxpBD@l3tk|d1Ty1_$i}Z(o*Tt28cCzrN(v?6@If8Fo ze%;es?ssQZAb$aG!fM*5j+32ICqPeGx`c6o<_R1!=Y_Y4{ImRdPyWU3s{!5&^q2iW zJuh&P)X8jq`-5wZ(ji7K!>b+|3-gvt3G1njGC}L2aO3_Iy>HTI^3>m@C+#PSzleTh z>05jHF45tl&x-o0=^mY5nmK5*8!kDe%C+rt>~l|USsl=SqW^1M+jsoz&zg_FZ^PBY z0l(Yh`orDc*LD2#*>2t4Jmu@D*AWlm&)aX)01RJ^)-U$0uO?oFVD?BYv||l_!sn-peMV^<3}7g>GrO! zL-yGtpcgD%q#UG`0+Bwv z2b90S{-hs)zaHUp2mf2A`6RDFJ@`uHL9^lJ`KTU2@qx$xV;^JvGdtT}^S@o7PXpa? z`e^T3v7e!Nn(TISM?9uD!Gkj*uAt8yeQW8}#S7KvDIH@kKiK@P=GAjtRkuG(_;Jpo zRc^NIai0u_|8dFk_Pz5yefZTAjZG0j;`2_i|@P^v)wK)$1I2iJ};z{w;Yo-V% zjNa)2y+7ckb-(Cm`Q%;8C$NrfEx$11F&aL=$-j)^Gl{#1*HrvZd4A2tIl{qf3Jx9p zWq2OYH?ZSJJN$3Gzy56DrRl>!XS}oYufbjS7d}$D*j~D~zFzplJLLa>pCF#F>m~{M zRl+kx`o!T~g{QRlm(z$?y}?N4KTy6?`Z<$UCVX4~`Q351SA2SPN5d zU+{^2|NqE3?>H-}^Z#F#;))2%vb(?n%hHR8G?6$*&Z-C+8+KzX#ILa=7GkWit-TwJ zC3dl6!(QT?a5lDJi>O#)#g2VZG%GInyP4Dcq8b~jJrxt%EnpY#&0{YVa=qW?g!KLa?3M(;U_8nsrWJ#U$&>P|qu=nd&IivL z>ydSZjvDy|>B-TDAB}HtWx{()ef((c$3rzA)S0Loov8Qa2hAJ#XYzk{Y9ADzNX~0x z^IGGiPvWtE=u>Q_^*2SItiMrOkL-b4_e3V{w zu78A%_{KWl`xk7u`-kgIm;S<(P||qm17f~4|8dn5y}#dj_|(wNeck<$x13ug{xzAK)}ZC>VvVqX1FhmI-!z#z@TsN#Hvn>CM&mwc2yeWn9({TA*&{U84L z!{gTrHm9>^_?Jb@H!up6$bN zdN1qsiC%h@&NEq`oX7B-(*oKtw9mO5^H@py0RZ=$pH_zU4EA5R+XxLjur{-Mn~ z=6Opq_1?|V{q07cMDw(x>!$PksD3GUw3uJ!+r~XZ=X0)00q;^3ep+jO?YXPI*D^Qs z=s2$C!`GVs?QMLeabc3~f276*5AnIXKKtzYm$WClzk2cLZ`N%~r>l>g{?Y4&AGhn4 zO8VUkzpeY7ZP#f!!L3tx{=asc>Uvy1@7L)#?h^Mu&CUL{`*z9df$pC5zklG#iUDC# z;W*j3QkCv2e^2$jRBF?FZP9TY#9z(31$gM;sa8K_Neso{H zlkrom79Hef9g*ILmjhNR+SB^JHJC3hjmWpZA`BA02M) zSbu9i79I&-%-gV^l}dX5J^QcbEgtm#e;QXbe3=@bL8q|d=ugM@yQzzwtKPHH99Pxx zxt8VxdtP&bevcZD*^%ZWn3ss%(LBVSnwO%z+FI9}s`HKv;56+z1KqKz{}$`MJ;RBr z=h8oA{XkWryYjm94N>R3O7WL;=)CH^n*ZvcI;;28JD#yP6dqja+lKcY6~JBMzrnwO z{|YbTegi%~=-jTWQhUF8h0oNd171sfxt{(w={PSsO8gz*NZ`MsZ;d_$`lRkr9as0O z`x*j|Po%DUig>LH_3WHiyWWXU#GYrFr{@sWo#{uj_4|_Yi2WRW71TfA6(JvduIj+2 zY5s{nROgKFiWKeMY^UEn_RrSCY`1+@uUpT}&2Z0mr+*zdcjDtS`vm3lBl#Wmi|IZF z@_ZwGYSf+Sw}p?dxcT6N!Oyg?^@_W~+V-5``D*uAtFWotRkm68y`7cvHGCbhqL*PHSP{*TJ2wx>QIO=af z^|v#Wm#P-t@hScOlxr{`4f5}!l-NcAg@*ZT9R>Z101d%DMkqc8Fz zGz8(UA~;X!kOlf0;gz-X)VYgQ|De7{{*OEg{f%~fLtYQ0Ps)Bj7<=Z6e&?KUv#r16 zGwE@eJ#A0K`vV`2-%|DA1a21dN?>-p?JdL-cm@E58N&DD=Tw8J?h%Lm+;D*C!QnWEb_Xd`rJMJY2s^& z>POJLv?hmX|JA+_uMvNnjk{a;PWS+QcPGpKgZH9;+5WvtzK>AvR-M#8Bpe6(_z{^- z&d2G(yV5md7gmLj!HZcR^mK56!rP-uxCmTY-oGrpNcgS5t-{x__Wo<*9I17(L4c>= z2k}p8-Ff;X?f6m&z5x17;T=^zBWfPBZo0Yl0uHu4-A()NmcpNIzhvy`mu@%OorFGx z;YjrND--c>`oC%3ct;CSd_CIl16-7U^Mw4J1NXb*$JY)-m$SjWRe0YkUGDb@f2F=@k51J>%|HFx(i`_5 zYyQ!V|5kXL;yOGoJpAV^-g@`3K5k&v2e(f6eHPEOr^I2!d`_vvJPgu)mfcsGpB=o7 z`qZ_qMg{Oo;DM+o+kAi%UXp+V!2Zqtq}Qya!|qFZ73%Kzj}_q@;cBEGe~yFk|kcQR4?9rk;z{W0fBqrP>M-oq_r2W+0<^A`T6R1q#e>Gn^4 zef8>;^;hh37;gJx^JpiWPgGnKc^|MRs#D+(z|ZQ%gBQhz?!h72c#hKkJ3CY=FYs8F zNBnns(mhK~ANkJ85zw=W4&Uzw6@E&k)&XFVK6+^D5nM@vm^j9zLX5^In-!y|A}? z?1*vCeYI0v&Z|LvlX1_|y0z;KcGQ3D`+%T0RCcEPtMHKa?`;Wn0QsX)llGSxs$2b5`^@p|o7siR@oq;vWx1}@N__s`e{X4Y#Mkh7!mFXafY4BV z<;v3r_jceKOaC(bIsGW~QM{u*p`)}uerNV7p}q|747zFJ8;|ge?4kKw-}2HnZ;i*h zTa1E&DTf=4=V9`k&kq*K%Ug*zbc3?$BQ>Uj#pkq=l8_-oR7M;{e5Ks zw{*4eBj8``-|OAHj(CtVt_EH}@aXE-_w-rLUkj&W>u+!vy7-X#b@v$Mj(Ts;%ip@G zXU>PI`HbfZ4+gL8w~99keEelSq6vzlxPRi-=~_47K^T9}0#0XH3O=GzeedYc2v--W z%bz2^+s;$%dKL7ntHZsjXO0lw2b~MvOL$1M5BMju{*2e&%yf8%@mA86l~{mJqCE|K3fUHcX9 zagm3!UiS1i;TXj;HZMm6cn#rS2PdX|*>j!Ew9l|!?e8nyaM@LOq|n=iCq?-hdyh&> zlF#Me;6K4vDLi8&4}(94uED$VduC>Ku__GD*5e2Vuk|h&FV*@vZzp&h>c9G~ag-Ea zluG28ScmX}zNI`0I(~M)|KsgMx8@b)Yv9{@PJWeiSflX6o;*x;p61E!A?0JFf9uH; zG0qcZU*LZ^SQ&*eIS;u3UT&|#e`JWr;h{?x~b^-+GD-jS`xuTtu^=*2!R zf2hdw+n0SWQh&2~*wK+kgpYVf`Rm%>d~ux&2_v*lZYbo{|B%-ih5w4+Bw958^0z&H z1$?2WylwWMJ~?!_|4+J#;IFO|{=nvaWY|l6i15ULE5_ftM0il+!x$QfJA}vaCF%Ks zE0eCTy_Zd6a$aHSCHZFI%3hY=Hea9UPr=KH{<8X)J$;kHPx#wS_j%Dedam#^*nN$1 zv(=Z1-t1k%b^lRz_(OeW$Cvdj#D5(3vA8ON*Mhec9j#Yuc4|6$=|p#qj(b&h6Z|>2 zGWa-4ADcfzpSg7HqWaO$jf&U}_(H*H5kGZ5r+L`bkFQD=sDJ4n#)BHV3J^_^x-*mHmr)9$+9#s$jJ-RmJ zCFd!xexbdu{$!17iSROeytdCNwR?;ViRMH2y0}F5PhICd*<gQT4`!!#Fi0WYxyNLc5 z-|5H0{)q?DZy|gGb?paqUU>6#eotNv{lOlZmuAf)JTI4PemBx{6~Ctk*Ltbui@rYT zNqKO!8)-dRezuPz-v_P?omKSPz%OR=*)r7apmj(elj0SBr60J{pJ#Ll|7!l{KJOp1 zB7x5Zd-So^!NIy8;%nmN=QVEO{Im|o%I{HLplOr?M+l#=y(jg&S8=x1mvF0|_W_+~ zbeLJM6J=NF>y!Tzc^x%RAqkT*Xem#KYH&V z98&~;;I$q(-$KRv`^dj${oDGkbK?7_uQ%SN^$H(&o9gPUKX6tP)F;4uLjT_N%70S7 zqCdlq8=m(ciI*s9|MmCi`H45jyRBya`m7s2NY?JFQs0oj&yM#O>hIPlKTIA8|FW^8 zu2VC0p2~o(B7If(Z8pxvP;YTcJX3ij`js?J|94$CJHE{0llPrVhf4gPx$aa^*Ssx3 zf96!h6Xz?ACSUT7*1@A4`?E^$OLPnCD^8S-RK$OV*IN7)aiQj^=jc99jY=y5JUH}c z&DZmyF9MzN3DW)OpAl-_of@Cu2gwB*C(o5WGd*9IC|@I-gjYV?zisyu(SbmBgSy#C z%Da~?oN$Ud1Jp(Vf~d#Q&hhJS3|u8enH|I=`U+PR-a{=zh)QJ+3+L5KclOcqt8O~8R;|1`DScl z6|eMg@RSqx!`EAk^GBK8YaSldhZVsc+vyq{^-TLtKT9c4C!x>eEZGmn58pfb@aSG# zq~|w9aU%R{@T7fa`BC4#aoTh0OXFRaXJ@Q#~a@|3V)U`Rd_j?-Ju9`XN0l z%m00pGCtm4bQSL`#J5vq|F?BBWd9yeoP(|eJcU|^p8Bo&nf-0b2NQpg*Jhu$`KxyH z2io^-^}IF>_!;c?)FX?$Uo{$MYx1(?U#7GEh%*Ms9?f}Y@0Y{EZ<8G_e(CZX7Ib&& z8;bCZqhn4#)>P#)>Gx58NM1*ler&`)-YLVWtxSr2d&JA=6O9bg)pP4+{sVbT=4nczf<$@;>?7m4~+9x6wRIM_>WU9253T1Ish7})2`?!5FWEuO=eC;9D))uzJH+jmhKg5qD5Kfn$$hLN zKBReQSX!u$_SAWnC-iy22MYdVclk}f)F(I@)hY7+Z}Mr>Kj{;-d0Ljx|4Lp896J3; z;AF^iJgR+C`ad~NMsa!0697I3{8aI|<$SB)(lme7A=j(Wb-;~~?;#$4RB^|S!c7@Z z-*;)F{55#+__X^S;9gNa>|1?izc-H!^hwh$%i8_)et58R_pe-n??ZOvcOGDSV@Nm%dAIi`WZviZ7ObLH-rK z3mZqh14l-@-|~p%pXdXjU&xNH3zLO!6kmD#aFHDkk0SU&{80Ev&~dQy40Z5&@1(kf z#_8$nfX`-x>5VT!PwWig1>Q3rKer^~(|tLi9<{gd4tAYU0o-Aczjmxcmv6cG*Wd); zJ&(Oq55ey_dHQ!P`<*l_7%%)Fw?eoPaMkoH{O-Kb^Edr`H+UTViG_O6NGIL<{5{OZ zS@zS|7jBdv3cggl`TqFFE&oJa2)-P<&mKYR(VP975+1(c>F`!1{KD ze=hR?+PqG1;_1=z26s0W{?|y~vihZSd>#8GJXx$m@d^1Bn}7d-=6~z$dw1P+*7{-I zRYSWkxM)>M++gGAXZEk0zbfjp_SZP6H`fMqN|Z11_o=RoZYp|12WTExfB50#Ifa{v zpBHc)L*2jvKOVUB9ddqJ@R`C1CyG*bwaOyD_WeNeA}AMXLhvG5#{ zcNQ| zG5;$Q^52U8{c^<@^xI8QKAb+hn}nw+@J6<5>NXMH>tMq-Y5h%f)t~+CjVXO=!(Cav z@1b;l*8lr`0`D;STJ%-UQyl-uUb_r?acXTi;-On-UUyhG2Va zc=-1jL44ktpBe6TjYqh-cxKjj*3(&?eoZoc_@vLe`Y#iBzL%L^^K^K-RcD@loZb)e zE8;VsK3@4rd+z0aOZy(*H~#lU^tHdIIt#NBTcque-);f7c__==&O7=bXa++u%06^0ilQeyzdJ zFW^V|hrft-^0gb@dhs`J{+Ln+nV{=@C0_g`nnzoIgTl=_?|%3d9}ROnSIzTu^uQl2 z*rh3J_X`I7o!xgCe{c8Enm(ob#(&r+>$~Xb1`b;?x!1@qc)sxf%?o-@_V+8(afSIE z6u_I@qj|C8h&Q`~aVnQSD`-5F*$Fft;64W{saIjAuz!yz zUxs~rPxfzu>cBA?3(ylz3?iL`M3L;5bSe{P*t#x(km%- zN8diTf3Kgl>R0=pI>dobLpS;^Jx6#^)PL@!*M$zA>{)vvp6~ci%_q13#%<%O&GArI z>Nu-Qjn{llaK&+#N)PLKvk&}B>qdFm_=EU{$xqmI+7sayweI`78+AV`bv(S|(h-Q% zYu~cke?@kFn#+e9i1D)N{c(qB|h|&-k_O%g$5&zw+RG zPqeS2kMNb=EBZ}{KeFSSM}<4H_+@qCvOM%UVQCh>e2}nzOV3sJSs50-wsi3W7Y@yN z-fjJLb?ANbzQMC`xYjH42``b2cf$XtQ$XAf-@P4I6U4{9mfivWYX!W(n*aV`GtC3@ zk4}O5Fd{sq(m~bV)xpE9`yG<&$Nok8#m>9T==ADN{X_S{dsC%#IVFHEEeXF54jSI` z((@KKQOCCXTi@Qt=9*9|zHW|hHa)KC;yKi~D%|gczfhenZd$-^HLj%#-I^YzG!wmM%E$oncaW$ zhQZ?I50VK#?fk+cQ-1_z_pzqm&b-@LcK80J*(uv+f#5Kng$awOeK7l>Refcx$;}$yJ-UAO&&?WFX@J{7<9$}R zgD1@nrt>rV_>RsaeY0}j7G6h-KUSvj{OvqugH5(Oa#)a_mZuKARP#-Kpx*AwljpMW z^ZX{ro;2!nxXoXw-fi7+p33iy{oUA5r@DoGA3&Wn+IQ{i&BJnj^h-1k)HCQC+E(Kt z|E#)GB%eG_@z;Li_Im#9eQLs-|9-yH$H_nQ*a`5NM|RBjG#;h#ZkgAK-ckMp-Pjvd z2NHhPqjQCBJ$VrLYPv{!r@D2V*V0P8e|_B*ii18h zf578EY|`nhXQplbRr+2TSMxIAh{=&~wy$@Vvu}^VexJ~|y z_7e|I>CBEe3Hag~iI#C~p&~Gmh!lpVz#n*5CgH`i4{| z@$_xbPg%^THahsi!9jz6hM$nU0ywTu``p|2n_UKl9zTpas`9nrF8kblM1cPg+&X!@ zC7-=~W$)gNZqc3(Uh%iI6a2jqo#2x8O}&3+XPS-(@Rij6)#n)V zI-~N~^#8r9{A+feX7PNM^DTDXe&IOFyGHu{sgLNoIscx0Uztb`&7&8wrQ)9E1-4&c zH@08&^*`%xs|b5!IQ+%QE2sR_Egkb+LjQNO^0&%s!%G=2)cA#0K_6B2xH_;NbzOh& zJljvngJWlL^I`6-f9g97L`Oj4^BtHy}0$iJL+a8<-`Rq47o!qPa z)pcBr`oE}~oGE;t@TOk)SnUJLw2w7}H0eTevBpXk2UXrG`y zH}T{{w{1(>ldCfRf)A5F9MJpviNjZ?;-mDh3YVgOB(1Z`ysub&dm3je{W6}uzWeOD zUVf(^TA0t)RQ-Gr-hvaVfbC(3fq;_se<4srRdX5mj%@c@%EbeI29ugggy|9r3VLG)cdq4-OFvB#eSCn?^%Tz6IcQt>n4(cq6!K0OAl5AcxL{Wgtos=s*l z5&DjXYJWb*)};q`daUA*e=Cj_pPN_S#J{fJPY`d&c=^ZZYuP*xaQiCXV&8k_b$|31 z?Dyr#MB$j=xwhZ?hVL`}{QA%}+rJw^&kxUf`+*+crK5B`bf1N*iMtoB2hOdZ1J{Y( zrF4rt^O9Y!jLQ^nU))#oB7G2lzTVr@G%v!dd-7u9ne*a9i_)Wy3-mmwzfmuNM*=<& zco)HQik~kk9`J@U9pTUg2mjn=`OE3xe!;!MTMBQ$ld8XwcO!31KA!wJe5k}D%M0&i zWq8BB$JJVY-3^ECHxS;EdJcS|;Fum${mJIJG5lKZ@eK2G{0#L6JgM*ENsaK%fJEkVFwUvpA;LGHx^u463@@*6h!OwqVbfDjAJ5{C?}fwa z=Dt&W)BO$Gf59nfoL+HdJWl?+`V-8)HcbQ<@3)t~H$(ij>uLQh)N`}jw->AJxx{Dm-0VDc4jd6YCc;1FeF^mGex$s*^2Bj#JvUodRe^qB<&S(x z`t1W{FV!y|mkWPzvhGuQ-Epq)+2lW!fAZ3m_R2hMPE1e5573@0cxM>;l|6Z z;CBxeZhNP~{_#T!PULBg?-Px8=K0rM)i}PVoAuw%HQgNe{&$qOJ4b-E&{g5+Psa{Aa!ffN(E8ucf7XTL_L_g;nKy0V;N747qnm`iu=^RIczV-NtgmnG zq@x{g(t3l>hII-Kfxd7%-!Sxm%zl*W0_zOE8~Qu!_{Jc7rPg1mBpd^MK>6?B=)gVv zS^n9zmS4$rSO1~>3%FB^yyoA7S5!RWg~!bCf1MTYpv%Gf2Dh&79y~+Uw(+BtkM?(cH6M&q zxG#_1&6lzl=PG{0pDM1u(X2;3|CZ#^j=C%5{s8dl*Xlfr?7WeF0GrpET<_&!)nypJ zba`V%q5e_hsE2@`Lq~;iieEp%-=^#O#fIZbR%iK~AJY4c2O(h{g2#VX#y3KrsvOi**728yxY92Oq|W9>gxmCH1z}6zfTML z?jO=P|EfFyI2zW4@*D9F!j%hO5pDg|xPdmlcujHs{RO%o;?hpSr|G<`M{sQMKIQe` z( zV*F@_`7L!DuS~(IiqAsN4_=fmva`z)bP&}akmIrKx@}1p<&o|C2#4LmPi5U>w|*hK zA^FJdvi_rG>G-S;@)^GI5jq2F+uyJnq}p`V77JeSNF(7<=P?8Rd?a-$*~H>NB1^(%Zsc9k+7g z^i_-M-A%iFx7TKS{hU6z<@)WNcj%nw_s@~P_<`bR_~0*=e@4IOj#_{8v4I2M0R20? z=kV)H6~2Z(YR->78+l;X{V&WP)w-ar)dO8!e~J7^@jyoP;lbPQ!9l*LJUsc`V%>I0 zLSMG6zX4&c;u7*1@V267K>bMm82yNT>^1j2^}7?lPwxD(Tes}i^bq+nC(d65#KYlv>Tib89)xr%|)wuH? z>fC(Wr{zB6EPwK0D*fC@pFR31tUtw-;3@pm@|SGcIvACj z*EaFuZ>@P>rsr8&Z0F&5li&Lx)3>Y%^xd#tg7)!h@jN`J^;V;}eyN@}d{)_bnuY}B zb@U!qIq}owe0}sMSLyv$ycWT0p@Xiv1AL$HH?kk_kHVh?pF?*2<}$C1#l>b1o9o;^ zm3L4a=NmLn6J;OSU*J!;BIC(g-%-ED?ms5KWZ?@h&b_mDudwX=-~1e=_jRuf|9<-$ z-&4O`6FBqEK{!p{D!T}tr=RW{y9It2of7E{`|EW*u8$rI{1SgMyNlif{2aO7D|#vD zRGg-DD;}1(p4r1i!nx^rH8}MFqjTqpW2ncEv^dn}x6CWHW5KR0NwI(GbNBF&gO^iW z@8=1xc&_XgcFt>^!J{MI!AQKPK5gIM;v>)Bp=)RF#gK5E>I}mewcz z+2|6}m&1D^-5@_t&z1KIT_)|z5ncO93(l-Pb-;k|^~IO|wAnUe+^y&KdT*b5JGslX zFA7iPm#a>&RvtcT-n33e2I)iTd%plbGeE_#c-{JRK z|M+35e@5yz@JzyIft`L<@7q|}znOZ^>8D2@_R;&lUUlcAwT`|H_;%n4(LN$wivQtX)Q_Wm z#IygRV>Va&AG-GBy$`bA5}F1srrm(Kc%0D{S2PQ32)gxC_lrK2es$BGTBFY&A$j2K^_2JW%@_$_Eok5C%&0@ne3tZ;39a&leFKQEPn?43-1N~1Uw+d+eYPr450j3USHG&}p|cZDcdpAuzI-dKbM9Y$PZW=c{$BWuTxX$g zDB@3hhhkof{kk>1LF@Dyy@%Ex_M>nK!`+6;H`((m1#o}MWp@}4xVj#y1K}6$oApV2 zoth3-?{L_H>qpeJHMzTVUFm`8K9=M-Q|mjb4V78^(%GRW$vAC1E7C0r`5pRp1}Q(( zEvz;if3)Mfxs$Da?H`iA5B{%O;|8Bu$g4LG38RbGA+M?P!oRyj^H#<|7xJKe!bXKW zI5@#!j_3NZ=9BT9@ccHn9l2!P@I?P#-}Q9g-fr6eo&Rdv2TdX9IQ&eG7teE!Uj(md z_dPJzv$pSJ-L-n&_(2c1o-psYUTw*^!t-trUaB<#pL>JtYtzwbwewX5`j6C~7jNv? zSJ5;n6rWT5+PH294tjsZk6FLsv0VZ~G<3;p+TEF#w zQtN-Mre7f*A$xtOuA5z_Wsti!%kzDeTHj`ktIBxU>cd{jf;6!)?+`nzwp>6tDo=6!twpwjKca` zmdw-f;E2{$-E3p|E$9fd{tVwTHuMwDezcA+{oUqY`6=>Zv829i#;?9oy)WeHs@yS} zf8pW%IV+pmj;V}#k80eJh5qPL=`pjnk^b|0&a9p|HryS3j( zx;EqI^Gdr)79C;xJ<{PFjd7hEBn>J{35GyC`GEH_X% z_e=Je^X6y&+{#g(1-Bxd$oRD357H|#9M>?nk?{D+^Z6s>M@}omm&+6NNwE$!?@Lnk zq3U~Y2i}wMU#an<@2L3C)2Ctg-4i@L=at_uKF}veUy&VO&NHg+l6}v4@_NwMo9nKS z4;L?Q&NrogxA2|yzr~E6X`h+l0qwu&E-cb|AdZG#8hnF|r_#Z1W#5N}mlY4;pQ`W8 z+rJNVKWUwOq`ofcs(APhE|%Y>am174A5y0;;sC@CSZYtD!y3tpOP4%uZvIW)uSMKS z{a5uiPd@yOb)V~e_qIdA%6}~T$E?ZqZm08B|KX}ZC3l$YmH6)>_%3iX$Lalh&FR}sy=M?E$>z0rKoBpY=DC7@ z&vi$^1H*rCi|_<@>wTiX2i&~;TCe`qNIsl8qw)>jcupI`CGz9o4+nSnsr>O*6hA1R z9QRXPGFkqibmzQqGI8+I_4a#saXtApuYMPgUjbf@yn*=UB7BLq-j*cjxn|$X{faNx zdYX<-*lV(b@OawajSR%k;CJZ%g+EJiXJnrxFG9V`&Qld0QQj8+TJg1qmlfT4`j@Hy z{Pm8f`@VYR$I0@0@4Ef^M^>cUyf$g4qt7cj@@kxiJOuok=!b)&Lf`F2#n*M3_i6Ie zO48+qzZ;y~{CVI0{rxjq67uiFwZysTZ2w))^#bwC>3e*jBmSzKr~N(tbju+_Y;x_;_vQPy+C>6c)wj&??H_NC){25hIZvE^xb#WeEfhus(p{Y z(stedpx^ zL)Xo^_qk?9V?YlaeBmV7SzGrj%;;nVE;ZzL~k9Zb}DwEm*~`vCdlbxyb)Pn}sj5E0%@>Hg*R zPyOg#`6Vy@tO%~1`GybPuGcHqv^NTzOj+kCHP|O=pFhy^xxnE zYSy~2>-7u5ZA3op_u;O{C)~w>8&n=L;*XLKeM)B0#WN4a9ZTN`nu=AHez z)^R=Fb9h*7oaMN)5cdso=w08ac*~CaBn8hY`>Xf9lY8HIixl^Mm+YAF@P3%E|CVI` zi0?9;x~E2mY(IN!xI18nO)oorhaCd(q3mT8PQn-CyOR81`eKHLu?74~jZ+_CyiV`k zyY*+dA9m>PI%yo_fx#`?{S9`-c(4Cj{crR=RcQVP26+DL?}rABQ}d$!o$^24q;V*3 z5sg209mU6e#D~zDX8z%zehwaP#>w+~TXqZFp!^3t@9wVXC--sG**?Z=RS1VrA{Z_lNg?O!pJ5BN0sfzFD172u+T#JauFX#Q3NkpD;jvW>4bSy#CGN2G()A{`p?03}@)`)B_6WP1)nr-WgO z6QxV#OAp&TpxbBHsdPsd;=8fL`+5#TwLa_JZ!}Kw=b7KR_{+4n;?Se4zk3n*ysJCT zLzzEotHOL%xj$(>kFxpneF{1m;%O@5Ep415=r7i|+S32id{Q@`(z)T-Gv9hAHNUb) z$Y2XAMmzD{#6fGt%j7Et+wZXy&3}-89~JNGISmaHwa$9#_~p`pA?~(uR)q_+uILj& z2Mitt_&>7a%YJ1lJ_q^#fT^KJfgecsnH&P}{Q-P z`X?fO=q8F=;p+eg1Yg58X8+Qcnr^ILeCFVAea1)B)qxYi|2s$5&DPLPu28N0$?R`0$WAJU7C z9~O>$>X*AdcicJwJj*G1@8M;C{Lvx*8TUj#ccARsrKf2DW? zzl!=0e6f?%*YMMcpPU+3bqgPu{}sWPpbto2AN=X`g%xpM@S4^;@tF8TJXNcdPx)KN zIH+Yz9?yao2e1F;)`vZL*;x5UEkgr*`NE6D;fhPPk$rQtH0j7V>A6;Xr*S-kJNE?O%1~ z_eAQXjsGyaeT4iW)m!!6^bB(pN9eloR@E7av+)14uSM`L7hLxE=5_b~lw4tX=ww>P z2h-On{-#eV*V9m)+W#={_+i_9*PhbHA%8KJ)USk{X8l#D-nx(ccKQ_TeHt6kgCvgD zywL|5-_^QpQyjfq-_f;^J#gqbi=WMdLpxJ`F?D3}30EkOH&F4f@KlT5P#i&D0M8L! zm0YhTyKrlw_{GoGI#i#OAExi<=tx&>5%qfYoyLay_Vb@T+bam)5XpnWCq|wHUK`z4 zq^?gs#^zxp_y(NN#arpUT2{N`ja^=>2!?+i5FW_SZs>dQI;(?B2R=#6I3Cd=0o8 z$O{_WzrYF@#KgLnK> zN8EhN5%R-k2k~Cy{XNsfH;?7|7V|N$>k>>z1eBY*LUzAiq|ja3w0g)Q<@IY zeeLVuukInePn)M@2|Nqn`Qe}8IntLyALGN?2grkggHb(K_K*0gynUUSRt#d6}a|p0Vz4Us#cz^4v+Yw>$mEbYSlnuHF0P)hRsFXKMdN9~;~W z{YT*M(LJ^C)C6$w@NYDWe*-_yj;jpf35oEvQUAD0*Tw&}qc_4jrcPE0HlO%q`!D-((Qk&=g-NX^ zzBgg#VPUoEU+}QQ19PYPiSEkQ-}2gfU^jLb@{3!Y;viofMZRl#c zqaGd(?6u89$)OXXB!XpeW3eT&lh|y zcs2H4JN^LpQsQ#sOUd`aP`VtR{6&TG=ASD6V&iX3 z*DdUaBOSa4@DIUjL;nnZJ^bmzGkn2wiSh5gpL}%p=8OODo3B!EG_=potn z=>Z*K>VNk8NC&Sv`nMZvA7Ay}BOl%J*~e)`mqWIEZi_PR=(GoK`0Wit1NFWI@<)j4 zyX<$vI@>??etMzy?PXd0t=gdzgxzJmk~b9}JvvIVGqb|29sQ2dwhp~3#)&QpJP(^` zozTZ<_gC+f&)0d|62<3nmi!&~Pgn=^qCFm{)J8;{mS&|pr6;dQ2!X}_)gvZ zM4g8|4)nqPBD=jre*IokpL^$=eJkADEhfHp-XFV#ceA?44+(wK@R`7OE4vxRbA_Iv zFXZvdxSzuJa(;KT;#Qll)}*KpRhRQHGfwqKd-{L1ejT`_6e%EpIU;8(O>%Bzt zfZrq?Grykpadh11|84)zhQ}ZBr*5G}_`I7GKcOQBpZ(eDS2i5N04E+okA6-!^`T>@ zd2Zmhd9LF-^3IhucN@uH)ZcmO&iNCpPuYK>=Z0P={lB9Nc*3@{fV*iK;jU3#+va~& zLLUfmJ^RHKva9d_fNw`%>qhnIs2@!0y~h2uV;!J0Frcf1?l%3icKteseaEgnx#mZ z-IUGm?6LEtuK4MBe{FCo_4NN%RK9%HyuqZ57m~?9Y`xGN) z`4#v%rB~+3|7@zf33U$fQ|Wr}y$#9n?)1Odc-oUY`yTkz+|I+@IhPE3q_jzu+tc(2 z6XkzB`C#sc>rqbu$7TQCC(!R<-&ZClDsRMnNWVnuaX_HIlz!Vwl%G3Q`EvNHr7sjW z)IK7AG47^)h2$tzWX>l3$<#}@v>(|19fK)xBAhj`iY z_wxqf1L5V$o=0LN~Ja-RRA&O*QK zpHxRDKZ4zczi`2f(|`D^)4(w8iMGjye%{H=)H=jopleP32)r!yQ1WSo{-c&j0sV3D zclkFzw|I~~-UmC@9h&<%J%=3kL;ae(Xm92F9u)t^Bl=GM#nyd|`cjyn*dRO0f1lP%XBpg{BGJE8CJ08=? zt!yjZz2|~j*Zsixd#&tUO^`k<9C`@)$#IvP~ofmEAszrJe2|d7yM)F zAG~hZ$F=gnQM&ed-?4BOk^UU`819w6E4Wemb%O4bx*9w%%KLcw%ZU$O(R=yYh=1I? zcwDW+{?Ru&LGO#*R~@{MQF*s0-N(4G@tsAUv*uaz+sP?k7-j!Fb?uQ_M+IH&<^hiP zbEgScyuZ$_ttouI6XE%JMScVRt9W7a`k9@-RN77ULwFGXvg+F8A!WBT&K_Z|j)#90ohjaj zCv;tSCdJ!~j$+(Ye5vQke@7=3|4)3YUilv{T}%I^@;x^g|F1XQ!6x^m@K0qBV-)kXk3Q7**@5HD#Lpn$5qym zM&E~V*>P3wQq9A$`ozB!Z=hEl$HQ+(KAd?aAEb4dtYdv^VK=SI%?&pbPgfp0yKb4U zc}wAG)W4(W+sENA+4!mh{ea?oj+Yt!c{)6b^1GsVu_ATF0n)Lv^VB)&Q}my+kK-?s zm;Hy~ix$!EuDrFsL;EK9Q|!eJ${T|pAzy3P9hmD6;`d8G(Zgdd9l@x)ZbWA_9ezd4 zmA@SsY7V>p?yC=}aNo-h;<>MDdE+ww)PMCCXP}$u$*bG-d%CZc2ej{HUb5`Jo(^5X z2eoff4%Hz9v{8Y^_0gp{LSX>o5K1N|3&lofWD6OANAaqB$}Tn z-N{H^^pjq*mJYjkpfi7XT?e19__KYr;(FF)RNv4Y!Vlb*eXbVnsE6Hu(`0vAAwMVn z!t(gmFXR!2l7IJg${&;W0teAg{8jAB>}TYaR0oUd1CQ`mksrnnW!=6dT?z1l;;oI? zQR@HTP~ZchZ%sPok$C)N`G1=#K7pT)btnDAI8OOL@-Yjnu0cPF#}68-xX1K9C%cof z^*1xzQpnpa(R>eBtBJQD0f&32nUHYYqacd*?Ad+WA_lkV*b;?ItpXg-618+Jy z&)e8K9wNI)zv6~^4>X=KPf4BhZf4p%MCEtl&6)?*!6P~aFUj8_ugUvOy_5bz;S06S ztKFuud(wsTHonpB8RI)mOux0xJ(qp22#%#rwfvuzj>_l z^4I8VL2v8@^M@k5w(l15>dO-8F>3tv;r_Lb2VZFSG0GKjxNRx=j_`EBZ$>>`eBpkH z?(3f4&O85xGb-}+al@4NmWLl!rT55hlYSQZ7m@v!J~bN$c_SCPs^8FlpAe>LKRR6X zEW?qH)B31f3;#Tjy1%DR_@?|5@OI26Jll4i8Lnh{o|?Bt*GYYrT~FQo^FPdO(sOT1 zPY_N}dRVc0x5@3z-5cB&S^P61@4Gbrb8t9N^YD%OD_84zp$jiPDG#oKb$C|C{kLU` zJ6zYj%6`{4hlUO0KN|mO*KmvRpeE$)XTM-^Yj?{B={`zfU&T%PTHN7BnH{zBmf!ax zuD3lwhlu!pjQC#~#b>pi@=XH^_PFHe2TpYSY~itcXgt#j#}9W!Ja2Eq-eDc=MElU zc>8F2+Wo_rEH5-5EZp|AZ7%**H@Cj*BsiFocu2Zw{=N7oN_viUg>^DUai z19jm?<1O$jGCut7!R%s%+tK{VguK_`%I6jJ7nUc|bBfn1&tvz$GLder?ic>Qz5yJp z_y8h#GWs3Vzo@^f3&p;NdPhIhEY($u$8Qi^;XdUDm3lk%bH!VgXXL*4`w5D3cDm|_ zqxLiWU zIm*F5VfL^wpr>T^u(uO$b`+0Yo(Eu@^aI_cdAe72zo0)@ni{O{qufW6*}t!oRDB=d z(`7Gh9?E)!1^uIv_!-K48Sop814k=-A@u?A*GBr**w?imdh{achu=szTKb^T`?C34 zE`MrR00%r)$A7InRB_$gUzPvw*eA%xsqfvNt~%}-)00Y;y|U*shi+UO=;wb_`w#m* z`#1G*#qVDFt6p({)>A+9G$Xopre9sI6BhQ%X<8RMIs9z&M%%RCT~w%V<^6#{`8GdY z^AF!w&w?G^TI;YX++SP|adf}uTRV^K;TXSk>9ziA!*|+u)$ifSAEDzz-cx>BR9#Z{ zPd{BZH%R)wmlXEj_Vo07mYhEFot5ccuUc!}N%|>|Q_vqQ_p#U$9UADX zdRBQK`U>pdD?=yCBl#AL(<){-HMuP7|In@tZ{6EA-6aCE+|aFMV_UW$=gO!{ON!U!LCM zp-%ld9=?zV6@SQ&_T-JbobmC}19yHVLH}r__%Kxej87^aqAqfm&O>~IeYbJq|1C?; zkezKFRDI>j)2>ff9P_}L(_2TlRfYX`rsjJ_sF8h?-SzOQNY6(1)s})2eYiOP5nfnu z?lvC$fElh@_R->x5$?HY@>@XGN0;kVg&mZbRW_Px6U4}vb@ zxx#VTzqch-YxQ5=r+UL@8YjGw=q#W^s639Z%lx*!;R@kj#$}1%UXD63`2&qJqU(kp z1bHGGPd`^v@K;ME>1q4kvUjSR+j?7ej9Z!Zzwy2O547)%N9VY&dBP_+;nTo1ljpYU z2?yPBU^uoT&SCx^!$Znj!KZMM<_+C4)`|GmWA$f$dt*x9uI_NdO}W-Ae)v2^|C0H? zMfGUmR6KPW_(G4;I+U)TKT>(|>-3(pPoXERJeEJh?K<_B72Vw^`P<~PE>+(6$wK|B z*4N1RgAMvgi`o8gdi9fb2`54s<8=zaD3HHI;EUN5}~4_*tL6}UCcPvkv8 zr^41ppMb80^w1-9y+gLB$8rN&M=z+llU+58Ltn;_0{=-Y}tj$d%-rCnOnp0X!q7i%1PQs8-nug>+4-jtmoziab8 z%3UgZV&69mH|f0rHvoQ*IFx?cB7UhNRCcr{<@(rf*UX)t*Y2Y_1<;-$w@c55TQa_ohEaeKQfeVB;CS7T;GXe6RiP z9{HEj4Uzpj)>U-G54QZ?HEADfQJ;YDjS-v`csbU8cHO3f!Vw+qVauF=e%37UO7VB> z1L!nSM_KdsF3ToWbaKBIo^))6Z+=Vh;*fxT9lY1%;i(HPP@NK-I{i1)5A?qK{jcl% z$ur%1g-I`V`tE=;tKCEDU))UjIo3x}{}+5;7dJxqGk9v*m+xP^*GqGr+9~pW(9e5@ z<{dvnefW`aQ+L+B7OOh0zjEAb&$Xv}Nb5=aExKR6sKYc;$9D;=4{$&i2$$J>?=^33 zH+Dm3@$#CqQ^uEE6X-|5uc2RQiQ)+Gn)q|zFY!BUoC6&?hSY;JpRwqdNe{eK9Ujp- zqrQ#aaX}ZVv_-J<|4;uKoha3@eA00pm!@kTb`O8nzRr86{oSiR6N~TjD91WQmxy&Q zp0t?SbN1lnro4Ac=`ZuT1>^nuF1a`3A%8yw@7P!N79Ad2f9r-5&suTN8%sY-O47+y z+z?C4EMJ}T$YeL(nw+dWE&VS)75b0RO&*%#6)%?kr;k$g;n?(q;n2_{PK5KY`K`KQs%b9&P*J{2uaLqQ(NZk~k;M=udY$u#%>H4RCdElMpxa`FG z4X(WV+m!wz>Zldk2U#D~Go)j<2wdl81^h>q>#I6C_3*jM_mcm!`x@l_p!iqum&gCB z(REdClz+2D=%IQs_2XjSQ)9p`+4;A0sxL?C-}FE9)OwJvQ`C8EKFjYrerMhXqUR`k z;pyww{vOqL62~3)iye=h*xg;0PCaq-x66~t)3zT~|7cq}L--N)Wj@XRRpos;C9Cs9 z_%W0Rk9l8uc4PnJwIII%&SFpX%fN?*{#z=)LHHZ5dQ`4MOdquLg*^DbNA!0#pWU4J zYWWG0%_oRefj^{hf_)R0xWDztShT9{e?~n;qZ0lVkmTE&Xe7 z)bt^t%Vy`_Ijqoe*GmU{D_ajvVXQm;P7s-2+EG`O%L*C&y@g7+-RyK;Jkxl&zHydP?~S>DHlB<%wJI|Gtv_V;#T? zF5YSS#^X}O(Kg=RZcu^8ZAn_xKkDYlLz0)3-ia4}hWJ$JChVN$q1zJn9dyU+_?ob*=F9k!2RPv) z{MGUU$(QPT#P5Np8vb$m&skT$vGaO(GU3mpF0zUI#wF4_fUmTm*U&t{(T4zTn)9Gb z(IETLY<2BLb?)`=DzO!$a5*U&`Q+2%QR> z|H>d7rQcQS4c#d4;nKlI2PBGD#6POI!Oqj@p4E4B$Izh$=cBxgKTrM)ICaAjewb9$ zEi9lJUF?3$$r3-yjb}wcqZV{LWfN}cagpX8-Evf zu-3QgY4A=*r@99Dx$O8d&f(R9eH`Y-s}5!7YfY8Mj^e3^!fAWz$kf%JQ+`AE=O}yV zSISP;^f<7s(`B_G`>gF9$ctnDw0~()`{0S z(s%Nq>JZ?1&JgbWVy#2j={QsMk7LE#ZSyfK*Iy-HrhJ80ADS0V_J8^m!dq`F`zPGE z-&*`B@WbA(yf6JY>Wi0O*p?7S&$M{jD=!$q<@S-^dqWm~tVk;69JcQt*Qs_#W;_eM z!ve*B;6uUf;!oTpobXQHcHb^pJO0i)Q~cGu zxBFIl^gpR@L%dS$9_+-~Xa8KHY!w zu8Mnp6{dEKJInsrce+n_kkLV(uldzHN7KQa9&BAXC)}6juQ7aGm|t)Qii2BzA9{8i zSJS~^a>sF$oZ_+JVU^||ojA>#zf0?6UfpIJZ|>et)GwK8oRLo(-)u*pJ@>)y+2^vO zT~){HHy!MB-N^iR(eu)LY2A$0{f~34@>45?6E^*ajddT5ZY!%l=JV4gzC0TT|7V`Y zg-$vTc=NG(|Fkc}Df+JdZH;GExJkIsk@|Odt)-Wqzqg&m$36}k-#_zg$_)+}# z!}Ok`7rBYfYwK@nu=SX@cHPgG`gi!Rw$gXI!+l+a;?OTNUpEwRth+jmKMvA$8Nc*~ zyyiJ-p1r*phfI zWO;y3(p4Fbk{^_j7uxn$41tv=1bpO4$1j9u2uYn{Tm}YgPv$Mp5|TFdXKkv z=noz)dxk%Q{e#C@{*5=kc2wx5@fpwQwgLNhq^{dX=gZdN@QJRw>Z#d!d@ITOhOmp% z^>;RJ(}Uv4oCn6nzjskjyL>-fcdD+39-FPZ4W*m2vD>(#J=4P}m9P)geP?QZt6af8 zHXRnK3xB_KRQ|H_HL~> z1ziQ{Ab9oZ<^1>bD-mbF^MbC4bavtl#S_9^N7Z9;-bh=26W|E}5AWf>BF`pX5zRaJ z`X2P1c$?=g;gdoi3OcB@;T`2^^cl_WH-`Ic9&_FZ<=Z254tPa2SN`Q4&Hw$HfAu5B zt7RvYx6wG~1ldEs*8Uqd&iZ{nP2bM!=u_$PBOaXe*DER<`6GCC;4!1G51vb#w@HD1 zg<@W_y#BS`PATAo`-Nhk4t0vU08UZ*O8%H_CXAW%+z>~7p^NgL^c@uW?3N|;(ZSPq zmhzwQ#N~Nh(J??S4+@?o++pdC$L`tWf_Ed1CQ4PbUsAovBX2KGzS5 z!~ELElb<4=0{^6Ngt1uv=n?2M7k^wNk4-&b5B0U2tN0PzM}_JDw*Gp^?(_`sCmpZ6 zy8U}^2mbz0<+075tadvqzYhNic!7siXBkkOf3NXtoz*#X6yYt?{-}RHIQIjK`|q6a zl;KYk!$Ge~p3V9}Ue5cZ=zHS1Z>@RA>jH{viu2i)s6L_h5`OFcu2%tvf<8bg%u^kB zmj_RJ`0!g-q_1avu3I$L=0%{nfj(gmXPl_!r>_B6%C?zgmxxJhXUD zJoy*#Gv@Zs#&xip&~aZa&DMKzaJWML=S#AKt200HhjfVHqf_{z;MciF&wrlc?)y}~ z<$ba1{jaV=-+uOcId7sq9vfe|e^$8M__Fo~%RdZppBDNGb3MmI`Sr;AX4h*=u)pv% z*zYCB^V4VCL^!4Gm4BP9ybt>?d0^r4W2*gnJME+Np~E}R@m;iU!?U4%*|QISWao*^ zx-Pt_=rO5JG{=F+-|$Pd&%LXCk9mLDzDN8H`k=vk3fHW4Fe>2Rz-xci{N1{Zxw4~!MbEJmH4m?89#miPFKQm{l^+5B+Xd#o!5`_jmjCu`!9US^TE_EJ z&jjaed>A$0!=v^QZ{w+=-mCc<8pyx1|0?h5;Tyw#h@UE|z8-hpWk#o0cdBxG|LWM) zyY0PhP~U6J_fz#@fm5Y#1bqtlUGlyV)otmUhBvhIoYk+<^R@c`-&+~lly9Wo-b3|V z>$ARiDeQa=InQZlt*c`H@1T7DJxKfSi(T%XwDmI|CG_{%dC(6imEe0) zKQ;Zrks<9PI;#G4pr+CJ{t@94{ghXDRR_#Nd}c=0QH_$pYhHb3a=GzQ`3 z;*35IKHE6riNx$+z3XcDAw56di`Mia;T`b@hzsyj?fi`ne-Qh3rSitYH~HP=r`hob z>v_)&qZNPm(|)_d;UkV+ddGV1e)T2U@x;+bIpvEyeAn=rQD*@UB|a}N{I6%*U82KT&>|r@joX4!$IK$g}Y`9_RMxnExy1qltg9Tbm2l2tOS5 zkGgYqo^rmbkVk4fI`on~0?%RdHQYU+`xkB~f)^35i@#8DE9?3q^&5PwekI|7eF6X6 zynz#bIKsErRrVI1NqFSJQHuvDg6p0!@0BUl3kNy%C+78X#v?p&%$-VN z=pp{A>^jY3-0_NM;NK9=J4y#Ap83et8?HR{yOjP*_(vJfTs@Dot$!_fKI>b%JMC(I zoCE)Sk)9)b&+v=>Rr4UcO^7|rur10Of|AC{P zY3nZx)bq6Owa)U9jSgNC@N)3>eIk1Z9>dmCjrJGvbOXaRiYu`LTL|B7$M<)_Z(|P~ z`ZL0NNA%r<>-1iE2=#Ah9>xXsOFM6)!~UWF1Fl>9krxk6yj^yIJ}KoX;!|(EP`9e3 zS6C^(VuI`;{ZMn?|4-wJhW7NRtq*v4y_4J0)6`c9|L07NQ+h4Bzu^HLfS#)V+IVNV zvpU+t=GoxcBL0W?i9K~;c!Kalvh&P8E@&Owyp;Q1H2Um=$&v(~5*zQ56rBO?8@#moN~8Mv z;ydbhUZQa<*SO9z-pKfb_TTKhE#m`z0^<-~0i9?+P4~aFW~Zj3mrkJ%Auf=eLvN41 z0^+Sbh3}@1k>|<2W%so*6&@A;TlZfb4sdJ!z3w5y-JMxIxwo603A^2$?xZ>gym-{H zh_~VW2fz4~;@^SVZ?!Myyqxrz+^W6~&bzm+qxwp&Cq*6>p3kw$Yn&>c2m0H!-gG}> zbNtnD!bwSQ5#8JW;lW<9ICP})DRY&7vGv&3p=&ICHvfU``yL!sh4Os!)mMc-7&|`q zQs-Q+TYRG)UQKv(W)<){qr$I+oBBd^nmt}O{1v>Tx-WmI_)pLmFX%C~j0)V(82NuS z!j;u(+^j!vW#|E-!@S39`}7I6hG$rjT$p`!3gAGfr|UcVV!1ygR-qwA&pIP}B{J#bA2jIbST7T5F z2ikW}U5)dI-!m>%9*+FQXxTOJq3B7SsP!kF;3)lf{}=IZpsOQZk%+wkSBpNe^%H%W zuwNf7KTLX*5&O5s>`?qzc8L8BU17VAmeg>k1Ki|Hr(#t~zq0*%T|n2+zPEGTh<|_| zCi~~nRXagAEL~UcV|R4T^8T;vyv_aHb9zrcl^unzNjSGCUE}zn@F4b#A`x)4DJx%MT8A(qE2S z2+z@9>&E7(0Upl0zmt7g^*XQXXk9kqpQ69)(RXJ3fv=FgjMUj~lAR@<1m|nx7#jXk z$kSBH|7uH!C#R`TioD65oBVakJ$F`z8C%W#^;tK5p4@fywpYEr+c4KC|B}8Z^`S-b z{_t3;AJ(6zeGpz@)&Y4(-nTQ9uP^e%s4urP#9glE2j3dHr|9e2eRc`<*)wb(vEgt z%{x2ru39HrXT!op8bAHq)RB3P^hYSZ&iMkdf8=5A?&yz}cGSAsIgszPc^*YR+OFR` zIvl-L|B?Fg9h4vT>U;8e|B>_@;iI(UyX3mk==qX&w|}qC`$_%Z!Z zb-&CWzB(+ts(l|^JUAEnee@oo|B>q?!khd%>TO%D9(P|$RRG5_xzPXCp!Hf8mg@R1 zs$TcB{J~)bezR^lzw#g9*OPrEPxiF-3)Ue#L-z@PbiIy$K*zxwieE89lDxmvx+}yHaPh``X5V zw<+RlMu6w={M{_o-x&XiT7U3rDj(x7RQ$_086V@d>+T%r5B$pTobk}?`A%@Z-1pQ& zZX3MSTKL0$dY?yx+5-N8ep>iWR;J{!$xnbkLDvA>eZBm7?6~wvB7d(ujozD~=%K~w z+K1N42gFZ=hk*C=YsHu3x7ZKxw{^Uyzu`#RzZZe0w|QEYz-vN29si4Zy?A3Iyc^2v zMEa1a+tBB8it;ND3%4?S_g|g0q#1kPnq=2)**LUaIQ^K~&l`3B{X+J8)5M(D5&qe+ z%9F9ri|_aU<3*r<8$Z39=6~z$dw1P+*7{+CFBZo0HfVCf_3FAj*Y-rZRo>=hn2o1- zs3UI+ens=(#iNV=9bZu%V0;6H8>gg-E)3^*5h^ZU#UZBz2|u^@Iu18<)@r@Xq>LxrAu$&oi*oBx^oqIeEHd06!8(X~T= z+Q}~me=VJ>XzOxh&Myi7pFP*gTn9|~XT2v&67i|{xw6aRgYhFX{=DUh@sf`Tdn(U? zjvICnJuY<5sDGRzKZtq(x)JKXkJM}CD-TDWL;M+@{gu4_?-if#tK;cMga-y)H}#+8 zbpZNv@dwduBabH>Wjsaa75`3DUMjKR`8M9^gsRbMZV^>ND^dVK?lv&I$j9J+$|<1Wvum86K`q`1by8 zBk_7jXU(5IW8~kLom~}g;yd{0V;9nQ0U(LqTp6YuP ze<*f7*2*uXE@#KXD_9rE%ky52(D6n6J>L6)0p3|V&mecb@=;BNIy!lS3O7mTgWr_v ziAPrJrYc4)g~(uXib*RRrNt&OwHj|(5$?5uyTA&klP z&yj)mV~w6C=LZ+XbF=$uOL(p`wO;IZ@z0>wQ4(KnIj%WH`2stR|8M7dsGq~~(ZjVK z`-Mw|&-^;$k8DZB6ByCisM!6PqjukRia$^92l<;8#SxdvZ-5_9JmPT^<(<{H?5TV3 zet`q95mvZFyz=)5FA2XQx;}Xya`p#30=$Q}>UjD$#cS^Av$peh3FyYauPB^jM8^}J zM(MD7@!!S+3jLlv^qiL$`IyUmy4iKg_4<=EpXxhL&sF}}`so_ny^8zPFCEDX9P!Yt zGp{?Wl8`H6U3J5`=d7=F!uphkxFso%WDns*)`X8d3UBJsJt_!4 zC>@;$9;a}h)f1+RXTh#FKY`y}Iz17-_6F5$?6}GxK9Q(AQ-sGIKEinq+xhMIKFmWr zT6rn)!P`8P-cRa9c6?vrYk#qDg5p8<8z}GBWc85dzbgN2f7jbF{+s3ZZMf=s&@?vO zC%fBd)pfUN9oH%y;DN$n31^dVU!!$h^+Pnv4uh?S)eb!t_|fsx;6JeO6$<~e{!~5x zDhD3T{(Y&%PlfK`GL5rN<0q~dsW_kU%(%zqd5_#Yl=S_?e{bjQm%O#qBjYoFZ zH=wI(e(V@`(=D^w-*ID?aGvJTj?dQftWWL=t!u0k)MxI~I*4w8-p82le<`O=Bg)T< z;{EhX6c39}Hom8Nh1RQxzJ`sfH91iECEi0F?~hSE2p%RozE3z`$Af42KsZOn$$AG* zH+b5-p4R*#>#?pIrO%P+dfD}aJ1gmR;7{D2=2<>3zO2t@)BRYyzwB2f{f60^|IX@j z+3W7xXCE|ZPypY3o$}%Il?f*t;ek;;f%Q=PGV5VOD7W=c_K5${Qe0{LwEA8AcIb>T{rJ1W_^k#{qjU4}NB@cN7ye55nRYz5ptkJ! zTA#;niS@%RD~?O~1H0;ZjJ40g@W48H&%1BG@W6%DL2*Nzz0K~A?R&|O33aU(G*0|g z;fOqbB7GD#p7C0L>|3Ff|FHiDKX-MI9Y*^d|FJxb%i-SIid$)&wBy)U+mah}|I7pZ zL_f+-@cX%L9!FZ{xbJJV9%GN~a(&GB*CQQx5&Aa^kK6i;u1aU|SruMdb$?u-b-%qk zUj1sS7y52m@2j3nk8iedmW2bf-b?2s=HJKG7flD`ljH&6TG{`u zS#=*O^%14}?q_|&);Hhv!T1-ug`?DG3EyWn|L@p1$!Ds55b1~bG0ztvdz>85qq$+# z>z4GjZM*|qp67BvP+tvp8ZOA~vn|Oq%>(lzL);Fw|Pch?C&wlFpBRuJN=@&T0HMne$88H_tAAFu@ME-kHk(oxa`WuU#;!Em417 zOzrT)zJWLwyqIt`W(V^c-G9Zq0UwIZ&nQP7n>xj&`8t=UUUZ@QDd_*A-%l%ij%LGe>hw5yKpaY2kmbIUo9{1aa3z^?essp z6Ki_AB{O%s^w8yN$bMTB`Vi^Mrf*MqOFvI`NS%v5zNoz0kMfiLVR@iP-P7)?yHh`( zr?1a+r78kAVf9DqJuKI_`n!)*-=xkc{(&g|D;>XWfOliD>T5;yP0~lnx-?65%$v0? zfJgMI_nl^SK6EhSBf2lG&v7s1xt6ZE;QVEyhG)E*@HeQA;aQL9OSAQF0DiDPN&DtF z@c@EPD%@}TS2}M^)5A6DN9-v667(4NR^I#(<)yhU{PVS{lY=XwU)c1sY8-m;b{*Au z8iXS#^l|D_mz`BO@Bmy_I;Hye0{w{b&)QGvn+J!{a+mFEM;_4gx(RhFi&tNF?!E1& zE=>w4f7Oz#AGTb$P_vsc4xTJ{uk81hggV2nTJJ9w?qF@3&&)3sf1Y$ks>v^T_-?_e z>iiy@v0Z0y=#uN#uM3NWGfV${9{a^-Ru^k%blBnl+CO#b^hxJO>RRx?b`Y*%Gx23J z{(orv;LBMD#VZiW-(>#uJe$vf-)z6Q;;uoi&Gc;NWNYa5;LVaLnw{6gnBM{$t&Ey4GB-V=EB(MP3EE=+PY z&&??5IT_wXdFVj_e5LAsezx*?(lycgM18L&%#wfqjmCe0{48)EHHK@~d<_iKR4<(^ zym*W3&veEpsx?Ss&Cj(d0Ft-@X)}6guh_VaUlG5k^T(&qu{k;|A5zD@ln+E zBfN$aRo7PEWHa&d1g&e}4_=Wy+WS=#sFOC!?qqL~d@}lI)rvphr(Iw8OK_6nANANH zyhGTl`rxAQNm2NEJ(rf^f!crby65wX;%$xJ%5Km-Ut9L~oPI~wQ2dthMeV=X;|KC% zWPfq0{(e8@d2W}VD*j}6%HiYnS|76as=@k~iVwf~`iwh!4s+X$|6OOj!cp%ho={%d z!|Qm0>~5ys2b-VyMe^$Qy|;tcwn=s31;Pnye&PW+f2D`J@!JQEUH8@D!T2{mErL^r z{|bIT@gjP?SDy8j`?l-16xTJp2|Tb~cp={){4~5S_yb>Qd>?7NKPxXroFYCK-z-1& z9vyei>7%~baQ{WkgXOPexb+Wh{{`Rjiu|X7;!61c;fc6c`!DO?_N(E<>8};3#3x&d~hgXWP7Va`emWtoQtl8*UvjtM}RtJU;b0^2rw~&k6qEQ}rXBul0}m z4f>q-$RB!5pLX3kC%)-SpT~Z0OUA12{BG5cC#K(*W%yxqH>hhLtabWKU7!5<8L~^& zA>!W318Y4**I4gsuK@4tNjW<#6gJkpY^}P+8$bW&@hiWW5Z2Q35TBY~zSD~NHRE>9 z_)zFSherp#Bydag1vbj>gWtAbc+cj4%bqTgeXXIoHuW_4!_gh3UzK_^s%o+jFXM+@Ek~nn#!UDTmrT#&fm5 zz}qFin7&;4)V+8TWUnp7`z=m^FFS(o+e7#Bl;RT`PiOavzSFlOI|Fa#>2tH+`+>`g zhOh78Hcahojc{$c4!)YGU(&08J)$F{c*|d+IE*+(`i`21LJ%I(Z>#abpOWQW(t!{c z7lPuE2>$5et7^L3cF|V}eh>bO`Vu_x3Vxy8*ZP6yp?(oB98CoOp}yBh978|pBbx7- z#aSQMKGY#7?uhWV(Jx0`TewRvKC;O7qVhH5Z?Maklut%Sj6C28d(64;>>I0HwertB zw~e1IeYC#=cL?tW=Ocb(--TDe?tdGX=i}S~zc8*Re*(QR>HB~;kHn#No-&um$yJB{ zsPFP^>9T#Ux{QveJ}LVx58&m&!-12t;};jf2P-a#&!qK_XEWXn!=Zj!1Rn{X)H7N~ z$>Wf>58fSHfe!M>!PZ|8rr)ymTk7)Nb z(&c$%M+Wek@NeKRP88meK2rKUzv%h#=`+SG%5>tM9`elhv)>=$$k#L}9|j&k>mBis z2cLGg@`vz+fxi;oKY~9{U9uj%kNj#ihs9Pd`KLFo>l&R zoD|9wU#Iia)XObdHO?#XrsF3Qk3QCW4GHKk+PuQoP~+%Vz+aj7yv1wq=GpNr z$&ree$@`%PB0Lh$Gv?RJQQ?EmTb+K&hMj`xFML;=pYmC*ndK4ld}_TMd>QmNz_$l( z!p2i@Gn5CWoU*nKt)b;KEphrDqA@VjeW_%-qBAA`qqn)(g@BfHdo?ctq+ zzwizD4~@0+*X=Rl>-uBPm{r%U*N|{tx9fI0>yWPDv0?k4bn7lXgY*Hs;!xjJ@ilgt zezsJF&E;3Y%V_^znf0;J7eSl|f8r>e??23&{6DQLy3e+vbnfE%x{jS69NPRMcrNnl z;>FMSK&2-W#djX1Gh2_|GxMUpL!P5oU#rJ2{7L-dV>R#eF}@*O*;2*z>er_4E8aij zxyn0#c&CW|jquB{XRc3w4JZ9De}w$4Hm%FV_38`P`%n|WKa(f7c_|C|KIT47d`H-O z9IN^p>$&({>1T|2U6j7=AdQE(Z@I?xo$Tyqn-}8iSSLHY(ELUJj*dH8fA@^+Px-2- zJbwMCpN74${@69cL9yTTZI0+0ru|U=Q=hqm!)J=4iATy;wZo>a$^&-|TgX1{QT~?q z3jTcczxW@O_aXm)&hHH6S?EJ0-$DI@=eJ1q%6osV{*J!ATVw~=hdq~pZfo%+DX*8| z%*DUwc`v}xZKnG~FZf5eKOiYTsj?@CR(X zo!zVIUxaUfK5+Z@Z;I$3g1=WkbR>U8A1;02@GrHOAKmz-t+(iG;Kaz1=R- zk6Ci;f7kARV_Dc#abu3>p`l+;ek3Zdp>?ay;U^KVfFBl)*Mn=UvU+YkxDxV@`zX%U zc|7$bcw*2cLXU&GdA;VBde{u{<1!A$MgKbdq5bUde3Nuqu2vjALwP9W4Sb{GWpo67 zvv@h88%-bo$I2(XsP`T|)0=Jn>$AG0{9w~xs0`wf^zf$I^Bo(=cTg8II~?qC`jaI* z4|;v<3#@TlAO((~->$P1F+df)0=p1x}QzmK)vvHpoC!B5ls z+D>{BeKe2g{V6XR=P4g(_qWXI2J?o5on(K?GkWsX^|nsL+54^k!i-lcL;sX_zdd9j){ssSyI3}pB_n_7r@v21f-O?%Y(x1tA zQ>gp>S9!R@gm;JM%kI0RXQlebc&&rNp+)71;_g}p(U+30lviJyC$DV%RD%Ql7j^JQ zZQLHcI{J|8`l@%8^bFaTpHO}p{|!D7{O%jnmn7aobc&<&apJR@r&{&RgR@2V=^c9p|X~(xFy!X8CpDV6E-0UgCq1f?*19?&VJ~G2&Zz(?*J|XcfM6Z5Y@o4+^ zb-(D#vCqNhu(9lMGkecHI&AN0AFEn#^FGst{E%RO;9Z4l^p`5Xc8%7d|JphdbI-ld z#YwjezQlN^)*<+EghPqiFFbuo^!>tjGv{O5f2mt2KkTJ579Y^K_sZ?RH4c3+)?=H` zx&ZH@^jPB=PnP>RXHzDjimdxWx72eWg458_kd<(h0B>gnr+_lo|0_E-Ec zaLCI0cz6owt72b&Uv+_og*MMxNB!Q~PY)M=e_}ctxdHAe;qxDYl#z+UBDe-7J&vV9y2W2jNc#v7SJ}&m_^1yoVvEIuGvJ3J* zcAoO^qwpcDYv?J0ivqX%pyCqj?rrJtES%=I9Xr0>J$(JCmrZY6Cmf~cr@oUoMRsR= zyOm){pWk)g2D(mZ9k_QmR>#BhMLjK#L)U&&(qVj1I2{{*KS!ShcnNe_;oD=L;j?Md zzLuZQF%F#fYB*@&G+UFibJuMts?Wyf`%USC=@P(?za_sye5k%cIMSnj4||`T6ejO~ z{yS~^ZQ;P7)89iMByj=1zo2~*oRiH%WtLaRPv*H#)cogoA`6`r7gjjc`#jf&cgW6L zo#|BkRlEoGd!G!~Zr{O477Ef`j=!qzqIl4w(}g`!$8&yA z>!8`)7`H(7nDPN!H`2ie1&*cQ2IC(FK>v_MG7mum^Z9XAjkEvVy;if_BQDmG?>3tE;b5uS$il4+NY^uD$wdcOV$<(Xg0%|l;z zvVLEvac-{ueEftf^?jNASNfWx=GSJR6ldn6^_=M=wsmld>A_8z95$7HU89bltIw~n2lGdpFV^@q|4};Inf=*)REM#e{}Gzc zTh@5$kxkp^18ggzA7#f6Bwp5e+7k7VqigKp#im~_zfREKU*_=B?Yw=mcunJo^kuS7 zb3WDy`a+(6aEA>mckAtrzO?p{!Upq;BiH?T$}dk;>wWKOpQXIG@_U|qgz|!MwC*1r zO>j+9p>Ert`Ta!xwQwTwKKV!RQNo)$Nq8dSe)vG`zB_50fADe&x0d0i&`Ty> zeoX5P{lCP^!d*n-jKdWV-m5qpUIgWh{cy!|;9QjV*ZWr!hARIDZfv6FV~O&$(mfNewW0ua@dV>LuaZ$f`SK}tWgqIHftJ5^zHV|4J z`{^V9-lbahH&1n}rhyLp5_m26L3_v!RgZ~VDh^yv^S)4i64xWo1JCOlvd4X8hvZpa z(7cdex=eX>@|j=j@5mdNU9J;UN6>pd*nyjZ{{S5X`p;DtF#9R-BS{Zkf8R5JuT%cR zi*G8zAELaR9Y3!&2(M}9Yw8)qLm8LJ{x;COtgU$x|Fb8r+i+XI=EG*M8T6h+`aoWh z9ol`iWPG&X_;`Ot>UqE~3=a|O5dCxHL&0mzQJe*zEBVnm%8RNm935m29*I0H_#kj! z;F?y~-v&A}Ybk8T&1yg1|9HyTX`Z~Eygc}?BmeT@PrDtp zGEqIi!*iHkw`q8|OL;QzS@xW&95^>{4p(TNg}?CC%0FNHiN(K{D*w#$J3w*n%gPtS zOGcjx_=OX4`HB$%9c=8%#yQ6AVfN?setPAx{R?{k`fGiCU-bg|J>iW~e%pidBVHFy zEVBNQH=qsz57DoR`=_Z6@`J_y@FisaXTD#M__qu3vfi)S45xHfuKx(UL1kbcq_0K% z!~WcypR+XU|7F~)yZ8axe?4(eQFixY+V9)Vohd%8!*4YHQ*?gNGl&1+KhniDo!rsE z{PUvQNcep8s4i1{k>~d*#b@b%b0KF5;&4*lWqThPxA-{`qHJ3$|2uv;xY z^5^8%+t!5h3MZ%g?CzFZe5ddDZKHzp&^&*4ulxY`FZ5nze|KqaTq}y7D8GZsUS}wJU%sRDsYGxpyx)`c{-*YK=2TZDdz|!pJ4pSG?jzYBdE@(K5Adq-`{TLs zSA+^_fA#$Oq3mi@v%ut4#hcJ$VpEse-|WqT;%g5+f;t|@+kI7M{blyO><@m-^as|T zUSW*JH%Rx z!a^aRuP8YBbr@HwlX$}rm%hG3h6an9yE?_ou}R~cqj*{K;0tPc1?Z5uzY+P zg=f-xH86mKRoza%Q!nTq$RB*EI*g8>$@jI{MBwRD43b zqW+XPQuSN-*~nMFBfocy-Iq`CpBIjGHR?~IpAK9?cfF6&5%H|Y;85*3mpgEd_PvaG z@e^};H!a1zx&wn=5>JH^B%;-@weyh zS@i9d-Gk}A4RZfV)<0$BlKx?Jz8l479=yeuvd2o{yPuH#v0u;7`;Xo|`JPF#!-1N2 z`eSS!svWvv^hxpDmG6k@aZO|B8_Dn-1J!4W-V<>peNt!WeHXuqe?sp)b=`{sT7`Ea-q}%g z()r@GI9b;R=K-!saW#E8QSoEkMgEK8V|$*3VPR?Gt>yQ8G|ZU}NV_o9_yCKFlRbGH zo9{Yzhn^FkdkCkbIN5^}WB;v{-6^l;JF4D#x7GpapV)Xx{H#x_P71H7)yIcA@+LXG zt5Uubo`34U|I|FQPSDS#xYB>2`TbsXHJjsosh z@qWf@LA_md@XY?$m(f96ZoC#Y?gBdDW$tF>JK#eiueeQGpIDg8d}Hp^S1(*%oRRu# zHx$9cO9vu8s`YI!7e8dx?al*q{9=2BBK6>N2Zp_D( z{T2UKxL;+r)q3ygi@7|<*E>b)^w^C5AHI3`0F=-7;F`#1pr<-TeIE3qf%60Zto)qs zCmy4J59_q?zxNyx=KTJ-u)@JZEZqnXFShtP;vREunDKGP>R_L>F7ta=i$BJ$s#{U& zr?=;@4S36}e^h#^9vwF6i$rvw$@iHaT_ybq{xi)d`-5~y^qiP?;;YVqK6dr;g?f8D~6Z!ME%m1A%95uYe@Z{L>rMN=zulV@s5A^h1 zl6SM?w|3u%cLN>bO~j`G|AG2@bYJ5GeInJ;-=;qZ{$T0G#7A{s=memDWcD{Opug~X zk29-YA6M(t=jPEHpx^DGhRqi>ckPwMPw>&*rRN21?IwF}Hg8S42l!vU5+4ly`e$12 z#TSt2y`Z-%9nW~)!>_;l>ZDNtJhk{$;`zdZu|J3hM$e0UKuv(R2L6rRwSGuvL&sOT zjg4nD(oY1=fWG|(;}vNhG^?rh>ZjgM9>1^Vrn3+IwYcN{i@UeqyGxiXJe>3e^_&Je z>SOfB*z+C{;5%1+D54*ZKPMd&-*S`fQ}%cL!zSW`ovyeNyGC!xbf-$ZgXw?$Lx&vy z#^CUS`H?ohQr#gvtfYr-pS!@95|@jAgTAtR#g|?o{tfV__&wKa|2d&btYcmKIa|9m=srMgb~Ss3o@ zv%mXI`BwX0<>t%oSwG;*7^wA*{4;$IS{E}rJyv;Fz4!XP+_9c=2{-a zXF9D~N5zK})mIkL4^dxsMEAqaQ<3$*ZL0T9=PyuifXANxU-1}u*1MJ8@44j7rAv#y zef-F0H-GtMGDq_dUlDy-@JO|udD5bnD_=~6Tgmv1v`%O1Wx3{)d@}Q?eo3thn>z02 zSn+IWoSyX$omKP!7O2i?_o?@_Q05jXzp6eYPrY<^%|G*T{iKfL;}e;EUEH z@1%MUI0Nv{`9A1Q?tIImYF>wsr|>QEQ>4$We;-W0v)-FNj(){0HO|-N$HJ$^{)>*c z&BJ!#uAKk4o0Fb}$4{hgDxH{&&k9}e_7yjE8`pJZg8p>tX&+y5`7O^U=nsNlgkN&r zZi_d*^oaHjzRI%ZO?q5)%v%Y1I*b#&DtL7lYd*nq+4y&K=myyLsbOvPv$M{tPdT0; z+&*>!uH60(-cIl|L!Iy+5uOlq>NYu~`Hd65T{B=O=Yvnc(VE)*f(ap zZu`aR{lAAR4~gC7)~%+s&@YMLA8gzM-N;nO=Er1a%0s>=nYr^zFLk?gMWX9Q`rqc6 z4r)C(ck)m4D^YK-^Okg8wJ+QEb}rYq+cXTlHQ66}Fat9lLG;b8nzKu%QCIeNtMzw# z`gZf{$w=2;{lAQpycm9k_TwmiJ)KWgD+OvsWj0Ts{0<=+M)r)2ce#EaidneWc`F`;$kF#69v0;}sVT z*!JEZtHSZOUwh8YZ?<<+U;p#iBmURX(I+MSYLBj<>Lytq(?N>=4^v)^ycGC*{8jL$ z_lv*5?C=l#)$_`8&?hCFa0Cxx$9DvZ;ao!!0x-AejV^c@XpaMe4y|PTPshs zQn(xNHmYkxbdBEB{+nO_O8&k0meiNGT0hF-q@j2Dfo<*nRqXToN8etK{z&NvMe?BX z%j0Tz9#7tq=aTE=C@fCUhm{?8^-0nH;@?m`hJNZK?3yH zJsti2;Mo}8e%e3mxQeVEKptMtH8#i|>4OEQD1BVNUWcK_pS|$gB6`8t9sTlJ7d-uZ z^vj8dJs7P zyD6{!sm`mqf$!33-4#t;s@=V>A2hV>&SeRFPw)wnPq*u}3*dOjW1+`H9~603a69yU zfa5wu{X6tKy`#9t&fh7_O!2H0p^Nk|FBv>z!c$vxaPSY2PqgEE!_(!lKl*y$jibLn z*Uj>-@Fi2XeMIXYymfZ|&H;QFxV}3-Ij-BjACC#bOT~P@PtQPKH~tLqufAt_*-I1` zizgxO%z7gpt*_;$KB?#RW|QH{z~S^EpCbI*G{q?yFHej4Mau8QPvkd?FRLE>T#M=m z1>wg=>w5TUSE}#KYkYc7;!5=|lh=iZ?IihW@VN=U7Bvr%K4tnsZJvi^>mPWOj%N-y zwc+gXnGXD^%Ezb2&l~R^P2+`kig%>(!V|^&Q=afIt?##Kq{Z1K{o5;YaRB(}5>LPK z-T341ir}ZioA{yX(dze#XVJajjP66 zzw2tG|8;Wc5~N?7sx-cS0ewB?v*UQhH{{iuwGL3%R{uTzrzft0kJ@y4OY4*D@gB27 z%|mBhcY+&{(MPfn9X9_<{F(SMywBeXH=wxD-z)rx&3ml__rZFHovHrepAg^B>N?ou z^{_v!$G(^9+Ua`GagsB8^kF@#XIT8+G(z*-KS(#zelPKU*|?}X)CTzO;hk6hAi_&a zUJN~GaQyI++$a2%c(&D_QkT~oE#V05y6v$yjR!rD+E6RLH}X5uo%G}x@pD)whiM)* zkiCj`JHiWpOS%qzTa2k4b`1KS{NMV6{X%=g$$4}LZM^F^aPHJiz#G$-c9iP%@P5eu z&2$tMr)S?6%Ku>f2j7COBD@?|>AbV#@6*2{|0SY-iw?Hp0x#T9WFLp$=XG5dUC6U6 zpBAZqpm%+;@@)EdFI~%+)Lqf%%D>bF;{hJ!W~%>plIm#KpRJ4Axih3Am)G^|jm{?c zR@p(h10O;CReYF{^<42^yj1(?1Dcm4KmTz9y$7tzhX1M!)Dv^{&!)9AeNXfr?YYlS z$cvt!`S?tE^@HYpde4kxWs>5|YTCKsHV@63w!@nWir3W9X_}44{t@-Vh;XUzZ;p>GD>1@sC z0{P?MgN3)%c`Cv`Ro8n)^A7%5{qR1Ae=h0x?xo|U1Lar8;nF94pYDsk9&peLCcg0O zw5R%I_*3<5MB)#wYx6vWb%uV~XunU^?-lMB>6(~bj0m=W4tHm0{_}N&0{TsnaT3RX zJ036G2z_ewY1nnQvFBbG@0JP|Y`>GwYE7_5i#saZ$W%Wz(;Hf}5(r+kG~TvgcD|%A5alvUP5r28P}AJnZk=66y~3 zXkMgyp!p~S=KYS`{EyUls`#{dC}iWw^uE6N@ya!R`>IE<&#nQUg@gC*HTAq#-b~oxjLTwkU8la8Op-8Yo$KGFBH`|aY6P3v);o!Q~aRT9>tSU$DVKjP@lh&oGehw>@lJQ)E~mX>@gw{PcAfqX zTsOK!(qoLR%~n^J58#>6%LLC*CEY9LA00089vySK zV3TBj*kcRhwD+`xx7tB=g1)TzyVcI>$(@|(67+GZgJ*qx17r`>wHc>=j|KJL**Fy! z7sh1%-+}J8|Ezh)(qzN5&wOF=9;*W@ej$Hd>xOH5f7Yk$!QQWV>$$sxW3=CUxtsNU zGvz73dmbg8A@ob|uPbyMJc4$fe%bq-*VU7LdtrcM9kt`zlKWW)a(y66EiX{2i^5w^ z-fq0Ei{IAr*7O$-TW?sf&wlPRtvejg`p?$QOa-F=Lk24`%ZsoE8diQ9;|y@r%-r6 z`98C=iRc!}9tYTY3#I*8>$%fBp)UrG96bs26{|FE&8OZY`oGZQV;t?>FXFejbdQzK zU36`C_iD*Lf@wGtFK7Uu}14oWsu+HUERblJNh!|1y`XjtLMb};4)oT z^>an?U*Ku%zDoTBwq8bfZ{%lt`lH0RsPRmeT}^fs(i=7Zui#8SY4~b^tZomwWgZ|4jjv$%MR z>~4eH`p0|KJ%GQVuSz8Slx^IZt|19p5Ru%E$$T6oIFQ#JP1^)G#?XK0#x&HGbF|1SZ5 z#qo^45X?_NA34K?n19j?F2Sx}CwnXp;>U^P#cX|qFQ_6&e_hX|q-Q3-gnstIe7mll zcThM|cKA=#{r8f8WBc$uJ2G+vHSmS-tLp#HI6^> zh|B|h1cgUz-t>EvpW+M8*zf6en%Mt)x*6hEKTq*CxMF>eT5mI*7S6j+b?uX$zVpS0 zR<7x4di?9cOPZ=3{qx2H+Z!Bcq)sc{1is5Y$dC1MU+Vp!Zfo;W?x1;?P`>{Z;RYL|2iPPXxn|+Te!8O6 z09;iUz#lM9>9og-HBRbHq`#e5;pw${YC{iOC*oHV*1Gnkjfc9QlvkP~ z+yQkv_*=+7Z=CB#n_ujFWruzZ)oVXaarhgNJ4#P~Z3Ck#FqUW9__V(b9PeM(gATiI z;65u92do)d)i-D3SkwKY_0PUjM;hqR*#l>Yo*;fN;~6gLPa(j^MO_cv&sJab z*z)b#CyPt9p4;*4fAmXq48jq6`}d9xycYO-aM#NWC+)F6#miZqg1$9$sKH-SH$uMy zKh>^R?UXl&x?l7XW5YwX|4K(w@6*0+h4A5z3l~n^QM#G_0O2yw%eYf@@EmS!-ofD) zJC6sqhTWo%`GD+N=lAG2PB;8$@iM~=gf3|w@6%+p`PY074B!oOIKWcAjC!EzEgqdy z@>>&LZ};N?XAgE0)6bsa4)saFPX#{H=CQxlw}SlN5g}21pE?iyN9?z0{Q1zxtd94& z);sdR@aya#etdL}sQ>2sq}bZjDH%*TijcI*ou<}j=A#gcN6+n)vw~|Z(iSYM<50LIgME5z3Pwp5S#MkH1ty#@q1m7B; zl|P674i2C5^E~L^dPT>tA%Bp*2peZ@I6-m8(fZt4{vYoFxK}&ADzwUfoU^L`R~Vc1 zo%J*S(ALwY9RtVVcjEuiw}5UG_?5flKRzJ;+pgO^4AXhhFH%3he_F>qslOY1(F4N< zzq%sXImH3Cb9+7Z*`6=%-yz`73U?fZY=& z)w$1ecwF_LmU!gRCGDa9fiy1Nrq-#>6UmEBGaOVsIAHkoz**Tmln3~9&QV@Er`KHg z&GMd2C7zn}zqVqVjZ^zuZPq8D@kGnZE>BMXJx;!3l!Hf^{v-ON)DP;xKZ9SVPEfFX zdp&q}@bBthj^L!hUsp(X$;R2qfq#bwmFGpj6?)lr{FHE=?5~sX;ar#X{zmP~cKl9G z$4B(M&Q)B7AG}iiP^k z7;t*IlYU7=Z!pIz-!$5tr96XpmEtwZ!%i0dRXkdrIw|jk^n85A&tNwm(3Rds@h^Bv z^mC+>Yx7sCr{h0leelMYQqQ`jzQM?RkS7zrMU)P$2megpIrS!R$Ksui(lOBcKz*Qp z0Dmd`xj$9&0v?z6V|9PpZhJVmagRP1d==w`I~=A@;l};O!og0=#ZTo6zQ6H^40LY zo~h>n4=6lc*rW8ln&lVj`Sy44|6zadaSayV3HE2t@v{WJSMuuMq^TE(cRGrHs2*I$ zKjepqU)B#54j=!I_x5JtFyPliPfGPnjeA%i|7_#xuJybovoq!=`YvIFN@?I3SU^f29Kihcb?zDneqH=-sZvk z5w{ml&UGhu*=vguPbRun@Lt&QD~i&!Ue?Kdtnv{S2*p(l3j@3Lg#+>^S{9dQ!wATu1&- zlwNTJ$JwlX`6>B*;wiBArABNvM z@4>fT-w7R5y^r8O$e*wNeNtGWI{kL5;yN4tV()F!-l4PIXN0G^zrN#_*f=)J{F=Qq zFX+sS)$wcVclHb3yc>SI9lKhtXdmSHtJg4@n*;|ctzdqgb zr>*LWVU&)iZ>U<|i^2`sI8`@lIFS6YPk(RPmHy?Z^LW;qWgqq0y3g%ny!kuZ2zRF*;867qQFX`W^i}v%m3K{VT=mowRwt{!Xytqj-h9+27g@d+g-C>+;CLjU3Mj zy*crH+59#&GQS@F0~`OYZla!tzK1sTztwA;J#>A;KW`Vz9=CJja(}1!D=?qfANiL_ zZpEs&oQ9(^JFx3+W6!B+TDU=WsyH~}|1q8#jZ69Gg#7ayz>#E!RId+OS{UP%|( z>fieN3ipk4O6>l5?=)YHr-d(+H~2yM)eYqTj*$PcO#1?LBspX9#R{1gAuhbLWIulbJ_w=OE0uF)6C>8gWJr{UAidxD#zanI7H{oWYh{ju+R zI$f9N=-1bLw(7atahp1xKgZke1=(FE_m5njcUZ80UtH|2`qgn;j~_MhZ5`}KQn z@K&jhMD-}u1wHj8`d`51&ys)oxb>BI<&(Vnm*bz5_r#9}HwB-tbkRKhpz8a`cmj-=G@WS_OJZ*G3zW$G+DtqaC4HaM6)*11bm*PUd~!;2p!st%;*(OP6&@^`)X zH{iXC=m~>=7LL_ZUnTw}pVCKh75v`l92JyjkzRv`Cs2Jl@Kk$vp3w^e?+tzioW1HF z{x&^->T}Bf``c7cJ6(A!ha`sbiT1vdkfTO%meEV`U})uz`?DRv%hkux}HBLH(#YZbiPkY`QEM$9u)dz zeo?>7IK7YL)lXM^2i}CfC*?&wy3_NOFM=o2*5AQ;4@QN9EDo(#-#>j%p8o5727PtV zxgCE_-kbUB?)#nIGrX<1^7-=+O7PccKDAD?6{SlUHUIj3an_#!{@(nKrHS}nz4#S8@hsywQMi}_d}5k^>5fPG z%kca7G`l?5VR!mncH9^Sr221bIIDyGT)ZR2MYjv^G94%Ujd(~rcpLi9PSbN|-0x^U zr7NoY?koFWkyMyH`iZAazG3LOWzPDpdI#wpYFwRd{VWXC-<3IZOTk%5Cq2SvV)xma z)$vp}itA||rGJoqOZMN_mHz$de!{A(qgoa)^EvcKQ{#hzFHl)Tcs^N)AG zTH-aabx-q5zfu<`zsSR%I6>>*qrxAM$C)L3jqpkl{so)=Y6stzeb3^NpnW+Wc4Mmh z;qKGAcf_J)RX+@+pL&L#_aE^KJP7Oq^b1ozr$3##HhiV{Z>mem4$E}@ayQ%7KX3hh zRZjdD$%Nee;5QD*@R52R@lxf5HWAL_NB2Qrw_u+IFD(3+*FNsW&(Vw@DLh0}|9ccqS7e=Gyn5fbA1}Yc?5Am> zlRj4*k*nu|XC4#!=zagw{LyFrb83~t4yE5HI|K)`SaEDyk@tc3gE}Ae4E#s&@J9ID zct6nHH9I_5>&d}E`*Q4)Hr{-fe17-FFYN#Q%Hn=$e+c%0-7t04jVq*w(enH^$ezi*)@z# z`;)#dDqraNG&^f_@J8ysqps`6n?K;$e|24dnEZw#w2yx!{|$c;T+qX^qdinVpdT6j z9^r>IFa7C9iKhyuys7XY!Y#)U!m+y32&mQ9nXNU-vkT6TjZ#hPn*5 zVt+qccH5eKBz%W(Me!V~?|F0;#dio^%fo*N4&C~sD%_`Ozf_;lsQH(^0Xp@5a++^m zR@A5REoEUX;jC?3Z3+B&&6-be;LK+(|J?ZZEZ;+)JA9$X%Wi}}^6+E911A1X*~6|` zUOhkmBVCR51^6C>8~5NUSkLie;02%$?F!3Zc>4Y9J{KqS>Dl+CS=d{||@PQ~F5f!I;@Cp;wfvOCp{UZ#eTIfw~rWUpo){GX?E$Lmjw{x8zUAzldYx&%x_U zJa_IRSC3nI`j18W*nT+ffwSvpR0ZnM=-Sc$F<$GF>6rhTY@h1Mz=JtB@Vtd{$#~d= zi;j;e?oY?xc)V*hJhsha!@f>=C=Z?zyClvf??U`x^RRO`E0#cS+;)_w%9u&sxc z;TZJ|2@mguBa7g=wNEBh=EoJKC+M&{a9Fy(1pG7Ox8FyxZrMD}`I}p*x&wGGaE(hf z&b{UDgX_M-_ID4@yPfwh;n&r0-Q?qLmOp@<;MZ0vu3s&#^f$<_xCN6I|f8~YW(e?Vnlj)U5jNl)nSLMeE zKXaVnaw59u!cSy+QsPaF`-^7@-D-4t#g7;_Ql3)yp!l8M1I8tt3wxgPs)MbcJ;TXq zzfSM4weTIU32y<<=RJ2Nzm2}9e?ae1aTxt=5qu}S9OyR5Z;AAOV1MWggS$ZwcSOp& z+uLoC^1yV!|8r}o-ljTuoUA$!I6`nSAIVQ!TmGIspK^yE436|3t$)H-f;Y?R+SEx| z7wkNv9s8B~)xGd>5x?J#>!0!1+4q8jrv}^=ybJ0NisBQGhp8_fp7i(i{GQc*B_0+( zP4>HvbkNw>?0Q{-o}U*kOZHgjq-&h%i%b78f>V55`kI@{F2NnbJ5Qg>6TEAt5av+TJ|lxkH10oivI|H690p~Y;aST34bd5p9g;> z++Nhb$Ag5+QoSsSr@;${+^l+9+*Z%)8S!7KzdvR?L?0NgOt`T~-X^`zhH9s}Ud-!i z7aaO~yK3DT*!t+057r*(uF!gZwEFhN6O!=}T`RwrxO;y)&i`BYE&k64E-k00T++2b z=NSLb#yK*;zpMUz)kQ`GuXUCAI9c(y@=g9=#U+Jbtj~9_;w0v^Al)wYpL+Ud%np_& z_@MiFqdiW^O5hFfzh;w;&Hn zT@l?(>RG=Wdfbr1ZWs`jy!XwN1)Fts!*lt_(GGvQS^Uo((tf!glbelCFp;0kKJJAV z^zhE5_t!)|d)vT$!}Cc#dYYwt`@u7~L@oGjLM;`(4HFgcoL)Vo*y@R7(ss0_W z`j0)=Qr=&EI$k^h{%hr5cGUYzUdHUNU)GmSUpakG?AP?atIsInuM%g&=ZyZ4c!eYS zE8x+kec|baCoS@*4>Mytc*B$>OvQ z@=yYv5WSDrw2zX1uz8s1t~Z=mDQ{oB#jSVE_VhzOt9rzp`a9|$#Lt)LJyPEm`YoR4 zXy>nUj1OFa{k}E*Tpk=MbpZTa>b!RR(4an@c!uI)CqGW{T&#M__K}uR6W^cM=b@tX zwEU^!zXGpM|1tbm)W^`B>!i3zea?Ch;M1x3|N5%7`Sa=Y3qRlar>8C-cYkHb>0}hp z?;R4rAJH#PUln|c%xB?6o6nW&CEeG5qmI04RG(Tz?}2`9>JN5z zb5k7je~RQ0yQv?|#y?;6ne{XLG59O+MEIZZfs<#sQR`h_)g9;;Q=TUd)N^EipXpJ1iSA zf88DUieU{%)X~o9?SmB)92vUi$fJ!aQ88>s9FbJB}K&!PKK` z!d`dZKKr0Sm5zNu$NMVHZ&hyI3I*l;8Bf^C>>>MZ<8khEjdQNukN&;R={fqpX&gOu zozrsjQ0cDB{as1d?C8DE>9bCy?`-qw?K)H4iX0zkmHS!y0d)>LuF4&+K3ep1EdQYW zqG6l^Kaw8bFe+T3cu#t{p7@ZsXd_!+{X*@dcAdq=94~EQh!d}tFY5Rf9lwG2P8E;9 zFP7mTw0?W_+hx30$0#m=N6fBU@&m2Dmd!JLUFb%md-1sHg5t6A;2G^aOOu&~htqj_ zha+s>{1oXG+Hn;@d=7rT?A3m+aZjZCYe%hJY->!kbc@`6Kx{v_GCjjJqdsON^>uK4OA_NDuZ^jDIffe(JMo)h~t z{CDb;i`dsuvJ<=R$c!g>oa`LEar&Ab)%+6&@t);*PUa^!PX3g-L8y#pBOWx5?RQN%!q9hGz-Jm(`Y-pSQBOjrMW; zb31QmXL{o`;wS7F{-?a`aLxZU^52BZ&Gggo--shlR^5j9PV>cc&*F!7`s~nf?Aw2m z{dIAztNP(3zE9?XdQulEs5f&tPjKD0>;xP ze7@><3Uv;<1CNgGrQ#}2Jrx|Y;z*Cq4so*T2EK#xXW}u5@KU_0{J!e;8IRfO^(^T$ zM(JBc;zoGSh%@Yd+lr&b69C`p{aQyi)HsIe-x<$s8VC6!>e<8v;419=Wf?yvJele5 zO``&F?qS0DbyD8tb6Y=Ri$2riOL{jasvmYUeG;EvAUybq`t;yUgj0ZD5FQ!gNuIxr zb7ZD74KKuH$G*4Evwe4R;5h6!?USW^%FCJu>EUGayoq#I#dD{1zu?x>e2V|lQ_ryT z_S8Du8@-Hp*rqGT-ZyW8Gy9twuFc`b>EjuY@zYYj2Oo!BUat7QDqrW1FR9K&p71y2 zx#7X2o*;ht_?+^E;4RmqFGKw<^gAd{%lcpF5I{R8>PGA zPglG{-^U!)8Nj_$$FO;AD}vWazoU=Sw2u2#`bVdv@yFf8A*y@)AiTZ(z4|fcO$hW~ zz;^(Dl={y-d|%>yis19n8&clV!(V3S7cRF@fnl86p^lOsm zV_KZp-_bA9JJTyc|A>AC7s4zru;9 z6gw}72eeuIUml!T`0%jnd#tDm=WI6OiIz3`xNf@NLbUwEhU!mJ9@4JYG~NxQA47h~ z0jk^Bef4$+ss1+4^uU`p$)6{phi1oja(jvgqTyECf2Zj9&RXZ}xYlBwt_wf9>P5QG za(AGvYsYsFW0da)zti-r-4}ee@Wc<5olQ61%Hlii`<}gg?Xoaa`!9UXcHRl$T*aI4 zE7|WQKhku<>*0gv{Dqh8zTjU)*Z!s*cRk{Y1FD_*jeUdW-yg5@i?`lSThe7}aV7cs z3irQUpKwKhw>2F{6MEk5ZNDzPUzM7NYwUUXi=}Hi+2+}!-~AWy?%Vwo+#Y%^_>cIN zW`}j;g?)bitzOOk(BG(X+UGs}MZz1#vxKj$`sj#<=daP6r1p4D->_8i+X?1Jd-=Iu z@4cS;7_HOY1ODu~inm@-{TQ784)VvBD;^?V;rQ?57o)p!rH*fr|DKQQ;P2=Y#H;P6 zC|>zm=TYB?#tB|}L?9lbP9px=xIu~=T*FOB@dj@tJyW~{J$f=;#|#t-M{WX`suo5#o62J{@A{kbPO9Sjv)WBgY2+Ru1|Q9=6@6N zn7*UojC9{^Nj|U9UB{OP@Kwyi`x*~%GVvwxqVY)nH?jWiQr=YYuh}bjnp!s@hrgCJ z7Z_(%Ag%y62i~ZJ4ulvBFiV9z*{KeEZ_v_I3qyw8}!B_kKk(SM}qr z@;A^ALBAPZ4m;1%;*C1~G+medSNMXsh2Cd7zKgx*g=z=ik^SDw>AYTf0*zB~WJ#Zl zd^CKnPe~`l_S-J*@J%MXd*0tVgZa$0p8Ie&EH@7E^}_lr(A z^A67w{X18PuaEw$BOkhDi+>;9#o78;<>q$#>49h34|1c@e)YPron2S=Q=xH<*C&41 z3hm1)ilg;h^Ljh1r@b9@3&zeB8||R{I=I`LEuPc+RB&E(De4lZs19T2DGTUi+xM>F1B(xB zzUGZ|=xmd}M+e!CF9h)~d-{s!JuH7fc}V!}_SHURf44LtuDwn1weXx?^#MOq@$xjo zm&84U&of@s-obP;R~9V~y|UOK9Tj->6n|&WU2#?f@3^D(Ya35rm%~k#;sf#4Y95C; z`0#Y!1$cYu=VScfVd<-*FG#pU-$C^aJI|D??qT11IpQ$!3H$zfzRH7SeY8&xdFK1s z?+>XG1X)t?t%Q`|8{@dN#B+^_m(G|y$>3B@%(D4tPYQ-p7tcmux6 z_f;Q7kMnZH6W|@jD)0ZX_Hnyz7uPknF03fhhX|gDdOZCg^x2D#%|9r;)+WUti&NgU z_Ktq7+tr`{mh@N2Lx~?rb}4;}rW$v?{4E>b5T|+Yk7*v(TC4Zv+jiShf7d4vZ`kpJ zopdqL)AYm>s?WuLD843+w!bTcJYP=1sgCH?@2BfkIrut>f7DmzyB%K7iIcr#9NzL{7)S_5`QRg@X`y9<`*mex4&l}D5uWv!F!3%Ka%%>hxF*RrZt{FuuFiC6g$68csKgD zHr2ic4pBG=5AUj7zmp?AAkSmJmvq&Yk02k!_;1&HWp$9BiXD}InUwm4|4oGR@DIsP zg8voVxt+g;xH78Fr}uDavQYV(ot3W<{?Rw+J9!v8PoZ$X^bFqByb4E@BAe`fjrN z7QDINs$aZOelLCL>Yt176oV5PUpel;?~Yh2oGt&C{zv-Q&@&aT$=;iJ`-U;%1z203 z*J{5bA4p##&l|szIOiT65C5L}(Bd`1Guq#+X?|VPU`KyEeevqwi}0}0SMJqkZht@6 zbyQssJym#5!GqEd*FKFinu|B@^5Y&G?a{+^`1h|r`aiEMO6Sv~x2yL{>qlMC`LjOA z%XDA#Gr=pcnEJb(i|UB}8u0<7d@JD&^o%u5SG}#@`x!ccc9n*Q&(GGrqfw~Snwcv{2y{0~XlHx@18e}|@)O(0q zS!Y>yrEd}Eymj-swKaWRv;#r@7><9 z521H#_uo=P@7lf(HM=VH>w{l||B-#LLio}|{m$U0AJ_f|kNgYL7bKr2T(OO-FowP< zJ-1R_Ed8%C(4Q_If~bD%*eE;vs;TbsuUb2XV|IS&rEZsgP=v3Az99PKM(6f>^brOG zcs1UU9|7(!4mEtnrzbZ8;kr+X+q%b; zf2LoMK0!NKw!ZE!gKMDJT58__gA#p2sUF-^eU2wlWb9MqgwmicZ z+PJ!aca7iPP}Vs6`cmDh>s8k;e13V-?Z7#EEbY0pxV8LUc#XjOk%zYPaQ@C2udDEt z8PDZj%I|_3z^^@7?;ZR-_sDOapzFe0fPLk8bntho+!n&`<5%G4{%ch`EZLupx1=Yj zeS3BO19T+@e6#)Hio1q|br)PWzj}H*M;#G=k$&}y^;}+&e@wrF@Jo@nLplmR)wkSy zQotX1RQFr>+2T#|b`L8rf&G9_M;D#?FZu?F?5|9Ga^H&=Zzu8ci4WCFe->V1KTUi# z@J$EVpIx^QcpkgRUy^=WJXyG!)0H2vnv{|389{XMd!=qWYefo|qTTC(?)Z#b=g({#NsdAD@o1ln2^H5VzYC%#@U++Q9?U@48B14B2QMmVz%;q@L5y80%xjvw5M++eGc>L;AQs*s4rzA zctPd8Wp~8|oyO!Wj@o9Eb9q8AU-ix01AM4+a zvL~~fLLkpZ{e%5?BaNH>8u5esb2TqbnkV`Ze-Ykctkz5Qr`h!zMg;YHNBY2($MWKj ziqhYTPJK=5$^PK+C0~Uu68^^BvIFWn^u3c;-%9P-J?qPyrFtp60n$P8 z@cq-5_P*XH;=X0dcO0(#A^qj()DTbN-`l)bhKcGw+*9ux_E)d_-{Sm#Usct;hf6=} zJ3H2``Ff8p5>LV+%{zU2>fe-owG_!es}IzlsOPqg))yPkQsJt4Id~W8-<+lSMfd!! zG#~Rz^1-d$U-{&-K@Q#t^_P3`*`UW1iPPyDK3erF^|!|3WKZ-d&Q%<}y>P1Q2_K4` z!IKT{>>a&V>&ss4eky|UI8p13=A&1Dw~G81xDfnE@!@2=neg($qn*dmlsRzx(i4sJ zE76CHZU=pw(!+@hwO-SIDIT-p1-X1_H9FIApGR%KK+l@Iq1|uifKI8CUxf~*{d*tz zf%J7$gnax_aOjSrBWk$DHC@Wr-BJ_&8QQ?Rhhp4*JhC;H#g z5BCS_`KRM*8W7OiJVbVBzxT`d)Mnghd{=j;dWCNmA6aPgfL;-Prrqb_qUz9@UMTfq z`}b0vK8I`U9IjP9aH8hz0@G8iS3WFKm)DAPuqs@5Kx1sg7Z#Z?; z>y~&Guh(@|KaT~|cWtJ>i0hg^Hr`o%cXZJF`+{`TD^!oCj&1i@DD*Mhfb6~^94B0v z=0WyQ84i_SvA>?nTOAfHtUjfu{LotJM!Ju+GF|NdX5Ir@m8ww5#A!X6>z?Vd5k^-*1jIu`l!XEZ+WZ2V5& zD4%xyPmO<&pG!%fo+lzx3IY54Yn7yUlaYr^4my;M7Tn zQiqM|-}Ra|@u;jB%#R!7Chvd#J8d^?%<&%mcH#{5!0r0*5thsD24;Ha_V499_jr}& zf14g>9eGacFUg6jr*j;-gXkQwUxSC1uBYtv5B$w9Ied9*LLDd1+Hy5W_NZtl|06E+U;w|*pl0DWn2(C`@^r@Yi5IzPHU(y7Swf8c+h&-gau zm2_K;zhcoEJGUgJcho+^6`&J-rp}*#zO4Vf(SOqXv?Z*Exjuock7sa(2YAHx<#?6F zlm6KJbD>|&6UTs?dRqR2>X5qb0N14TGhhE@oC6&30DT4YX|xy4!Pdj!W{3N2;poRe zFNwHBJg%$RLudC}&K^34Wx`p5a{%8ie0=;;`BKF>{xZeYW|xJ6@>)@Ri*a}1uTIi) zzIfGjrD0@vR&g~vSBf7qojG_7;3)-PC(&OLqdS1O-eE50t`Y@7dD;$^?Ht}i}=OjqSXn}69s z!NH69g7T5{b6u|I3U5~BYYX;UuenpEV?({LV0jGxSIw{H*%zd@Hq!3L!#7!>c)Yuw z-%`a9LHEVH5ND_N)l}i;%TGkF=61y?=pj9=_Yyq4bgLryHk+TGPV0!b?<cfc1z{EHtZKR4^EI#hAZ7{xQ_lSnr*8joeABd@ExhX0%V zK&`ueMO)$S>9_R_RXtz5cCR;wxYw?}?X8yA*9a%cUs1k@ewPT|%kHz2{ExN63#wO$ zcRJ(MqMzV<#T)cz!DkB}Bm1xN3sE|k@ix^Vs}-k^=OJF4{~{) zw%P!m_hI!PzAXD2Cmf3EiSZ8csnFjnoj3T4qT*6}ADj9(;ZK{a?@6b-+yrbP4F8EmmB)uHwoC4L1yY;p`r+ zD&>1#mdwBS&_lbQF~a=WP}B7eZXDf}mTeDQPn z736F3{WMiU`Q@m7O6<%Zr99N-TK~{PJ3#Ll{LiY3WIQ+G8};z%!eg{l`3CqTqt=hj z^qxz9CQ5$?9cYijv_l)jW`?c>WJKaN{-4<+p%%bKWlF6Ij{mvWP_6^s>>*9|O_6Xp*XnzEUEWbGBTgio@_1&^PO={byHw?zQ{zD|gwe z)@`cwg?;>7?Z5ETkhiya81BeZvo1|lef$9Jhd=6*esbal;hZy^9eR-PAgc}&pOn8& z-Hd)U`a>4{cikQ<-g(dLywunAvit$ofBd*~ybWUl?+5t{trwB_<8QkErtSA1{=hq> zI9zpA=~Kn2_8y}<<@b8+i4KcT9pV;tIBDN^-|QJqyVLbb{`4FAeNp*x56{;utt;SM z+3$|iI@C-1|_;1RFZeqzsMZC9`N+`iWY_I3E1@qgCRzOMKn zF3^4@KT+@Te8Z(SjS2LDuV?#P{W3e=ug?F4j<;~L9-V9YKBs6s++X&Gj-2JyhPc1j zbBOG}!IiId}7J-TvUUkl%Q|<$dGNT6f=+ABW!Ow%V`2yVH*jzSHKb+F@Vp zGw7{jFVZvhx5&T2UrGOdUL8EC@kQCAc!qr*KR3vcm#0p1f$W{WD)`h_Zgk@(kIz`V-(w^XymTlj%cUA$|mSlHucI{j=u+ z{&{gCo5g)Ol4$$o9?abR7QDj@$J(=+liW+*)TXytJ-%fP3cbzi$8E ziVC+<@in@7Tj~AwTYl8}E!QvLpGyzd7t~iz?c>eb$FuyAaCDjfM!etnp7~es zT_`_l>v$>OO#Wdf?GF!X9fwchC#~n`E}%;TF2?M$XP__NzGwRKo_LM=5IFZf$O(t2}(;#T=-5#EVQWq;J4^?Tg*^8Xxg#utObyR{b|^?Y%N8#?^9PrqKW zG(k^t8@=D?5G%hE_x<4FlP}x1#!+vjUWvXk`;`1{?SlieILz#G-AvcHMt%bLd-@cf zY@9i4+Qws8=RN&RstaUw!1dH0K_B#5TBmv6-q!l9{@OTS>l1ki=~sJnw%|V%Z(Kx= z=+Zr39P-dt74D)1_g;6*=YzvZdas6R{HpiILu7yOY101!k1sqH;3m-v0~e?KbA*RT zyc(^&U_*@?B6}jAN*(+L@kSC? zt3L1P!>`hQxwHK2GSd(D-DHp0751ckyjgew?Zbrv_<^Iue*vBl-a+w{>i9vHrzqjR z?f!=Z>i_UxHz`jG{yWP@ihqN6c`NN>XvE@W|p5Hg0H14pd&9d~8b>2n$ zDo!U)+o=6_OYOVDTlfdph!dG7o6kW``c%2DIQeJdo}xc9I)H->im!>6sVkhJI*Xlu zWg^yG{Fe2d%T-x{s3K%^E87{FbSYmwLf2niqIoo93)H|LxipDfkJ+ z!4Y0H@&>90X`NMu=jETFQ-EJb{sBDRWZ4zs6U8g>cfwW5kM`iW$nQO){g%8aIGq;t zzlg6riZ?To7r#pHrSikJ9!siAmg}yE%PwkNdErX@bMODT)78^Ey06kZo_c!Rz;H&U zcm8Uk{W^kY`CR+gw%TtVUBBX}uO1y4;Egy%>reUc_=D*s=lMPQKFQNQDE|xoYxcoL z;fC=0=k2%bhh6^iLkbS)OZ#2K-el{itkW((PtR!pxLW^=;+boNi~d>hGI??G;qblN z`3AU&X8$67fZ|KPZXJ4(>ck&c}Q~a@=@VfT?HK+JJ>@OeMxFhj0 zc3AP6r~jy^v(cQQzf{a$^uRvbC<2(*3~ij{j%&v0wOH^SeUpPrA^Nc$a-yd70R(^~CynOYz-(S~v8+ zp$}m<(3SiEIzI7i`7_Jp2OlrL1pF0xBk&bnrudb3R{m0)S6l~L&pq7kW;fuM!5^^q zym6ePZXup$FMMEpL;0W<%S$(GrhOS5_5EcRzt(-9B;4IR&C3n4NA#_Ouf|V<*M+S}fAqtXPlG?M#=#42;~7=t-zb5@87lv0 zX>yhDSJQ>RdEtH=r+9~WAK>5BIvWP=%O9Y5fLF!zI9rnAYos=pVo(zapFw@m*~JSJYAWN&n5zFstzIRj!ElfDfRndspXWf1r+M z`1>wypQFz_&2t1-X2-Rp=-%4*T6dA`DD#l%ab62gR^=MFyUI{2-Ua(T@568hPW3B22VFN> z-~W}Vt;dlzAHxRc{0z;?H?jXpA5iycS1Faio%RSDw!iPPJ>t30KTn>x$TK@A=bxnC z{$b^Ds4o@!eYjpP@J<@fm|S-cy=LasK1T%Qm7@Bn{i*UZp3UrE-|+J>gV(w2j;`*` ztRMaB1bjR?JJXd<i z@Nzb(|5Ep*`e>!=c*4vt|1z&p?@4R=nea~M6#C)8U$v#gq2g=zs^9s2)vs*lFYCq` zAB|VuHj+1(qInSRPS>3fepdgm`fl}HMme5?@^o>b_GR+Bt;P#1|FX*7$8IjL9^@xP zcx&K0vGa0YBXgXZ{kjmmX#I3WMZNGR>?+edQ@lFKaM?F?L z7~s3|ej55~h~v~xK}IeFn7E1G}48Pa~1ziQ2cSJ{2c1P;J)yuI|v8WCckp7;vDov!F|DJXV+~_ ziF;pB{995yPCns#&8z9S*12uu_ffY6uZ2#C^j@Orp;rg=tX{VJizUO2H-Jy1zDzs| zzL0vwJ<5kr4<`SN&Pl!Qb0_(Sc3%UjQ$%- z0QRXSt!w)9z=_q1hXQ?6@JKwjH%^(<$xZ9;4jXfF_x)b%<1V=M=>e}_HagI6LEjfT z$y)bz-{pFjy$@v`c=>PSd%+RHGpjm>)_;%imfly*OKesgc^sCj8g$oEWD{fT=0!Lo$|9Nk~O`JlBV`ev@DogLq_ zqpLNZ6u+T9;opFV72WOyBf8GK>h}X2y58briRh?EpDDt}g09EqvY)(<)a%dCeZrI8 zUA$ZH52N?|>YWQ`S8g;d=YgqK+=6~M{q5ojvG=^Rd4LBNy>N6?l;@1%Z_+xh%=?f| z65q@ndcNX0iF$6aq`Z1Ie~ZaG)Vn*3zhV)3!^92ZyU2N|FI0Xt@At}1gkRdnf%}5j z0)4O}Gkf=4vf=J$ow)s(pQb~zeYmp&uLd6#d|c#%>^X~vxm4@uQwPtI{d;Lb5O0Gg z|3bWZru-GvHR#**)P>;dLbtQnZ&s2&KRk%vD(bqL_bOMXb!X%JosOR#(7AqEeCg;g zO>UY0L4Dsb;q$-GJn!@B$?oOeC)K?C^}6A19XDV6&FF?LRUR9>1%1uL2jG(EUxPmm z-VONK(0#kVanlbMt<}f9mhsTGrSR#)ljOw1aj@|@*nKWIJlH&M7{HBxEPoe%Xz?p* z{kAAx8yc{;%r`n!iTt9+lHRkiL{b!7a-C|;d-MTc|K$G={c>l52J=;NaAtQ!84NWNM)s<>JEbyyOA zee+)f`sWSyT+yM+^#`x|)h@oChxPiP*5v{{msRqQ#rKlqZpm|z z$9qV>Yt(u|?|!W8-;I0iac<2|Bi$v(9lp_t%e&<73%vQdZoItxI&9om@7FFt{(od& zhQH_RLf!!W>Z&kP>)~|O&%j{~)N=t3cAwVcHii6iDZoEz&!wjWM@W9W#p=rq=r<5g z?3DGnElrH~{;Q-R<6C<(MJEmXBK_LuYQJN><8MgcLGM>{f?g0jmiX=P$J#hsQ~DVC zi1$YOey&$WeJMM>af16ucoq9z8>GjP+dJvo=zDVl?;1RSmEylT(|BJzdJ)nG)A;Mr z4U5X3GjH)Y;Q&TxKZVB*mveKbz^X|RJfZigQ zaPU^r#n3#g>x%uHtCIqsYKgvpx^S-Lw>0m=9s3{ql8vi1rH**F>=6CJtKZwPc}mCc zQq!A$HC>YR0soTF$ANt&t|U(Y{|0fTU1wluGd_KdXHLHL9_7>H7~Q>jk34m?acK>!Ij}>!Ea&bTX&6m)4G9vj)UblfqPn5 z=#yOhYu|JhS@i(RHazwERs)KJ?n(K_9P! zt;Zmq&4^C(i<*Dxa?3Pc(?J~*%q|Xb#6Rr6;t`DKfZBaGr&a1(MR(Nx-sr@`8L`(h z#mjnx_5q&nIr87=TP^1E2Z#HN7c@%$CC9DpqB#1mssmD2w(C~~bp6)Q8FPQIdYfC8 z>1=fk@SZlq|15kVb=~ZIO?9qL^*-5M5B|rlH#F?0e3E_d6YAwBo-aGy{IKQKr%MN+ zkKPCMQ|q~}Omba`g?7AjF>>4m_$#~4(q#9-b$bTYMJh}p=S%n6b>Tf>o!Ip%sn^QRR0h?BHGcg3=JXu-OXx~`{Pq589osy_ zQD3(6^$Z8w_@neJ7CFs7{hfB)Xa|o8b>PF=^N^QuKz1B;+8V~Gag|EaZOnD&zFu)z zx7A6Yv}G*9rIKi*+A(H`aI5g3}g{fwy(oA=qa* zB`TdRcp20W?xj(fl@2@iqwJZjht_m&)%DP==zaRuM?cnkWPoRGvg%3b3Q~6y z4lqh5A{Oh@tg{|@{jsz0@@rgO-9Y1W(D!<+&skw()fJ_O<$H9U+Sb%#q7%QOj_3LI z57Z6slK&>YuZUlv{+>vmlifG{HpAA?tw673M1a=@9L!n9zm}Lk_;Er%E_g)sd9V(n zT}OC;GOvdE;`H}nj((Iz*-bkhyl$Vc1`kUFzfXSNjvo}RRbG9b_Hoq@{K3LMllRV! zFZU6mo3MWSIGsFsX>jNzTr7Mp;M>HT99w>EXWgwXG{3s*vj?s}Fz2fw50Bqs;~S^- zH%`yDQlI1M?1bM5Ql;PJH&8q4e&LgKX}FiFTe5P zv_7u?L08{##Q|MitK#fx#i4h|f5(4P9G&Z0N^j5;kBj$3&wF65t0+Cq*yW@_$2E4@ zK+khPK%dseJt%zgoW;w`8$2BL?}HtEMd)C{zfE5Uahn}qw}!rFOS-1Mr{Uq86MvUS z$29wW(O*~e7vQ|&;8u(nTde+m5OJ3Kfjc;67ZFrZkVU~aS zPa<9FM7TmPK7Fm*@eceg@r<3PuM?kxe@*`Wh3YGX_hpFuJn){v*~Sg@-VhJf%8!;F zik@S2cw6Vq>z?wLiG%15vGMeDPwM!W6mLj}0{T z;tcWed-N8$zWAp!{^s;r2m+}D&<#{U(~wno9i#oKMOx6 zd;;(%sqZUpu6zvffb^as`rq_Dq8o}me9_ibq<-y`KNSylj!&lE^QhJ#`S2M!p1L+T z%X{S4(60v$UU-tIIMhoI#*3dm*Rg>|`glDLn>X+oBivB!zpH+Hq0{j{j10E^Hh0pW z(R0S%>f^{4!;=j^$wJkki}jwq0X_|M7}SrE^C;_i>$!5BQQ|$UbhiFxhRN;o_2qce zepd&dr9Vq`An8a(@nYxmFIZpnG{cd0&PT=?!9oMSg z!IRdc>ox1|<6hig!#f`xyfd#kxgtC)yLPh9f1~C_d{cU^%hRCa?D{>z<}+tk z|MBNjv>rFtdYPr;D}(wu;sDKq&M!OAoSv$AW1O9BoDF+xya(!eEzxnNhdn0Dw(IIV zTk3k->iUD-12#_mduxIYMM>wa)O8G>Rv9vX=8KU*_m|JV=Br_z=5>qA?<=`M8Sl`5 za9xHw{RLgG_=4um=4X76ZhMqYpvE&%<7`PzZy)cLak;`ddHTocKY~XKJ}dA$cAd7Q z=wA;A;5~^KzgM3Jyf4zH&vBiNiYLLbeyRQ`@z6xCxK?_Ub{|b61G*_Tj$whkGw~n# ziRiHi?-#+*yftOXQ*$2gk3N^T^|+RUpH=*l#)JRV$gtY>M_=?C(U+YSIv3*CM*7Ah zeWc)wY`mpVoc~e@ezEVBZ=mm3`4RsQJ>ROH`?q%JPy8~@iHB0pw=#U8eY{v_>KPsv z4ukvz_2CScR$bO7R36^Gj}GiJ!~@SL4{CVlWyB$g=}`C6x>6in_D5A$*0{)X)#cBv zp#N6t>n_y&p$qh`>ZIVLXRMKTApe4nljhYiUz3!VAy2_`(0xVlY4C6K)%jo2`U7ty zJgNUg`EdASq$j2O>m0y8lZSdv$FtsF)BJ<$rvAHJ>&on6pFID((P!81_?zXO-7zn0 zanqqoe@uQBPRZ_*ICF#(UPa^BTJ~u3P@(mxd5iRYtN${xzU_RS-F(geeHtfx=HPJ6 z5167jxKB8_U_Un2^DpyB3#V@9g>Sw!0gr^f5WMz0-ygJY%`Of?uQb9(g{_xV2j4z@Aob*cJifx?zg7_&s{7%z^e|}uJzf<%H{`m^w2W7W>NjUI& z^T$1X()26QPguyml$Iyrr|{|v@H2!HhTnaW{16*wP0qtW9729reZ`)2p7np!4szll ziRy!f?+f12{Ij&o;#qJq(p`<{R>02ypVKbt2Up)ro?o+Zj&}5wgG28sy$|rx1BH*Y z8u2w(k<=N>_mXV{pGmXYXzIpt_3(CrtnHL&^`ss|;>n zORY0-o!R|1)i`*Pz`uwe8Q!f3KQZw#{ZlJsN713!N&XNxO8D1oUde|oO~nJ0^8<-z zF@giL;|J$F`lqTcakAbE{DfH+C;O?#&$xE@>1_%AHTXZ_O6hNkty^V$sBU?dm-#GZzNC9d zU#kZv3{U0-T3_(Osm~>{UhFz66L8`17-fGi>zc6s;5($Q@rC@n8CqY|!-!j-)p|co z>x1>G{!#j(w2!IIR2t!0HC}W?;Hwh9gBPER)<21P^ ziccixwXx?@<i5umwI-}H^jD;d6Tv&d|0Y}k{nWAM zoO?$MeX*xI@VZ}h8CsIL>zs4=1C=9PZSRZDzMwS0z2EZZLl63IZLaURj`FnRCBcQ1 z9|BB&FgI?=>?P5rk{44^0d+g_Tc}FcY0u0 zIPdA|+rIlcRUSG@_jwWiIdvIZA3fd1;#mR*bGYJJ`}fg-`ksC7>>6}@J`e5jT203~ z@{;RnoM$VK9F=$9K+pFA<(0tCRy1^9qYbvsSpvSZ0zC_J~m2XJal8vh2C2SQH@9ji#a%f>kv zoR8Mc;DBx(I4|M8ym*N`yo}&-?K~sGz(RemExAwr4)+Njm_EYu6#v5qtUjp-|19}G z;lVt772v__x;=w%qZ)r}f*%ZDig3{${Xjj}I8%74A1=Lc+fNrva{V(N^Z_CBZ|2m) zi!GECrGU8X+I7TTxsdB}B(^3%sU!*>TK3Dd;#mBha3;KBbx^tD^drbH;@VQUu z`}uml=yKY5_6t2MZ)o#Sb9hi+kq5_Q<7`d9wc{`HTvlcIzb})DkyVE_?Xx=BKEp%* zoWiRIfA&SHYeeO(9{uq3Pu^KQ#C5R#TTdRmLHfMP$3}QK!C%c)Jn>)CDbVv9pXZC< zo4Q1G4*Y2J)$rShYlQFdcAraAcmQtGI>axbPhy7Z3-2kO1?NNFUVI=PKcTtm{)%dR(2&wp_ERB^A<`JYyP0UeuD^nB5kKFPlO7R8BX4?j&zAFf*frv?xH4~p;b zx9s|rPW6yT{xAD`*}o?5nCId3{Deb`*gre|P^bC~`Su9j8~s_~S^XBObFlBVsIHTp zr}57@4z^gwS|_hlMAfD6N8wefQeSX|eI^_K>HDL1T+rRY|77>OJZ1jTDPAsrXR&?8 zlI%JCKIq^6ap3W%Zu4l3LpK8*7x2~evAu2M)4J>%Myif}yzK6Q#+xmk?`q2vED*k< zX%hLM2p^QIa5r_&@J1ayqc`nu97_Qxsjg$}ax z1mhyj)9S09-g5ujDg*focoWvres`qSDfI?hAEV&SK!4eTXJ&lxHj#f8F2$37;l7A3 zxZlBgUf?3Bx7qU^2(C3shuBkpm!7nrQqZBE5q_gOO1G|pvnk6rpPkGf zGW(hfj<0kr`~K~@C%5bq;OCUSwTFlBR6Q^Htf;TvrTjN_HgHX;>^A*h8>rvnvd^22 zx@Y6D;ZMJ=$Bk;;K38@6?Aab`JNlN{_fFLN3NFRwfxZr=W|Df_bs&mG>+wbe8nYKSP?GW%k=s#Rfe#phU{qpoVSFTR2 zFJy7L`M=lt@xmK=IQ&2LHN`8nA5x#4sdW#ZagE|L_31_3H@FGrF`@$vuh3mn&+<>) zxF~(8es#|)jvnOXw?%Y^mA{HbeA-a$d&9&1whkkC5cDwnwZ~tTsK+i(sWY?w;C&)* z1z#I_%H*rkQI}R-wqI?|?>16>I;_89zb*P$^h?#b`&4IU{Ym%14^n-&F#{gnpLWXD zVP}V5tv-QBAKs;^+h^+`$5r;q`;Xvr2VXx@&xJe=b!GY;&XCkcHN=PG`e z9*c_i_-3m~s|EcoXF|BZNW zOI=-?{7U$)ml*55UchlQB&zLfivGv19(Zcerz-;s`yKcM~73;$;8tX$Vs9w%y?{!kl_ zpDTRHj^a0@zD|5%{ULVXGRne-(6 zQ;JLAe}R9)=BM8MUH%`q8{!poZn4L9JpGiz-MfYNy~1@hJhYx0^}Qi3T3yaRq59nZ zd)@lu8~gVO_h{Ze)x4pTL!XuKW>I*voZoYy<{zBfKZQ3_T%zljO5ZC^DXzmK!vp7T z{Oo2FwEjYJAav<9lt_2L9MH?vb!Dg&(jn~ z*!+PLUYg)PVgKfQ)_eAAb$2Jd<@emIePM?3JLG%ByXnBl=u{;2Aoxn7#;Ne%P?(|<^vle*M(dVe<2`-{Im zS$-1xfcVOJu6ci1HlJl2x_ypwifeS-0NHKDO{I?E;$v_5?DtpvlCu8jmr(y;6d$@L ze{-koAnyZqNpVahpMw8x&v&k_JJ+38@Cy&qdYBU`6sJ6r;i2D7kG*s0Nn@6+OpeO* z(OZ*4^gfPK{BVQDQS@IshcU`i+_hx4f6aYr`$&H#amA(ue9;VDzut9`eg4kgk9goF zzf8P)G5rdap-Q@xc0ZM_L;L(^X=nG9erNN(yE{qud5%8+BYlJk%HK-|JbrlAy1)H+ ztp?%XriGHO^Isi5#g32D^*i*B&=Fr>f9H68kF)hV_^hZKs2&l2dZNz{n~$0vy1H+A zJov72KZ$?s2kBpo*YDA}vHRY{oi2asW_@aWGH4$3-q$m4`aaHqf7U$vQ>Q+# z>)Gqoy3Gpst7%#v)rJz3!juRJNaorURYuwUPSxFwN&!ecJV>g`WmJ@aZf6oT>R6 z7syBH(`UNKS8we8W5;P8YcxNar=~rf{9>JFo3Os(f4k0(c6`$gZiwpVtBp@9{vw`W z(_5VpSdUhpXibk)eQB^h(Mzw?d8X=<^VH}#^x@#Y-$chvDjx4`{Y`eZ9)BY|=Hp3M zo##jKe!&+#Q+C4cYcsvSdM-^nlPA$UZRdVoV}9*-`8<2(+wOms&gWd`0^X%EOwqW< zXk73IXXjfyFZ66buBL<6nE!3`ye8&(LE)}7&N=S%ot}Gc?F-wI-@bnSxNp0+rVY=o zQ~&kKS5y4RtF@oo_)Dc3?XOp2+%xPtjmNldh3Ef!$MfJm;IFdt)oXmEQmf``&i6gG zPJS8c?p*tad!Ot$Bupt>kK-%#yBh9G>u*QC`;FU=gZQiboZz8{r&|1iv76>STZd;( z3mH#vm)UM#&HsP3UT5h!=)Qah(^-hqb)4`bQFYi{e~-VzXSI!v*LCBHzt??v{^sMg z9;bzk^zW>{kF_4xE6fM^kOrszWj)s&9e$Y2Gj@%AXIxn8j|bj8c&{pF`R?x$O>VE#1`F&rd#*5G)e0TWg zlLlVbS6^)PSm`Ce^Gr>|2{C!KT!XG zSA={p@ys?^ooy{QPjT-hL+4F?e6xN5UXh~Ro8$C%UyNVo&*&tPRAIXUd-? zp6aJKO6yhQ8y<*z!Q;VyFkkgU;%Vv5dBw#!FaJg2)jV18w&LPQ{Cl?IXY>luU80|x zI$lt`EIx<$iN&WL-m0e*uS!=m|2y$2c@w9)nfiVsd?~A+$ z!vk?ReTnvbhCBKr(MPktSG)67_kh=d{NMGq{*o^axo^rPmv#(h2ip?rf%Hk)dH#ew z^F_aNZg^4iK)n&2K=J;-hvPR<{^VxG?ZWAx$LNh$bcFgMs{(yec75z3{PXaUuT(vt zPZ*+nF1Qc-UAfOd>x_Oj@tS#fR>-pxH-Uel&;Lc$OH@bk#KqKmnuYIsN_MXA5C0I)TX_R-e#WR^_~L5! zp8|i+dfLw>hf3o^@HUUslX|+-RcD0P5B^sAzt)J;9eir4FZ%I{>lZ4oVYsVONQ6h- zIr9fAG>$*%bB-I>-mfan(LVX7aH--F>Wb=9^Yo{|r$=3z_maLrc!(75N7XU?ovJIV z-@soj`_Fq%eaz-(R9^p8KSx}xye@ep?4a9pv)`Y3?MKO)^=Q>?{oSh9o=sglyFg7C zta|h*$|KdZ=hbZD{iq1&DpJ>eUhk*+opYW|bX=$x>wf*C?XO$zf5`h{!~^-GmVC)F+0kC(`aLx^?HIuQQ;%L-ev9}wqw1)+PLud6;zG@n z_)a~~gSxu(vcVfh^j+%3yEZ6mM7|@nKFp62c*d|3$7;XQ^L2^*MfsOr`EdW9<`@1f zJHAw!ru9l30UsLc0er%3T35;&`}I`c+fjB!eM}zwGwYPTOzMx)t;qe6Y#il&Le{(L zs`Rl&_^N6qOnGNY)&0p`2TwX+&t2AX@J*<08^LwwJTZ2IdhR{lhq7DfX`y#VolDOp zQlC}b867Lxm*Ebca_YtK^`6(h?p9J>wVdzcy70ZDhr>Q#!=w&a3e;Pu&z-8gW83;^ zuj&7q$_(s)dpLaogI8(=V%>Flii~Kjs7z9kvK2!9lDD2$5X#0Up*?ryL^)v zAJMAx)GYt^NlJgG)}d#=x=nV@?yHPKV zlf1Tcr?rmyx>tmAVEuu&gD)A~Q1*jjzf_gR*^*Fyp00c*_03_jYjcNvc^K^A|2s`})l|<-`)!n6bmNYHap6hZJeiPh zhL4N&QLpC$-jV($@xYU>O8&n6NF0fdB*q#|L*0*VGwjNifb*jt3V+gL4df+X} zGum_5Li5lNz%ip=i60_6sCn2*^HAyTRX$tmAyRiCk4`_e@Hlav;$^#TXD2=#owuh` z+~s?yzoAJyT8(SqpJ$)<>a@NK`?yCAnfUzI+gIm&7}TB565f)!L+Kuie}zx>@OdhJ z)b-1w5+0I19rEw9HSad=5sp3v`#vOyA8e7v8HtSsJ|WE7~&4uj|d*bt~1#6D&T#Z)4POA8!em;I?KGr;C*EOG@pH4 z??SxMH^*bsH%VU$?_I+)Koo61z)8co`>K`rXi&-4}XoCHN ze;oS-9-jBF$iq3<>{-oU+%M^%Yd_d~e_J=rM?0S1g~AausD3Lu=lS=I@GG(j{X;mS zu+JY7;75dio&8Gr8qMF*d52hl@#O!#N`R^C_rezVLjR)$g8dK?W8 zq=&B(Kb$-axCHch?RxCXr4soec&&HLbQ;#qc{Rat(+{QZWu5G;x2k=rvwv0j7jz?7 zhwy^Ft2m;d2UykvhR5em%JY!l;rzry(qWClA$#Qk?fErLb@wYDgU&cQtn-BPo-g|X z|I2ZD&hQ^(d~@g41aK!se%=A>S21Sx@YBTj06$G{&DP`BDSb@n#Xc@Sq4<19hS7Sy z)ZgqmZ0E=$vX5`4{EPNCFT97x|AXiAnnGUvFL|9&_^$}AezE31yIz@JXE*hoqf>JH zd$y0j_eLDEk8~C3BSwD?JzxAw>H2zb#oz`m6t2{GHEP4bdd})A_517m=t7~toQ<<_ ze1KPYXZ@~8{n4+OJ@gCoY4{t@zzsv~&(Yw|5!)E~XB)j81fk)0~{|H|)F ze}@;JSk(0*_Bxw~GSB`CTKD4Z&HJOB>L}_z^flI>$aC@Vbx^ku|EY%$$KJ#orC^AN)yq5%i2+QeJRV&Aa8(Dgu2>r&xcbNB0VSD|Bpaebu><(p?&^{qhs} zZ}hpUui3`e1P-xl5U+#(jqV%$RqQ-|B=N!7;!`|M<65e|&ukov*A3DY^YGuJ^G;s! zJmuAihn8qQ;QQa@jXjR$cT8q#sK0idVn7*5L%j zaUBD8?NhC%Kk0tJn}Pd!LE{$xg6Dle-#NQ}<5<99_KZ?@fbwui_kyn{|$#%6do7 zne{qZc9s4>`9G28F(>l_YeJ>vW70D+KGZ&e_yZkhaK#U3o!qSWoqRX(udT~!C%%6# z98&~;;I$q(-$Lb~_E20_U+8NY?&#mc|GY`-6<+aH)#q7%;H+#M^{%pj>-e8vR_w#; zpU07xsUB$W^CZRhZHe%U-p)J7J)n4ozTKDfUMnvfSBd`z`(wWwxdva*V0W#p3%^pw z!`CAIrO1ByuC1@A_3zmS!6#1Bx`y8az8t&m5GVY;jlazMoXB5+59({JU-+8THyyvx zec5@+|EoMW-{E~055B!0rHVkkkGgYqeAC!)Tjt;WlDI4n-7UN(J?ew?elQR8b1Z!0 zwI%nSU7PdcY;nWw@6|us#fhib6Q{%1A^w>)_?@Ve)&GC|PVoQ0H)Qu!70{ujzZ>32 z`}dCU3$q@=Mw(CNAD*Zlh4lx1hWur95TCc^ZDj7hU!Z)?4m-~3@cQPQS9CUuaw;j*!o zgBxcXqoKp6B?W{1AMtp8T6#w?BH1{wDbe)Mq9s?kMs+)VfQ= zQzD)n%|ow%PQ0BLoODZaz0P~5e)qg|J9XaJs`%V~*OKP-!R!y{R1eU5S{vwx&HlM* zyx!v>Zd={=bMpJ1wDp)S$n4{?6y24`)E0AC>=l8ZLas0Is|$`TWMVOyCKv`bzb;e>vDed z3pJmw75a0)Z!J&$tv&_f_J4$quWnmLv%!=5NPB!pQ*97VKJVKm4@RFCe4yY@ek;Fe zOMQZqfgg+aoID5pK=g^)eKsfbzmk`NPX*jlvHs9EJS2Zf`ad~NM)7^l69CSKd=GK- zL)w4AwG{C}eM7Fhtm}Y3c~$wa@AYZxU_#hV_$%Z4Tanht?_(e2ljn*~GduyrW%NnY zH!U94NM4e@`Hhu#$q`A(TDMhs-U$5oLc_z7*O&e1toNf&&O-v;ka`uoDbnGL^!FP7 zUYYkPcY6U-18myt5PB$(fzIBmKbiXq@fG zuO!s9b}#IMW5aO`D;Do{Y+W!u_hIfko41HA-*Us7&^HHvdhD%w2si-g)$4f+*H^{~ zfX}91;m>D`Td?7mJLmYc`GtDX81RldPtQPK9`(&@Rd)hkD*kw@II4oM-LZO`7Wy1(-OvJ0F1Yn=bKSRl70;ow zBixoZ9h$DL>W~e7zr54Sx$Y0^jJgLpA$H%@ny2bqzec>U{@;pQ;d8xA`El^BM@Vma zy5cj%#gXH$)A3JgUnuI`v>Cp#j01!3jW`<~ICQaWoIJ;s3Hfi~*!*(qBlLa0c=)Yp z1Nw*CGr#ZtbV0^H`9pG@@(#q)+4&Z4=r&N_@}I0vSL=APBkusOt>(?cJ50V7o@97| zAKY!nx|gT-59UX9b;lR4>&G3{<;E+Is|gi_xOJN5zf>Y`@_k_+U!GoEi09B}S(<{& zAaAjH4IWGKamwHNH#HvhZO2oxez9Jz;Qy6+X*^tK7JS~CpIPomt!wao;xlisI{oUT zVbqi_y7;dWc)puW_qhQcbk&)~-(Kn1zh03)HA#6+d+sX}cq%_M{`W=bnSY>qa$Vv0 zx*$Gt|EB((>*~9%TN9)Y6NBcZhn*+icd82C>jM1rA8DM|i4TN2(muN01=2lwpI0aw48^#?2Xs2e`B~`puB|L_n@G8Za@$GAK@I=lYb!%f7!y)-S zYF@;bulZb=PSkUYMQ&$o|zU|3_W!Upf!=Z9Va?D=!~q$2`2B;sy6NXumJ|CwU&l zqw6MK*f>?!#Xj0NhvoWj7is?C0l7%~0{FoPGCTNGIx>qx-cNVf;mBJTb|!uvsps07 z9$K(3j7RA@u>Puv`@{`zV+>WjYHO&-9NPa z`uR+CIC8fIXP~+AtLTiJ1=G4RB5COHTv7N$?AH zKj^O3!K0}2RtM>r#Ove_fkPyJj~_^Xx%@Wjr+WWNCGpL|-{`5Y+4XBeQRlo=0{4uc z2R;NG9e(Gz!v9=p`IVga{xRiWsJnx2CI9?}>b2lcinyH~p@;G#Hojf~KAsI#M*^2? z|6UPB6!K;z@Hr7a5%CRr;jeR?jPSRb@4cLGh&FFcbHfAjr#Ds|1)LH%L&cvSJ);@# z&1@Tf%d+Gw@Iu3${Pz5Jh6Qk@;;&- z`tFPCZyf6}a=(g~Jv@P5DX($5;$QgI=m)TQt;+fB?EB*6AMN?-%KZW0)1{vl;Wr~+ z08bm|e}MN>`DE_lJ|Nbn^i`m0L*q_+4 z?OONUJ@2&?d@%VJ`d;WenrHq;1NPC@$tYLE=S~Umlc_%{Y8}SoRPV&DFkf~a_)N$P zH7D4=tIZzzM-*p&vh9M!)$6ZJ$rGZhgx!*z^sHBO5Y-=$++~4 z|5o$fmL*4C{qM*uajAA)eN9-XU0+vj^~4wK)pN#5_UO!gj~`q72=ns|A1K)0U#5kA|V+Mn33 zv`@uL6~BCJ^=ME1T0A57z*A9i#FN{yf$BH|TKcvomIXoqm(qy{FTz z8UOD4Dg7gjR{!_H>HAaK_rH|ucJ{oR6a125zvIxL=j2rv_2872$S+aeCbBQn|A?P* ztndZ!1oEEQXSoYr{glN#XpI}+zCW*NSNW&=1bDQx4|{lwKJRzefNysk7J9B4dsxLA zqg?j++tC5OaB$GzpKBC9kyil6rGE5SQr%YdpPc^?+&cNdrC+>qS)V>NZqcsyUHWj^ z0sh_yE|UH;^(WeU*?34G9}eFExFDOCy#HSB@xXB88vXjD{#PeCs zw``(#rRiqNmy#c+&Z6tC!N0dMk*=DD7oGn2v*kYsXX3Y6^vyGaZ|WF!$#D2fl2?!a zxobLpMM58WllCv=wKWg*c|4Bp5q;#$1M5-a_jjFVd3EyXdEbBb1I4RN0|R{m;(7J- zwcB|s0zCBSH5TV#9QkOoe~b6ad3UZ*UjY5cKQ|cPo^(Y0(y?>bd;g}+VR^P5hlC30 zIm?d4p7QHh4>>P_^k%_nJ*aq-{`K8eZxJuHr~V=P?H9ay!_>Okp<&S)ecr-bd+aj# zY@3HIg7`K3m#P<%XQm$zT$>%=tp4cX;T`3x-uirM@3z;wxhlQK)J;wizE5~lFMMqL zO!u`~^-k(@;_Zs?u)QUJ$*$X$z^4Z;LC-Po2NwTaoP6AYTeT)_$>kXj!pF&9_U&`^ zYwrU zy}MKWBC6i#;Ze9r_jQDx3pyxI$WIh5!-FTF{%gEHwNCtP5#4#k%MI`cDxV&Mo-24r z@Rs5u_uwJLQx(4u9t|EEaHoG04(4sk*T|lXcB;R4_9Ob2YPCO~X6sVVeTdsr`4*es zUO~DfUilaQrp|wi>4e8g!i%8O^+U#cKR9&B_TAy3*T<*6cW=)XIqnqxT|58sWU}yh zMSpid0N065<#Oer#_D?LKC3@8{4W$) z_1?n&fZc>=U3w{Ad}#4U@d@3m=Zanh^^#V_3E*|XtAgj0&P-IDOnd^P-EMk+z(14s zMvn_T3_4!$4?L;3fV>-dWAggcbI`LQK3HCOFDt@Z_C5Zh_1D92=zbmHEv5Gr(LDo) zs<_0~*W#M+d)b3o^4DjnKj2Ay-?s1^Cpz^zMDmVv4JYP#p5F?Gvgy~hj}w1AU^?jO z<5~XY2lWAWb>QgbCwO$j;P+KOeZ>D$e}av_aWZ&zzd|^j9&g$HOZ=j7df}tuk;0`& z&&}_v@srQoMtA9_?^|w&Z&EAurQt-s!G>D_gd%=??-oDt^o=bdI&&|$L?dXRU z4$_yT-#%1!4&KU7l$TJRIBu@zX6vdlz-y^ImY1%yKSXvx{Hbxd@CV1~KBdaGra{|Mo>x7T}Q^RX%g zZ}POp_nF3P|6Uhn71m=*vP^d9RN=S|mwlmsj{Kr{`s3542b>xXx-uO8`GjGIjvpSt zkL;~{+BD%ME>V2?oa~4AgX34aF825U%intJ2lnK6)g92ylHQu1uklKMEB;BpZ&W=3 z`?3{P@WB`kf1=`{0ilRL?GrYYKZ5R&bjD&)7glxe67|(lZe5FaZ67W7y%qCX^u@QN z*JxhOZD?X7#0SQse#X6Arrh>e1D$jSl?aa@j4$1Fo*8-a~K_=sY1 z+jU*(ifR8|n&V8Z?%O|9WczO?cbvVK{(jjl@DLjp@;lT!hba#38h)|*hvuQoH(bd7 z!B@33?W=Kv&n)EC%R0Q{iq~;Gk54rZjK}V;jH4*zLHmXE3V8tH^g1VgW>5SEUeokY zyN4$R{r>i+2lR0>_Br$Q){h!P(DlH5a@~oA=RI8OsYSTep}7u-jcqw1L0`m+0?;6ABG{BQ@=c@?Re}#{T;D7Dk$+t)sr8Ia=T(<)Uy|-}G z8P4NxorB@a{*xNsr!V~qk$#ub>$ZQ1k16K;riRyA1YTx0**S33Hm>I65c_*PP}j}= zzId3sE6ekJof_Vy%2j54af1VX^cG9(y5zU)e8bT{kMx-qbvFiuiG_7A(CsZ8m-Lt; zx>ozCn>AJ*U+*e6>Hm=M1 zv$$YF7%1GsI9<2&sLjJV>NB!=sB(uE@L;8q@Hl!8$pcrqBQ*cQ!~4@#Hntv75fztq zb!W7{kEXith~iD~e|M@LtLK@Xr#dGE+Af4R! zwE2JOrCI!2=hhP*pZpemvzMtJVE4N`Q5~9fsCi$S3csW8;=L~G6M-+F9*e%C`k*}h z9(Mj-;ORMULOxtP1Vx^xvi@(u?&f`pJp*_ia8=aV;nTpM6W$=KFx)`Q=$ZD|EZnO& z7yX7sh4nDh{jBHvNdcc#;o!-#`>74D*mH^aCBh4Ma0$E*@D8E3fG!I84*dK<@=K)0 z>b2i%zIx~J8aPnpp}qO1ydP`j{m8^k!lQcfNbhN#ZDoCiUOd6R#o{<`JmzEF;qn{l zCq<9+eC@;Zdmg!Ra>GxH2D|HaUa{LoyZtwPa+9^&I&Ir2$ElwtJF0aYrwd<0A2om9 zPIVOW9^k-bCn9?F@XfQ%E|mW#{>F$t8~J4FK)h^8-Il&yn9kpFKL@^y%%Pef$I+_jEB2;LxeLP4y~x z_4Ga02}gGwz4Z?ZacFBIe!%!w#UaGSN9cVb?zefH5YTgm|3!R(p1K?Hcgx$h@4qZR zkG$NfOqa4Mz#mnid2JOh{^pwZX03~o`6r85H|R2C<7pfjl#k)L`=ES&U-3oUr*&JU zxc)V*8}M54zt+%Gu5{8_q5c`^bFP$~kbRBfeKC93RPCNozTigXSN|aU0gowq67V@> z_t7*W5NA+#d_?=8;y6EC^E6rZk$Nlq372Mi4{N&?*?;;;2Wq?vUwnDqZGC!&<}?5B z-_S6?y*lcLZLa-5ym5`-%sU0)G(CFY@Jk#m{|37S4jH{|bfd4&Ufc_3T7|c8U z+-qqZ)Gf%Fm_DD0y9WdEHZ zUVzzJpY&%>x%rg-Ckz=9zB&INKX0_fcz5IJy+7FFt`6=P?Yrmcx$<5SziD5N$}?+T z#)K^k&wXIHSo^E+i+;KMr#15VQS+AP&By9}pl_PG9_#N~y|-`5&mE_}Pw@~$cqp*b z&*^=GFX9KSfA9pVe@5y+=q16oL%#@k!3nZ|o9R8LpB{bKhwl02r`sOt@9675Plozu z-=BZDaA8>2rDliZS5&~iAv-n9y&yYw?7s&n4=fy}*WW$)^FIooxl>{N)l#4F>`QYM zNB^Y#PWgO~J~p@v@}OonRwjGcc_aHN{Y3ab=nd7sYx}AE6_0;U9^eeUPZua|0FMW+ zGCYWO-GKo;$wvI2rRI-uKU-@Zmc(C+h^d$+Il-(|8l z;G}FkwSo0bKmD=VZ;q26!hS(NAoV%%*2Ifs4;4?x%ay;qU3FFXP{6;~bt@cx2|OUJ z8eg;gT==QUkDMsG0RIT@QOman+`jJv@1*EAXue`1`?%#%dw+0a>sRRkalo!y9^Btu ze)Z{hcHFuu!1n+?n>w3~ZS4oGk5J#M=ChM~N_JfK->W~|W5==U z)bDwI@H2s%Xa9#!Mf||=Va0133IEcfe2~rm5Lc{s406N)$7}zDhvp=`Cwl)q>uJD_ z6Tb5o4R$Lgh4h@G>cXK{F^QG zKC8a$$@PKs+5U2f>Id5IqOHeXVXpQm@xW1E&Uwh>&w1^q#J};Ziyog@ zeb3LyrIv?IW@LOY103s5I$&`R?JwHj{i>ly)os0^Ev5cdVxLl-m%ftswcc9AGq+sd z=~J-rPYCErvahmFF)!?!^pRbveH1=GJ5R}>gR!sTW#ac!wEx1-XUDfBd&|!ms(P~G z&_!>_UctY~bA*phc%3->?!EjM&-D)S=i(f#Lv-Ql^d0`elJVLSFZ-hZHpbxxkO!ro zi~2IWHoC8fKlHKsYsl9fq&k+}X9YM=ProqsZ*yDMUik&BrAb1 zjk1rEZC{A+*kK>>>&c^{J1;v|<~MkM_-|Xf=k`(jaN1W^r|>bNr+BUQKjj6zcp&`x z>SLQEUT5+N#4GG?>QD7&YF{8;S9})ntFn1)>XX~E?EB(6a7nrTw$2OBTqJJ&T=u+P z{+#B`qer-%)*-km`p_!vJ{A#&k^dB5Mg+HYrR<@2dE!fotElhe4;J@D^cdPw>9ctF z56+kWr+j)mR{mjLrivN~9Q>mAmOOQBaBh3)y`8G}R=RUuIGH%&wYBzo zV9DTo-+$58K?C|;Z^-W=Zy>(8D1SrtYH6}*`+c=(q+=aW=Ov#3kEcC{F#-FFeWm{w z9SHQ|*>~ta0Do`isSFP)Z;PL*Fl#SWbAifIUMf0%=omJVx-|4LCF4ucZK8rXSU2=Gl z#K#aXQhW~Is;$@WEH7K;uWOXw_@F=Pj7t}Nl~jG$^yUuBhlVa2_2~D{Sv5g*>U_VR zB0IZ|_TQ)V9FG3K%J1Jgre9bo`zO6l5C18A^XhB#_vt>^$F=_SJ`Zu=d5Pn&Yc+}o z?LOX0UeWcjf9fOm$_r^!G(eq>9@9!8l?>RiI9~$3~a91mm?J^$T zj}zgv;!G#jX*xx%i>IbrOQGI%z{a0~`2k(^W-90rfWc%48qujpRZg|m2 z+in}gV;8T|`||$alijLq2f@Rq`vT7~O7l<~CKUR;s@C9N11Hzfb&wqU8ivfHy4dRx0|jzG@w^wzpo9#W$E|o-zop&d$L>L2DR@;!+G@+uR=?j;T(ny zbntmIPM%l2a6ooFaD=ty-*Wp>-vzvA7q-Xilm?>zp!4>0Ckl6Tg7{kC<6LOGUW>q$brKfQ=vBKJaWMT^IXjxRR-cx2v5N>V$XtgU(Oh zJM%l2e5E>Cg*&`}cbX7{e~UH_o(FnUmF{TG!(lcLzK`%!hpBIfKJzQu&u5v3Yg0X! zeKZf$&8Kx5{n@j`Oc6iUoStd-t>3jKPbj|yuMhkm*>%f) zWh(v%ct31BE7#zkT(0L;?)w&R5IDWhgrgxpGGF`P7H0p_e>Gk^c*!Xv!qpicQ5Pp( zk%&LLf&5(JcW^-B5sBcV;3aOd^Lub2_Kn%I&WJ-J{%l|cz&bC1Mh&2 zN4K##kxp@JQ{S2D#gXfZ? z_k(X#<5`)KKVkmC52znU$I&M@GK|-{h38YcXZT@pL*-3aA5+w?OCDF_BkvQbKic2h zlG_IC|J1xrqugm1);(C-pwjJXdW6Y*<&C($c;E8tu?~r&xnK1|aleW96yv(eN2q=s z?f4<^b3}0S@RFV&`v(uU`V~An<>=k-toi}@e)0h1X{56l;VB3ACI0nA>aXzB%U&FD z&dsxHN5k*#m+QSje~|rp!aEJW-{95C!0)J6krxrKj;GJzA>k^t-aNQc^|M9g&;2#Z zhmgmX-<<1>lkXsJjeku2ZiVvw7YZjpej%IhGH*To00(P+nQ!a}^%3wzN6Y`{t-S6- z%gk;Q7Zv@>sd@g7I1e2U>CNQ)1n6wg_j&WIlU9AvVQ84~MC;T8zwF>P(>heYl7Ht* z+fTtQ>HViaD3VVr)PEOG3FyD{ksp1Z_%|NpyW%{XpMFlyGmn?p_sNU4SU*=(KUW;5 z`0=pr~imN1Nj8L)9-b8rjsx@$6tYSRo=LvN`9p3^YN<-=I*fX z#iMdu6Z;jqE5fyU;e#VQnHJWd~+>NxiPH`eAj zly_~uy%P?QJc9h}xR>%F;FN{e@CRz03g;HF!_*%a>b?3_dB}BT5BC=yfc!1_qW;q3 zBOk_lr1(3IoHOQ(?T+Z+R<@Sz*!AZAuE+ihc3at}$`Ln!?>~?IRM#a>bEw8^_N@=~ zLD|C^r}r|h(0nMajN}p3x2EHlCp-0j@c$~VSe4###=GmEyiw<{jrM))AAM}tNAkCd zOZ}^=tJ`=g0{k!J^T40pW&LG~$hWPLPma<9%JEw0p3|R0Kh&#wpG>#CzoTC#Xuk0G z;DLc30eqkI8sqxb-xYa2)a$|9)a$*o`>ICoF^XT8{lw<6X^7*!(mZQ^J2>SnqU@i? zuNb3sM4k_v9Q-fXGxCu(j`f^$!gYRlXzHBop@)Bn`tq^2T>1AKUil~){QmrTdq3ML z{IFoZ*N+*~hy6Owdz~-5Q@=v|)kkqxt=mHTp!l&oJg{2}fAyjCEWq)1(S8h09GoJ& z5cGFaH+Hls;<10^p^k2^%enXv#jA7RXZ{~gxb#=gH9nU3a_^IBUjBNl z%Rbi~8{n6LR}H=n>SEM)=u3kCP`rNRcXIw=c#hD|eXV2vQ+}SbGP$+OgdYFdqdB?w zxWhL(arxQ~euOo7W1MuCvw3LTSNFB2g9p2(?2FA)b5e}Uh>J@3dVr^jKE?-R7s#jK zS8Oi)LCsmV|B_F^AK-fM7uopg-A;=8@K3@2!+!;C{;)A8ci->D@6zL+KX%U6C;gZX z?epT5yT9^F3Sadp+P{8p>rCsQB8cB3(pQ1*sg0*9$HBwD(Ioy2@Cxs#US-FBFC5K? zK>g!(U6=fy9oL$Q&%~n>TAYWHD?EpqzvlcKSBZZEUDZM2zY@Qc-@Ez8MSmDo9j3I* z|Db+{y6}toIMA&_H(UHIk-m{qu;&84!0CCFo;JUQJ_>l);eokLd_%Wq>u-5-;0b3u ze(Zpf6AxnK_%`DS@!|=w`ET4WbTQpg4-W@*N1LaTE9!(+<~%T(H?Mj2cW57{UL;(V zo^yAt^VO;1wW$8(xIcA;?1HTc&jI~38%Im}mHMQXDE@=@h`wF%=Etityw%F|A6uNg zce3ePZi@Jc>^wsQcnV#|+uwUS@*2tuMe$?%N9Bh}pE16vxc=YrXTe{As|9C9{ddao zGp-$edWEYLPM!R-t}FXH)P1UT0w33Xx~}rXn#X=3%@qc)#i!i?u(%Ph!6tyhi@7 zHAR=0x}6<2#$mV4mR{&I>A>2*Pjpk-?{B4sK%MSp`4R9}!>f+|?fTlsfBN9TPj2|) z)3jsf12%bn<8mMFiT7Qz-!--HSbFiuNAk&?_qwLrHjjLmo~`}AIjg_*&GqiFyR29E z88*`Mg-6fEKRevm-tQ=F<&G9VBI88go973=iu@d{=fO_-e0^_Cgjb8RwrTC>{k^gaGfS>d_#Sh}mhKDms2iUKreO&yfIge%Af7U(ffTO#H zD)p-~-{7u!9)A}fpy3dPIO+0ubl|&+cMCiHneag5G2r8w)Sh>)G}Eo8_esC=tF@0G zW9yQ6&hh8$7vl>3^{r{4e{}I^_fOTwZT^2Uzo}H^E@_{?FAWWs%C5p^3%*@EK>k|A z&&sRBCpSD~`0QhTN&hJx{LUFK(dtC+nMZdU9!RYR2QD7FW`FMy#D}T(s9&Hihn@s_ zUE=%kjE^{J+RWQ}?l7eb{&k)w!~O|J7$1~^#%+^=IE_yB~$GyV>@UMc7B#rzpGX;lu1$@ye+epVBd)578mBi-R0_L2&=@byO_c zxcB9Uy_zWA@@)(DY`tgG&k}ej;Uk0x799|tFL9=gcN=$8d)~^@ra`=&{&eX>E57mK zfsTp%`z6|c?K~x?_)Pn53H(u9M|cfzB;@rER-GyPeOYJlF8P1x&)9jV2dlf4>yM^; zl%%S=F|XpCjnZp~1^&sBcpl1p8OlfdiOP@A-(JxBDybe*wu|D?@$gfk7fCB*Y^cXi&PF3JCRdF=Sj!e%pPSO4+nQ#7xexfaa_ zx*oWXt=AszQN<~9G~eK{>-9X8cUpw5hjcf@^G%+v+WlPM2b!q!wTXtW=!iH8~j<;wY$Y=6igEO?_2jsdHY)-CC#mD7qE#cAbYjD|Wf_$)CQq{|?V4@K3H3 zuZHTM@kz6XF|Uhc7uZbpXjZ5y*hlyco70nJXPbugy=>))SEt_{aqlS&Eu-B}dM?z# z=%)vtPJb=DD&iBAooh|WuRWmoxBI2)PMPF;3T4_OVCTsclU?M!T<8T-I&% zmqUW$NUhTm4!#)pMShY!K1}<9>TzDWh4ErN7xpdkBFdBKygkD9*?Mb9(On&z?Zc~+ z7xZ3ql^wNlujk0~3dc>JC5{n)!^Yxev*RZ?@G$Unp{uyF@)N>?cjlWc)uJeSBhi8&Jr0Q=vzGs-H>%zZ^&Xo98z4AX^dX(@sqoWu%6kqD;^53QV z;qm{ZW9S#lUf4YJcV8*rbB*O6z3C1%y04Ts%8o1hCH6VS(RVDKN)L|kPTl7timPDbwMs-5OF=RcsXjo)3&vkuMm2bH(>w<`Vxf2usO zzeagua46}hORFy1Z%n8<=;}MJIH05ZLG^t6e(5KAc+90E7?mH6=&XKI@c+uX7}&^2TKygKj?LEJX5ofH-fpSpdq~bJiCz_X z+^gh=k>90Xx)}e~IQp21c~*_5)G<^`x7~2CQw|(RVwXP!{$$Lqi zaxFVsBtb@KDPbm8=V$e(Ch zQ{Q@mLl*@@QM%VYf)SrUz8sPKkobTOVD?Orwd-P zd)7Ffc-H25tSjPqThlw`->fR?Uqt*x;_0RGBk$bryfd#kxnsW0u9^11^04ZsbcXhk zgXNzY{(E9z|HZGeagaB1p-UlttJVpGRNczcW10=$wbp@E9Y){+iEkHJ`ue zd95SA&-Aytgd0qUD`6d;+J66CJk2S;6E9c%W%pkj#+n_qb<yJ35Qu}$OgEw2e%5h5j`7c!k^1$zfh*!{+9SZ(j_MtX-^=Xzg|J9n$@fl8XNLaYliCdiiyRL3+*<0{5CGnYb z)$!kDeE2ZU#flz=?Zx6i{IBP&e{I*Lk`>Xm<|CQrS3QUxY_6TKa&{0<*KxQ25^2WE#@VL z+kRJGk7EjThP>Q8zemE`{;eMZmNeMIvI)^YYZ))o1W zYjoXN`kZFhE%6>y1a!K=XVDLIyXML4VNF1n$?RbtC*JHR9=iyhO?q>Y{t)K(2-TsD zFS$dYZyf)9bLE4ickEv))Ft}3Vd`6Z$M*mDweTw*^#`|e*X zme@7K7)xx#*kf5N*o`HzN3nNA?9P$1vBeruF%~R~6&tRIx+3WBW}eS`vcvD|AKur! z%+8!SbLKfu`8=Nw{FdO}i+E${^^~fe`1Yc3fgV0C@w()?A>iV~_ZK%;zCwIo`FD8c z)z9yT2?yJtem!_a#D7BENk6iOj|ZMrdmm~8d34QsPoFY< z$J9lJ$WArcKE8lFWPvZMX_BL#0o*j_fzK=F3;FMb%YDb-u3P07pP>3?jm8ac7Jc04 zh##%-9@N<_t9tl_6g($5@zR6lZ-8^APN4aT*D6m|LS#coj+~oRK&TelMH#P8^krz4}m`|idV!xqP&our_MdE z@93#<9>$^H{dtPt!KqvR<-??+_uLat-Rbk>rhguK!X2xs0)0d9&cYurepyeR;@`3# z@FYL0d_6o9@YrSJEc=JA%RbVVVB@cJhiHAPp5}!Mk4|+B_D%eV7Zg|6-;Z$U(cAad zRC(+uo{A`(w#WX7XIA#HH4*+f${zX^veUKI2eozhd+(5a_U;kLi)$Z<;+2V(Zz$*e zjyP_|zWZz1BY-eZ()r!d64Z4IJ5_pL=}C>mR-Sb1!$1 zc}VN@d#!Kcc{|U-6hGU(SLOO| z(%;fPJt%-zrtXhlai5((ex~#Dp0H2w9-piEvg@=ZHEZ-=(x*h+uk%NAhn2rYci8vI z{J*~8O5tB7WQpMJPCD4Whu&ZHe|dD>&^0FCWaH`QY772qnTKD`ll-(DCmeLkac)K0 z|Hk(ZILOvn-LX0D>tf*(obYMrjq!Y?8*1~~d{8*PJr_m1mOAX`PrjyPU+jp9clP0*P6v4pQq?wGXGky;EVj3ZnuqgsHk$I?tdrJJnxY#e&!k@xa%${Rmb=;P?^<`wW)YwCaWcG7E!p9-gRwa!Cd zAaz9QzkJW0&zudyJMHmBjq5q-j(PU4Cw1N-h4`Q!JojF@$sW8Gc8)qho8h2xJ>T|G(VB|q^P&tE1(bkg2v1E;UWII{rYP@+f@p` zh5qYM<(V(ma}`cD4iMgqInxI&(!`ae#JQCqWgyq zdZ{{0UF*@OAKmenbZdQ*Uj|1vPxn)O;_Zk3t+F-kCOcquvDVQifzCL3qhHv5L_Ht= zG1;fl?r*XK_MT1*=t+SK5>DHLelma*_aBi&IY`k^HyNdSs!REtUqxP|8^$DQw zj=r{ZL_PJ7>^zMJhojot!{!;eeir*U*C&5YJ?D1$jX%G$Ys=({4sIXeQpaUD>BVVw z{xaSQKN8;S2jxd^uDlx06`cA!<-w^R=zaGGT-WiF=c>Ag$uD>K_Q11xy7^|GBku=% zl12Sr@O_nTq~Zg3YT1`-+ONMd?#k9fH+QC zZ=?I=hsti*^+xHsm0_W9EW~r*37Y0z`}VYP6P@9{eoi}Ne95(eeiZx~`jv{ffWE=5 z(=&j-EY{x!IdlxEE8%yljuao#KB+pEe^~2``ZjvUceGzmr7d;ct(@vAvG^X2c1inn zTx!rf>>mEAeVzAC`@5g={w<|TFYX*ncjntGlwI92RI6T0{aEMGK2};ohk7fg`f>#K zK>tHGt%v($pC+8J>93DpzsmhR-RR^o%aD0gtq$c^`<@gY1QepH};ORNqO2 z*Ft%$DE^^1RrnG1Wj@XR)#Uv?C9Cs9^-1|u`@Qftnuq`KT7c6dZ?~u7XZX_4l#V5(iigdu|KTq_s(z$RgOL^a1rD$rPmzMZL#a}|CR*ZXZpD7l}}=x zDxNs{j~m?4CA=m4g4x3X4m&}g0Q;bwd2|S>>wQ(gU$y4_XtIwUoNr&%hc?#r!BNvc zv_SU@t_Q!baNVYz9qVtI^sj9^BXYcmbW!!Zb_w6;xa);`*xJ^ER~?65nKOKzI-Y4nf7v-2zE@uY(k(Jdkmta?UF zRp)Ke@$ja?Kgscxdam$nDF5fBcNafW9rjgw&XGPr@MFT)MBY#7Wcx+(kKWVzxLEmt z3e{z$pDsJpl7br*E?d8k4)7Jh2XytE-*g^(RX->D@B6p!3u~I}h<~*&(>LhZ_lx$g zHPL#EtWV8<>1yH6S_|uSx;yZs^N;#Z{3Yp4wT zm;PnVr}T{_Al8_z)Kq+My+H2Q9n+UKM}Q0YJP_Y_91v; z(LbW!i#i#6T=25&vg_0iukT#r_TB6F)xX(y?I65R%=byvufe<8yn^rT658YkP?w{= z3Eqsp?a~Xj@1ujTj_s4)&Nsx-M~k0Qt$h$X!TxiG`~i43SvvD2bq(AS4L(_dv z4?k($nLqq}x>?2p^J)6H_UDP32l@i>%QQ}OpuF&SI&Vt?9@MT+J#k$}UDSS;KV9ZM zv+q^mnht+WpZMzg^q?&6{3bcWa0q^5#bu``FTiuMzw7CQAI$Z#>30@B44#Udk5Kpm zf1U7G#MkJ8KZ(~>-~HCAca^?AaOmY{>>K;3-mtqqJKFDl4;=@8kaWC!R<_$`id*?)kMFj- zdDCG0mdlfGH9q)@(J$Y$aG%`&Zub0|_6i%dk2}l$*|Ng?f*05_%+dU6o}=ktHUxWr zofGa$^H&#EYTnRy)BW1NHy;+dwI5gGAz_2|<0v_;ulhiLJlD7DO?P*z-f?lC%{Sb_ zElJdOnd-R6C&%kPwQj~}+`_@M9P4V@U%&AXr}0PTzf#YuO+0sYUjAR>@DIAkZkrzR zhPsbBx3%@r|X`G_(rcXY_887P=;YaDOj?%xw zYc0L>y#CZt`bY2sZKdPUU)WmTN7$!FFLGo3ZtHKOVCyk)t28fzbv)OVPLS?Y{fytp;`j~w$HHP7DOyRkvfMSsV0nG(>6XZ*~=v4#B1X+idl=i%1T z{PSFiSGX?g>b(s2_h3?y$=1~UdE-hw~tM`uJQi;%Ff$-XwJVO z|081m#>!ryCu+Eg(V?@>Yy6};2J{Dyls%)qkNtzkS#|oHw-3A6pzC1&j@I{HI$yR9 z>(_TxcHNk*$Hj@`_>FWNI%+m=4MFi_&I6PEUbgp}w6{y;d9mZS(PvF=A8p-Dl>YmM zZo~F}XMa@wKXzt}!yd~XdiI0t(8eP|&%)ntX7k^)H~X6>{mw19#S3I%U^&;B`U6ruPBbXTk$1)DBCHH zMOQ&O2%db&BH`PfQCy5J06JO3(Zsz|6@Lpa9mO{n;lHQv3A_w^G3av>XNp%u_N66J zJto&t%I2qx1A^xPz5~^z{JY98=rfw#=Y6hr>R-`(R)$XsaUwdXy~DejxA~ek^qcNe zUK{=ipAVb7hg@j zvA7s~Wkml-`29FHv-2H-eXbLPCxXA-mvmilmV2nLMA{UEO<#L?Pkb=^Z8{$z0iy z0w{~{bgjz1)>*LsZPmtK(_Ty6Q7beQ5{yRR8~9}aPo+V88S>HHq9Ecm1UtLwlU z3ttrcI```NlTW=*bzt5X;hEwlsxQOGiVhn%UmM@>aH;Y%_PvYdt1aO^>Dv{K$nUxF z6;tlLt7n+H^)~y=zVY+q?rV0u`ixGWhV|tF%vAC`m z4hFvK9mRY9@66skkxb3Lzm{C2>w;fn-^5R}dHA*6SJN&I+^qI7Z~s0b+|xcDDg9dO zVVA&qpsuuqa3S$chVrZM4I?c>ycv2(u&2L(Tw zt;3pd$FqmLFnzZgcp$y{yWnkZ$n(hA1$qYMb-ns*J$YywPe=`9rR`Y%67SIGa9{}$_%2WB6|?gHF;|A9}Ky6xZPKj0^I7T=Znj?ymD z1)(0@Th}etqbED+(W);;?f+VTBiGoEf6eiEJ^B)@^D6lRtOq?8y}#Ae$8#P_cmlf0 zueaw?m)AeQ>14k*jdk#Eeq#PNb)=~E58s)elktE3n0~1GVP+3s9}!+xoB=ML_`t49 z|6-r8NPmakBK*sLq;9v>>IwHX*978-4b+DL4f_C^FvT??5=(`#czx= zP%kAu06!)?WyIc?{rfh(T=^L5%X~21R`oZod$QJz-PiVxIHeeujKmN2T;Go0C4h(c z%JNsNhkPAesJbuXWPFU*&eJ6fDC|qMj=D7U1MH`GQ{s!luj98}P1Fd# zcY@oa{eD}{M-%^2$J0LRpVYWzUn4k=>^$XsRUwa5cWmgcIw^P#oB#4Y)1HU3X}lBe zH;Ny|Unu)eedZ#=5&MtDyCqz4j_aO!@oQ6h&K>O3R~X^j>m>UR&m?-N;Haew5Q}`6 z;{&`y;5`|SaLF;dkH(R%S^Zh|eQcN~yfZlJ8}wZ~xpA)cFYw~rx6MmA4lB&d*ibF~ zh3wzU`vLC-I)=9>pVF^@>#lVgzlS%J@yygbo+vv3|AuhhQ93~JtcS0exMJ3~DgBr5 zi(aAe3vUz8HXgR*#f*33p0tzU5ghpEi}W1fjfO8+df5?t`|9?%?z-9TdwmDjNc?-g z>bJxp@+%_8RkhD!Hk}@X50BvSHGWTAW%J&;hMv@*0Imdog!oswe(`ULGgPOI+t~UG zgY+EidvDjEy0hZO2p=i@_tbI0QQLTG<^RE7F(_DGv(CXw0`3mJ`A=jI=_^G4TsZBB zeY{q2CH7=X`So_){!Tb>?4iT{p+66*SQs{Yfq9rgpW)0 zSuY-(c!%r@d|$*vPcMF{&&uZR@=NOj{Qcd8SDd-zhq`ZutV)mB?!Z^Op4yh4E`C6G zM7Pm6r91BFZ-U>4e1Ofvwr+NNd)PD`JX@rWE`QH^+3!^2K27gccAhyW1g&G6mvY~W z<{zC1ul@p${;FM{eCZG;zVitGka)zRcsk-9>N~4=Ys(2cJ~q*l??AufMdPXQb;_@( zug{~SWO>}7Zfp5nlhp4l-Nq>W(J1}z_=fU=v$fvv+p=+&bvx*%qd!o*hEcq7@m=w4 z+I=oe;3?7f6rBO?8{9SHxP(4@JC9$eaV*ui&NCgQ_@wsn?7YqE2K)qYLwgF}4UgU? zy8lJBJ2xJ?Xo};#x?T1Xy*=XP1KrPWt$k>{yDO^$_i)oQLAHBRo+ta3-Pa26sNhKS zp7ab)%YPlDeG+}-omJ;RCx$u}`Fwc)!9fxykv~OeivB?QRc=*Z2j|^a*HL}NpCBC` z=_I0i8^@`xF-v?A@V#o?>VC%MeZrL?djtMPhWb?;=WOegJ#R7tHK|Q?Vo$8W3KzH`|^j2w*-ChZN-yg&uMhnM}5R!C~n!~jcl9^ z=x4G1=xavDPwU>>dK(?MpRw{IYt^6CTjRc3c^Lc{d=EK)JI&Ez&nk9fIs)C>?nLq>a#{iN$+D-I9PU#yn1$>rvB~) zy(iQOPtd*$Ka+HgOK^I^`+7 zbp5>IF>t1FU*(S`tB-tAfA`W~j#~=<(O>Jv=4}XiQhA@K>|CTic9ZO^9bbok zivBX^_pCo~8g@K&^eH*Mz* zd-UtcgW7d#!}+={`laF{%k{X>jR3z7p0>zmx-dz^FPWVeKFu;;)g^^`fa3KsUmEez z{4DPMIC(*zPiH*%g9AJ;;-7(n^r0Y3B>^t=w09kb)=wBGDnsRXW2 z_2Z^`;$LsL=pMn=<7hXfkniai)-CkC)#SW7E3~f&Z|%vWz=xoJ*ZuZIH=FO_ZSf*f zXNE7xM%>MbugOavoAZ0FC!VBe$M)_{+1u&_^-%KZ~Bd z|H5HGeTVUq9rk+kcb9&fQXhL(eh2=(?oaVxb(mO)^Czvb9_n=5|MY0J4)Z$fw|c(l zire|ylI;rjNxx=Wik>_3*`Ymdt29a18%J+xdxbk*eQ)^L z;AcvYng0bJT^IEMm7cfXi|OR;u?Rwp2xNA?O?h8 zXQJL?=F`Sk?bglK-A{?}uzir;uY4eVq{{n8`WSBBW%nbm{HS->{+7Gnne^N`;ZMS+ z&~Kg3|Lg7Nt-mYw_4W_n7V)}TkDCPe0B>wR{<6Nw#;OO?&sAgnlnv^u(LCfj;d(Dy z(&?H{=HKp{ep-0DSEPq$b&5%Dhy7i>*hM) zN1GqFfagx%06bIV)79sb$D`t(jqq+LucLAIv*+5le$MN7n(`|T3I9^R`(CpbHc_`! zzgqK#q3yzk<9dHy7wNmkzwWGggMW6M@?_Mj#Ty){AJf-m^8)Yoa7W&DyI=L_wA;4p zgz;a@jpvPTbi(y&{H%{viFB*T=STXTz=42Y(LBJ%8+k8YQ$FP``E52H`iASAcq8MO z6Fc4dk5lWyV;e1cxo6i^iEywQ5BrtYW2rR-*MV+kj(1ajiTo^eMsNyG$dBJlai;hp zyl^s6x(^M1RoqV=mwpEue`Q`jCQhRdLhCfoSK0AB!O6hyp6krA9n|5QIBczOnDT(x@lB)kzK?fj%MP*r z(Chp_`6KF7*C~$&PqO;>Jvu|=acw*mvUep%zSH)%$?lG^H#U8KdlGJJpGPdglRVBT zuO88(lYX;z%2Te%|4g0|Jtp$G%Cp3Cgxga7S@X4!b?2pXrFA(f=a)ps#_p#}Kz|Lp zh>n){RQyckH^m3zM`b!NOB3TI9~<^mo`X7z;u24u1Kl&~ALpo^K)nF{WA*Vzcwo?D z6aSf4UB**yCa-^(;-LK%Kf$Yan!bxSCn_%$sRPiT3$6j(Hu8AFV@C1xcsc6O69RsAB?>3KMHTc`ddSn zEW%$gThHH~W2v;6>LB{`W*4`C?vt5`jvg0@Nd{ddrxzo(i%5K`9^pri6^A9=Fgrw>hYGdYr=`?TU!oo8x)Qb zKkQ42Kjz8LC0?}qMAxQIxLtWg`+Zfa?-9RPc0Tr2eiFV|JASYe-)x?j=e-=MO7ZZ%FlQpYv&E7p@LYeCoIA zy8l-FMEQnzpm+;yoRtB54thi6r^xG|HzeNE^jzhitq%@dQMI1)(ju>OSzj)@PPy)X zik^$`5%CI}H}W=qp7JK*{fzLE9QEL>+gx`#O*VX?hX<1U8FdP9tsCk6wmzl7PI0pA0P%KD zy$?0{`m=G=1nJ*Ia5Sa+EIwVH=^=F&USw_f$fNp4{Q8QwO6r5R^Ysbh6N$n(#yu5Z z*}pGL;dhtbPlT_%QFR;fxZC*4?KiDcA-~qxt3m=o-BEOG3M0Vb$3E@7iyUp9%-KO;%yyo~<@c43H zSo^wk6CxXXIET1*eC^RY2j7RD_7k#yc6=8n-7GJB2>t63-aK#yc6?uOdC}?{-QA{HAJSUk z9~u7TrF2L6E%2U@cM-ndU#k9i`K@01j+)O>5FXO+qIpmq#;ZR}^F`cP3h(h;#XoZK z)x)c9zv%OnIh?ZFX|b`y(Fg z7}ReU>30KXfM0RK-g7QI>!x9DnDWm(c8njbc%;muqB!?ai@!Yhv*+c{!M{o#(8j%k zEA}z(9LU$u7s2`HQxKjf!cSo5sdVH8?EA1le7&La6!5)@7ZF{b*sS^{czN;&;Dz22 z?q!kqY(G|>NY|zBLC>{1$A{2A^OX7w?D(Y#_~2^cUY^S8A5Z7J8-_#uFu@1!YUoE)e8^F3OB^jQ)As&63T|7l-nD85HiLZ$ku#W#`Th1L>I{MV{?!p{PqD7uL@ zui#VRhwJH(aMq*KJ9U z(mo3x3w>zz?>+OrxuV@28{WzE&pQX>zgm_o%=&=WcEoMe)f!*1eF~g0{SEXx;&0mZ zN^Yk1JNw=ve5v}neeX}-soo#rijjdnE^z&pml@}7)$?WjfGdRG#?CvzbyWX7cv-#I z{$k-5;KxMQ4Spl~Im{leg+Jys4_`TH7<(Yya&PmX{8_1A*hK60AHokl zAiMOk?1K82qWEn5a=mYgOUOrh*1ha8{IdRH`Ac@)f%1b}68b!_TMx_LcFX*{1?d)h zoZhFjUFUH4P5;FoEKG`c`GL8f+jq)C+xeHuzv>srqr(S-ok0hRIv)LtkL!NHcLe2M zxvs^Vr2y{0uE%~&+}Y19P@ffje&WlF1wNFL`lQM{2;w`;d5qu{lRl4sX2xk-o;~BM zbk2{JUq1cQ11Y+K(szvTcg|FO0J{hti#QjYm+&w-?>N^xL;1g1J6-Yb3(jdv#a9=z zb@*=Yfd5Cno<4wV9-3#kPsO`IAFR#KSa{ST^$z>JHBtX=d{liO7s`Kv$Be#7@ySK{ z>30?G<&ri0*PT^gweyz(ePHmi+3y3w5AqXlu+ND9fZxWxKj5Y6>h6DPP5-gy{_e!# zz1;HIdt7$dPitxYwx;mu75S{XIq?;Ecnj#)fQKL|@Aj?Y&A-a8q<;t85q_cc7rg0H z)dXe#*Z;th}_%LoNN~`91?aiG9X&xQ4s0+wV{G(KXhiBOmDlY`NR) zKYeXnS30G-P6=MUxWD#g_Iq>}Y<%T?`@kO8uV249x#s$F@2!|t=9kZO7?$U}j`9~} z*T>sFP#Q*F$isI_ond#`d-l6^mFEDbAw8LfCGGu^X7-DZ^7upJ^x%wbyn{kjp< zP`m<>{7sGvX}0GwSNS{i7^tVdB74t%H+zGJ_PlVtZh8J0-6QNLaTq)o!s$l#L7R`t zz`P6Jh8~g^&dp1|CVrv3-ALga?eA-dSA0RIr?fPIXO4LCc;yE^(Rt2R{<)uUmL@~QMM4mVu8-m3v&y6UBu2ru5E zb&Ow4e-yeZ;IZMMfd>hH!JfkabXuZ#`xb!vT3>dJJPN%2=!EI|@TmI9iaW^zqmMRB z_!sa8FKRv7`!zgJZ(X4Et97gUt_<7hJtGc=pLQeRFTq<%kIS*fgI($>|w z5x!o}r6oB?`|oJ=6WIJTC(<#CT7Pkx{{8@+?-`vReMIRr#pkq-vmW1(AJb@kN6AAk zy*%@-9z)$uldfE{R=E%R4y`lsFvEB5;XRd|@w}flzJ&>Sb^G4SQSYbzul%$}pXdaw z-`RSvZu;u}V>ftdWHA1X4-@d^@H{t}|LEV;KB4)E2Wr0Ty4_`;Tapb7C*r|>z<&k5 zpLBw}-Ybv2<-Wfcz7xC+dU?u=`9|TVi3{;7KG*o((|EzRyomoKeAEK@!*g}q*|Wxe zvgz-aEEptzCC9D5Yx_9-j^c~(^mC&l0N=#D+JCWszg`0;PQT16%~sb(`nT?tIxl>MrPWg6pU5M_&43+2txvmdy%TSBM4!igFZV5JJ*j>W_md7P*F$%My7nQm(`V>D$ir`;dD&idqF26u z>#?goSwF}gqHC=8wP!$w?WDpwES13d6DQHnH(Jj_d}{uuT~{p}K5;j2H93zeJUZ0D z;15T4bcXysblOVBTd?3dt*1-1zSdHG9Nq$(uhtYln*I#zrSxlJQO`2>e*^g+J5P1^ zR{ihbDC~Fep4EZ%@V@NR`kL28;vHN(-S0SIQiFTwhEp%!bH;i>?^8rik$4jP?*p=D z%4^1BW&h}p!VdjOzpL&SH`8-9zTG}yd8T_bz;({{;a&lLCiv{>F9e5f_XYl_+C8B7 z#(wXMUUdY&Y`+sPx2DW9eE?0`XNu2dyaVSA?)x?Q`|AJpXBDp7lBhoE!Rgp_sUKDa z`p~I!J}ZBqMtD@yhn^BLUGM|8ap2iG9vljNv3CA0iic_(ai;y=C(o;czvj84!)?da z=6H1bJ}AiEdah5uhW-1noG0v$;ytk6OL@Pp&LjI@DoL**u2i0XiPj%Fjp*6gx*PA_ z)OyVDkJpcJ@;@T^H|9SU_tS_jHFZqZBf8-90kB>{W2U@Unl*$ zoCoEO0$y&IyGhR<-f+9`w&Wt!>+C!4Yjr+vvs4FzUx)R0jn;$xU7sKwVcEAnPJ9%e z_fmOr?GK$paov^u+U&oc?i!7g`mgwzqw>g6ed#eQteZA-5U3v{hbGI z{E+H6_V4^(ILd}RKzm3J-eDEl`i*!r8`rW)@o{%}K!;s^Gx z>GI>~Pv!SUoqx1Gvk^7chsp96C+Rc$y=k!cobW&F7wi063y-M%TKCbG z>iPO3m1q8UVLp4izZCM%t;zlRcj3L`RXXnv%6Eb*i<)1X$vy$Ty03KnVR}B`rtT>m zUkMIe<6N3Nqw7*PFO68ZLHAK#EVx+L)x6m{e0nqEQZePD|F{9?0b5j=r- zXJVmWt+Xn=hUy$b8t9so$L2F^U$v0(V@RT>9*hW2-3Orif4US&C^(YzQz5@ zZ-d{_uG1&)V}mD%I1ycCa9HHkrSIw$hekV3TOz%@DEqD7!JjTn)OX1Id-b*Ee4x^k ziPHa!CurTgs(qaKRi8EdWpVz@XZqar&Fcw%;dkO6pP+fCkMR}Z%2vp3x5>{V9#=ni zuA?LTa_phHr`_jTPWoZ~Nb_5x`1Yx{#0kPl*zv;y_-FF%_IqV0_A%Ew;9S)9t_uS#g-eLMT4d2zy8x*8N?ul!vwf#t7pJ6Y?HxL!CPf2ZyPo&fr{?RkEgh;Pd8qr52dM19*8Lre2m9mtxz01<5kNmqJs$jUj5L_3%m}V{&IA-iO;g@G>&)ZrK(Rm8m_FPo3HC1 z+dhtKt_y#c|Al_Gcyzq_uRZIJK5ydwWw!qOac5dwkKd=fhU`kcJ9)yxoj!S^m-~%$ z(3cAL-HstjAnPbu&`H1-Yn)#M+4t2mc>Ke!uk$if5XxW+o`OKND){8Go7`Hao8 z&f}>k!8db|>@K>}^nYEW_<5${EyequaWF3W*Wn@UtN67^dgIUOeT9eg7Mr(*8H$(D zBly|k<*2wY!Uyoa{50|u)U#}T4RX{!slS^3LfOC2^M*Io*2#phr|g9NJ@IUngV)G@ z@9EI%V}HSpqWdIXW=~%=dD5qKztrEpQr^hU+r^O=B)^5;A8|>u{ImCE@34R3N$}J4 zzIKoeknaZ>jRZ^^yIx8%-+P~WQVYe z84?>^9eC%fl`d+@i)UZRhEk=Bp&&vV`s>O=H-1=aN)ki8KVBUppLe+M?(lrsd=ClWkMO^!Uq52k^Lxn-D!&^WY<|7^+H!q$>!%tN@Vnp>0r!Dk z9XKhwzVZrXJwx{8$CaNZu2eqPpQ3!}jp|DpsC^xtI_bs7r?JbzvC^-_{sbR4c3bOA zcB!)~*yqO4PW(vmQSHmbgRSzTS%2cW@qbXAK>Pz9T?+EypB=va&igF)+ zguda{z6U)$vm-p3?AL8+qt@Z)+J9Bg@w;gqYW>Aci~C@d9(|-AlRgKV?@|EgLq6Yr z9~8)o+V?SvXIoR=d*1htg-<)e)>9-;{Io=~>()(ldudu&>nmZVDqKl2}K{{08aKi@C>5&BT?u3h`)jk5;@_BYu(`LAOf`d-Af**wpg z6yB6QepYc1_#*aIc-o%OdY7Lbi7SuRdx@SWbuH}TZPXt4FzI}DXQpl-2T&jbBP;Q>ATitx>_?}AtOtXK#0iUWx=0ytRNP5n;( zQ8@g@I){Ct&aQosebfG~xz1_d%<<&#<-V@{aJ=fG8E*5!32sxp*FPvOR9!EQ(Y{At z8+q>{exTZcUm33YFgOJKxo+BL#N+09znK^I71@8?eslr8;y%TrZstL#%Mpx)#>jO?2l{xQ3su=yeazRwjRe*C-VdJ{HQD1dos+yw@Q7P=Pq6p z|G3_J_Cx$>>2Z5_GTDErFQ2aWojBLVGtB+Y_L+FG@&-@o{rE!uH1YU+`JF@LXRWXC zYoCo5y?O8T$9&u~u>PcPl=Cgo52)d{BNByhiwe$H)$yD*Hpc ze7Wp;tKvK1*dqJO*|O*7YCljt!mDnZ_oIWqzfyJNZ)~6NyJ&w|C|--d==%8C#DhC( zeN(@;`L1`rk^TFXKJB>=4J&5cRz3H_9^>Quesn~~#etK;luPL7%>F?CMNAeNM=f!cdm;ZWT=S}f7nNGO`B=Hv4iw6HOil` z^Z$=eQ~O|qj}qS8DZ&%s7r_T=f1l$nB6jWw*#rC^@ghXxV>Hj5O&dyiHe+?=6 z3I1N$JNOlpH})eH&w+DM-an7OsbBm@*VB6&mup{^?jiAVB+hLazhchz8~1lxtFH5= z;!F5OiBqwc=s29F`+ik*0r_K*e8icubBeQ5s$p7x&FaT!8o++- z;b(nC>+yG5hxm)zYQNr4>u|C5WyVduh}9EQ zkYB6!8y(z14*V7T2k80If3EsM6wcDl*VH43KQe-^!ylAC5aA)gu4nhrJR)d)NBTfs z)H-Be-dOXpuI5QRwVwQN zB=Vu~#mv!u0iP@R(K*VC(iaKNXVM~z@5s}FGXnPouIW6jfAZnvHMBq5eAkV27fgBJ zu|eZHgyqlme{$>r6`|sQ>d($OeRZmR+N*A7&$ns4vL4)fLw0XnJBsH&o_to8-)@lJ zYLrfHBu@*^iuUKozI?a#IpPzW-#W)W2mb4*KfL?h9)DV$s;=PC{mG6m^HE(UKLlQ9 z?MJz;JpDQHXT16d{V?U9FaE&xarFU2)`OjYyn8|WFFFA9snE}NLLpxFU97$M1SXsg!~No$meC3;FZYE(=^=0EC&RAW zFDw`CPW&~xE`59@a9o~x_X&30I9&W3S6#N#$8)yY(Y?6+ZAUL0wo9PD^KIodn>EgJ z3(xm|_WhXl>!GY856>z57Vuu6n`Ptf=6*7MPmQ;SWBm!|bcG_1U9uPU+j*U1|Nm$p^~cvhIWv^W>j}Bl6-g zj^aTFALYSoNq02=o$Ipx-q(7(_P(e8c=9Waf&Ky3qt>~%c_^`W;d$~y=ZtD_+_tf#=orXC0L^@fY zN`zO9Jn&<>Znpl;nC9xV9;f`b9i(9w_ny`t$ImaUhd$vJJzscVZTvOioWgo2m58Hx z?(-ENq6=kz*VhU6<=<32P5kx^;Hm7mUhZaH7rsj2ne=>m1mTM`A3ei^c6<~*Dn6~c z*iDM-*$2^Iebw|Y)Aus{-x@bq`5VP8x=uH@rToWweP-jEQRl!%P=Dk6^AvwH>Hhfr zz@0Yx`x!@W<+Am6$w3qjvaO5wY@;*E8r}M?Tp!Js5e-Bptf4E&g=kKBZVfSAJ|3Tcpy?<2t zU;O(o`G3@xg%ghW(a!wzxKcQjM)~jLYnf;2w$zuYx1yU%e;V<}K;?NC+x0zlcH^lZ z<^Co61P=u9ApLsatPYaDM!y<)W8#H3ZT=dlmlB6jN3`(|$ngW)%RgMLc$qjwaae>` z@>RuW;$O`3m*@@)&k&1syrpSluj+%^I{ZDU{qINbo(^0Iy!yl`sxSLB;wewwlIL5f zf0dS|H><8s9YuXnp8jxjzrmrUSsz?ix6A$a{dT*(dW22Rynfpgw;2+|d(OTY|1G-- zj{jt>JHILICjd}Fch-bP#zS%0iYaEE#xu~F+0+z)vG?(+cQn{0k+ z^16cR4PNiF2fqN$fc%bh1^k8`ha7*_;;#~P7FfUF6~WgnQl5HU#be@Ok8@;S!HcZY zehLnP^TEdg&h$B3S6+Qmp8DSUx^KI$wq$+PGo;soZh|MDZpU>96j z)l@ai-TU&vL)z~8A*J7jehuQ*LzPz~jsoWcA0~BZ{1f6G_=g@*+-BqH<)}BmuKce3 z-Z{+9@_;p=N_v==4w||C6Werj=7Q8{iEN{ z#?vJbpOaU)>x1Lg`Q7{DgK(j7H|&J^hQPy-zr8{E1oF}JA6=^7rz`Hw`E*(=pYVm^ z(0}TAz1n1PJ@HGe{aq|6|1eI+(Z6<;>g>{ij320OpnjzW@)s?tBa{?()4!(vwy5z( zulv;d7FP@RrF@5{5AGzpuZZr=sjBN_^VvMff$suOWAi*Tw}1HYozCcgYU5dx+%3wJ z!^e;Pr;b8>8UE9sj2}aO0XpH8j&a)c2EscNcgS$|i__V!%$xSog+C=TGr#Y~1YQ^E zB1hJ*_&s!fcsQ#A_$BctMe<5j@-y)Fm#AK`QqOmo>Q~BN#O>9$k8ZiH8;fzJc&tk` zPI-9GK1&|riUMEnX7a}-1axdS6OR_W0)55Df8Ef|TU@u#;4tUEpNnhUeDMfxCf*}> z)p-BGKP%7YbH8_uxB(vGT)$c874Jvfd(MqB-|sXm*yjj`ewuW$;|1dDn9yDquiQ^> z&vOSy{*C_8M)jN8zcXLNMO^~wSd}4S!DjR#Ev{ zt&gP%y!d}nzmJWl%7N$HRP}}4`}}_Su%{~AhgrPQlI}2V>$wwGu1MhHLiZ{b>}X&2 zf&AP%3jX?_pnhP_ecq$|i}=jE@|%%90s1A$yImsx0bXKonl}D&T%q_^`n1u0pA_Kf zK#$3O-`;&G-VO1k#4W|A0snz`s=Teg0RjErm%E=)_wvLM4!$h-gQcS$AJKiGcZ>ef z-FjZ&&2E;x6z`iyR~$aL2OGCuvY>0vJbqH#3~xI;ZeIGEcE3$~1^8b+7at7xm5;Qq zi7!Cw0UgBQ0lt~@9(wsdFHIR6z*CD~C7v%l7yX4-?7w!t-@um=e-i%&{Al;e9@U6{qwUAv)qM2myUBOr-}tk1CC-!XG5q$G z;$wk-gXdD3XZtw)CBz}6N9}&$^^=}={K@#S{jI;<@2_<$hvj)q@o>Vw=F$INB|dF? zZd-<{#RJn}4IY>oS`YAn+wuL}&*Vw7AL<YTaW$;L8{wyGi~z?|aDb&Tl4nXZ_~iq?UhfP0)F>>s34K8Rvt4QuxLA zZXw<;^8)F+;!7W7C&1rxK0AL)3jQzGSC#z}k5SxRaWiKNURoYw#F(?B?pP_gVhxiWSMv??3#}EuVds zR;z!AJTUVBA64raCoOrQ&vU8zI6dQ(ozCqg`l#^wzp41Q$UC={L)ZIQ?b{k>ZbzAq z8>YO!G<;tJAF1rhFs-vnw?z3>^xvqv?p4TR^m0}0`EN@D1AJuoiQpX25utBZe3Cw7 z`Q`_c=@}2lKhiNd7X(}SEuM$x1RR?rB~eguM}OkrJ4u&iJSLWy2WKj zR=_76D;I3p{pw?0OXa6}#`%zV4^J1~p66T4U&_{nEA5p7h^L0 znQznC84vlAboOq~Kflgpt5Vio!EQB;M!zJ2f3R^6$m(v zcue}0=zrT>_U!68zv(>oD*978xB`!5(@>{+h}K`L^3($Y=O|!_h3Gh0CKS1vTzB!x!ZG*<|iEHp9e$hV8^VK}Z1($EJ?(CkO-8Y5$68yB} z)yp^m<(=$0%~p3S>jBvJ5pHBbhk*Wx@j-g+{-8|%cSX8s)@QyrnQQxSGFAREcu(mW z$NdZEQ(V=&p}Sl72CX-Di@q226Qp}n>hIu>1E*A@>(R$)=jj`+6P^IRAM$pSbiDpu z>#Z%Fuj7mLvlUv0m5%$Mp97sbbZlB)+w-}@Hyj%5v#{X<&!am)7mT$8TTG|JhP z`|G+jPS@4EtU10?>3-$=vOG(t$><+O&4ah|Q8(}DoaP&TS8#yvd7bez z?u^2I$UIfJAEhsO+1{(4x#%C=+)EkX?vLrMw}iXS*u77nPaD3EoOd=m#U!Wr+QYj- z-FA}d^!uwmVpm*|^Rrwi|4?~dFP-s7e~9Wj5qtx97V&Kh``#yLoE|<9^dRtqOU7%x zpl-r#8(sE%kI*#l+P9~T`z0m*<+{v6DVX14=dTIUo6&sMgrbh7`U%VXllXDsC_NXm zkAuR#swdg`RwVG4!NU)pu(YuKbq9u{6o39repiij5$!y6vP0-Bj&YU3IoQ9C3Bs@V z(Xy{ud9JtgU&?xwc3clPQ@pIq1APRghi(4#dxU4R^pyQ>e-Ey?tT(GX^&?r_@p^J+ z7I!?J%+GWPKePR+N$+*p&R?l@O#Tl%F!2F?J-j0L`|u{dtNtwBWAgv%!}T}IAE%Ba zehB*8JatdIj~aOK;p_0=oT-1n-^YE^j|h(*y2f7hG59y=Cj#G!P96C_;sE9Uym-a) z_`|LzU7m8kq;x)`>62|5vi^aJ9i8~8^`5}fU7>YS);W|u3jPWG?dn5_#DCH^@Ol1O zc?101Y&_-n*2dL0ps$zVjy4f_gYIo8hKR39#|brrj0ylWku#lf#9b8Q{UpX{RXukUzY|7Q0IPhO-S zfc*PiidWHpP~7d&Z=in>yG>o>T3d$;?Ebq1_*Kc5vo6scohSZrJAQ-%Cr!QW@8Zv- zPni1FS5}{Z&&uB`9181C^+4ZKeO0V8)j#~>ibK)$R9qU#>)CjS8>u^t2W!9hg!Xq8tXp{7qxiDnE%xMhq&w-)mTnI5GWEWpnor^nbO`M_>$zJqJNQ)+GrQO+ z=zIEq>ksw~!e4mme~Pd9?x~xAH-=yBPr|XmA9A(6pCh~pJXD-_vFh>EL+R5*R}o$g zczIsd@#s0Ko*&^qRes(J-{RFr8>wrj^;gzj^@sXkJiue!Z1wG)Y5BBB{i90x=f5b= zrhoU+wTyLo&iH>e&(&^<>S(M#vx_^q)1@OvJY>iB3ioSX(&D^D`uvzD@oGl+goTHS zmnrW7FC}`9cK(Iw#(EF1%ZC3N5vWTR>Yq*P2HkHIkALi-c$~cG37U_Olvh8v`NO$0 z)75E)R~z2JjkNh(@MyNqK2EoLZv3RLR(zXE2TAL`UUst16>!*1_%XHNdf89>D!ZSa zdHw}`-4B(2hJQnTwkKW@j>`)toBL0HQ(X^S27JBnA)Te?@}}yo;%oF%6#uM=pM6Tt z5B#&@7vd-Fhpp+px~}>*BKQ}Mr_cXB-532q;Go}}{Or@ypXi(8Pwjb*3byZ!bf;_H zY`z9#XW)<2I5yGmHSS00b1SaP`^)IBDAprN=o99A1mJPNpBnC^94BY-M_W>OzNH=P zxtDd}R|pqu<0PNenzA0%PvQTgdL!r8JjBK?E}gNb7vzhACAu+=|$gxfOv zw~kv&`*C*Na$kjAzb!55uWEgk2DlyC=LO1oM-vM1PNh@a?w6~7p_s?0c2_I!K)%JU zSB37N)+79>OB4D$$iKj&g%0P#;7a~`qNWi+c*)3h!1JLe)1{C%Sej~ouyxQh)+rA{ z-7qfHeSklZE|=%}Cr>5SiScQDpPrTR-G85M-+rFT{WNyptCGR` zJNr)l1UxODr93}%XCaR>AnZ|i9&IUghq;;;<-h!w-(I!W&!2Y>_SrQQd49hy&S z5A#7#`3AEp2X>QOVKqhx>AmWV$w61T#?YyaNQ z6>;4q2mjkl;nRqBx(Qc0{l)fi;y9=H*u#q@{lzFf#@M>R;%Hw4z(u3GN&H&(tj*8PdcNq(nx8t%brLVJU3ZGJPu61#O?m>;&=H8n{vEag5IM$;6fQT3_hO6!5oA<6L+7q2MB= zcjBwI+0$SB(^u)K%f`;^Kdah__bulg77wC_SK&Z2rpr z1AcL#5580i=yB{I+#L8ucn76Z0PnsB|4iSx_*5HS)P4jn6!Ss6C7z53Zc=;({#4x$ z?SMbY;Q^{*A$#{oGgyly)F!_ormnWg;zIzRAuFZLm zv8UvrsKW|3FP_HEj=t^-<(G*MC&z`u6ChsD9Isp8)hTs${)gH}E@&L&T3_D0)4C(( zCGc+1-$dS1e5MQFLlGaGCtpp!{TX_$^kK99Z2mt=>2FsbuAXl{NB<@3kAA2@>Pz{n za7yaS_d|rkC$A1pntFkFIHUSM8t{j0976;7XZzkQ(09T6k6t@{iSX}gABYv=OJO~V z4^sCtJYQ$RYeub)oG%vL5W9X$!g_*d2fkDAuv^(W%=rWdikIXj;Uea$PJN@|LHJQ_ z(YmC5I9WJA3H}+;k~f?T$K=?vkvU{<^=rnuN6;R|Cg$Lw<-52!$WnI@VUgT)bEH-ekYzQ z*|D4-RQr?{kC+E{XxFW9hYH^jh0C_zN98<-j4Siw&l?xSf8$RV4*D(OpXo0?S@kP$ z&eZkL15q8h0e%qpD%elyTNNJJqnCkQ2mcNa+f3Oj@wLX4!iR&$1gCq4aNzK~fJ2g= z2>KJ~yv7BJqv@ZYsO!+*P5zbZ2xlH|RzB_xecF7sCQsP+D14{AC*^$iN#a3$B+COn zm(0y{X}X8Ssz;ynesvCNAT5|s=8vyySp6)Z% zdFY=v9@t*sN%OuX=?L>Z-mW^H-A_$;L~$$qNA`QQ1K&Y^5PH6PpW^mfZ{T5f*8cmU z-ed4=@a0t$a9%cAh!M2c6f?)4BqeK2P>f>r&%fm4J8M$M|;B6RqBsF3#ePCld4n(aRQZ zo!@H6xPc=(^bX{yX1m=s+M%M#q0bA>M|k1LzO26Yh`(<44~~_5=ZJ7p)`;C9?;DU` z0zX;=zYjj#&eNJ+D1Y9**94vu^#J-mzES@9zBO=A+Lt}~deueZHQGlu6&_6ab7yTFTw~&9{ zqTq)uOx96+W8>-U@c+OC(=U?!d(&aAseS#Uw6k;SPhdShseHTo5TbNtqt>C%&Qo_> zSef>}@%;l1vUzFwGdMtxz1_0V7tkxmeRb8oy_Wip-p_FOWj&LO7vZB6z1ST!|MWGX z&u4aUB=tcLUWoB`Ql1uku>3b)deZjsA7%e+zNr5U$aRW&kGmdx_mLkn?OA_{m!rms&S4pEXY&UBlKK-m)Zi^_Jj0yw z5Ai_NL(pr!OZ%^MH1$6H&aDzY{4wFesXI!4)8DW4sNX$0j0GHQ^C96!JC6td#`;Ge z6TD#ozgNze?P)mF*rw7O6^*5VGaDOE|-%%kI4wZO%u2Q{TqD3FV{V@!$Efqa4UY8 zviszHK2EWZ*h_GyMY}ds`H+Pvv?VC)bAB1s$NVT@875W)Hxm7F_cy>Ip?JM`DuqtceTP5 z`*?cLH|MvJ9i-lfj<9q}Jo#MwA?o+kPpMPcy6f-Wk^Q*p)20*WKT#J}{bj)TtM2(v z3U8wNRkYq&f0b^b{%*G7PzwCv__Jc0Ef9Rl>R;9aTedrzBzK?#i&vU;ougmPeZegg#Cwu9yQeFwZ z^?&O6#ZWgZB`s*xw_!@n1@j}JRcKohR$Hz+bNu8^> z3_p0a@Yok-`1@CqPqKXA2kBSKUz+#EKRV{`iTdVbFIJ`O-|#8e^~4`o>Z0c$JXx6! z$o`#mQO5VHjx+hRO>P`=Zl$w&b*~`3!-!7#hT6xa7wzGDCq6}g8a%mOr!}{uyPUriUE3H#M-?VI4(h~L0F z;U~gJcdq;a`U|;F`>b-^+T;Jq{#5pRIZq+~z+ZmK9iQxT&3EaG3wHbVo|nq}D5`%H z`yq!p`jqH9U0?gA`d#w4Li+O_{u3L=Og-lru3vkcPiZ>8hbwJgkB8rs@vgc1GCac5 z$&pKbsQYHfs)YV*;vv~#Pd_?3PT;KYJHQ9xSJ-%l+B}p7yCOc4^;qpLG5^UMPNL3< z{~}#q^Fw}Tp8Q|EKVHuxUMBx+OZnMX={aq#xQpjYKNR^l>A5W+{|v9-k6MS+dGVj* z?|SfB^8cc6gT(t0oGN%>#oZp>E%9?0-mGb|6CY_DrF};IP4PtKKe%tbZ#nKy`cAU1 z^qW&JXCD9;JwDXxegD+leM4<~3H)@B9EW$DNFZ1L>xzh0djkoAXDy3J*G&Q{(B{2RQW;P8s;e?Z<> z51$0@--JSay)ul_e4JPC-&cWm@bq)g{|gR^{=!<}f5dYdAC~`dy!H`v&gcVFpNeIbg+1>;eUEnI2!o7%)YFz_j*j2Cw!4~#r!-S58mu()rT(C zCwdu-PkAqYzVI4Px=-%=JRRRt^D8`;_Ng9$`Bh(@e(&OPyoK@3`4=*~ z*e!^+*sH(JU#s&o4*WLoX5hfUyIr8;Yqak8GDkrkJLK+T=*{fb~S%d*Y(m5^qMEeuloj1F(oWleckkDe;r2N+x)<5 zFYoF$(D-b;;6C`fn%tkTf1jHBBRjQ!&l>+=?^)A+p^N3~BRtjp^nGpB*_T`}arY0q zPB#9tPE*~!%I{0JCr;4u>*{yvt>WYIWA*RwRt?klJ~fnS)R^UnxckMYhi z{~7z#K5K=Z8UJJ_w^^op{)X~whiLqVxGoy!`i1dsqJOUs%7@#1Hy+Ep!~q&F{Lq_e z{%w51`Io@^)M)+v#+e@X?xA=+?xV(iW9wGydDo!zs_#45xSEg1c@N0*!{gRp^Paz(ovE)iM}Lp!gif4vD|x5pHuSBCtLnm zIQ-miT*IH-(s5qmY@45>+}iEeY11K&^|zDeak;(M@k{A#+qijO>cU+41>~Q`oY?8s zf1J9m#yureS|6A0r^ZqLvGYuG;-j#CpK)6FM0ta6lwaLgIF3=OqyL~fsqs3G43_Wi z;ec^d-%BO>?eEll+q&Fxjrqln)&zLqq(|#D zZ&5rudjHG#Rpp=UI#b-&nt$ToIlA6C`n2O_1dD%{BtK_)xKGkqs)JCc;nR*kLF-|w z{Q2wrj7RHZAIILLUn#%Y6Hn1c11|p@#Ve0lUrDZi`hn_olf-`r9)&()_=LeT5J#(j z#BVD7BjVx0W;oc+ z!QQh$PPjj<8&>7gbWp)hr@xqfmi|t0UA#c?JNy;IA@EHmn*Rq?Ptp8)>SLxi^G$kD zmUsCkxiYJN+@t-M@f_k5FKe9BgZ<0&fFG$kUxbH^yprnI)4MP~@H^2jRUgE^f$mR42Y8C&Da9{Q^&~yl)`W5OQ@x&i zjpEh_&X2fQI9BpAkvJNBVXg2%;IxU0!SPG?!J~JhKAoJe9RBAPt$*?ks;9zt=T-mk zw<`{%KBxS@zg^FNmhx`4{%Ty6>YDxAzwgX*IbU{u;eA)XK+`z-q%?0Mob(iP{T%QI ztjk?hXG-)wsDH#OpBAr3H#&LD@-AV4@-VHnb5A^Vr@Xpe&j@|HGAJ*(>)tU{;T?NH{L^Hcz&{ggt-E;$ttpE&A5H?l;mu zMPCK@d-FS1#nIv+@!)OfV>?aH9lZ$p zIF*Ovy^r)|qCeP4`9d2XIN?$tk4xXA@<>sAx_-}%ub6W0T|L}Wk3D+xiTiz(itl@Y z^!K9bwqELC4&h^`L!8F-K{)IPNs`(*YYvTuUJ`(FI);8@9~f@}Sst^fzU9BRo>V`T3E`Yi8prOe!%Ul%=T*HJ z{zFf{o}GudWXHh#(H~7d8oyS@Yv114k-sFb8FfACIPh3gU;o1Dr+ydV>PD&013Ry} zr`P*u>!Y0aSDn<0C%~(&n)mC%8)WORZ;s~!k4L>&{A&^1pgrF%A?K$M4iH{wcpJql z9O114*Dl`B+^&d+FW z(xut{`(R2Q27jHt&r7xb?Y<_v8!Wyq=l_RobKBjQcyJ_7s~&;gvK_xY^=nT(Q1xzj z?>y_lj<0u&4}Z)_hZa0n-D`$xq7Hx#8T+iAXGl<;G@h>dFZK|g-OjTAEn_FYJ-PP5 z1pSUv)i*?48{8KCM|S>7x2#Z)9^ixz(|Z7a)Nr?EU3-W9XB~Rm_3Pz4>D1MvhXwDb zhqr8o_{!|My{T*agY3RyffuZV?(Sf{_gw;bU;F#k6#mI-;qbbA_rw(w=l2P#H%z;2 z^h&+s{Zd^%$3cLzqaIBkD$k|#oIMx#%hpjH->$nbfp3d?diHy{UifKN|M)5$k<~-G zxp^55`mF@K*G;lhy;XOx^KF#pe~EL6!_XBh@R63LkiUwZRF9_44xhjPtq1UJ^a}_d z9)HOFyJAZ2eUVOIfpZz|> zT`ruD@Idiw!v}fkn}O@`7Jt;|b$$E$aq{O|)A#f~&Ct9_UpMFL5#J$rEf4=8>)ZIg zYTSnz?^kVDpm_in%sgz8<(q#<^r?JHWf-ma&&Ji3vW|s6^6Zc3P!#gdGfv6#J=jff zWyhQS%y}Aw_x9i+#NVlPwR@gdFV6p%+>f#GElrDjb1PEnlGJ_S1%OZOO3Q?vDP9usl(4_#yc_r@cHNP#*bm#1(tr4x{6y8aqv6a42kk2nz7snSJT@iS z%^?mPA-Z<(4~C-)7vsecNb6ud6d+0yfFOAgjPi~kP}pE!vAb97>x#Lo=x^96Oc9a_KdI`pf; z-{`S};K$TYA30A+`{Qc)Pj(;RXGi9KH+U|?arM%39$MxdJob^XizdbF@5=mP;Gf}N zyV&@q7LZ?If1q9r&djdcmY{!R-&ZCD-pHmt0bXzTwypnWn5%?`F8f33Cq0AqS1%k{ z1lJ9}rFf0~_sS>0D{S_#PdG+ATHv3#u8nUj_1?73@Cb=?2_5SWJiP8N-A{NEaNTz* zZl&Ip9XIFCZnf$T;Jv^#uFyE)St2g!qx~12ce~yn!pb#p-Q@LdQN4Sr`sFk})o&Ii zYv7~&jml?SD*gp@57k#3)jt{G>wpJylI#(>#^@PI7b)*I{g?8|^xu6Vy{d`o-?Z^{ zq956-4^{6^KXjwe>y8ujcj)U%pC=xt{_~G@e)R$7exr1R;_t!syZy}D3tUvsF`bTp;+(LgzwFA$wmg;S)r^iiHPXb3spXht?(|Dil z`HXY$JK?v_mHiXG(yQM!ua8r2gRc+z1*~H|1E_(tDf?Fct5@H6yjttrLFx;} zkAatvK4Kk5AG@cISp2f^wEDvPh96eFEQ+_-3(q`X^|ZLPp4S5LXi3j0?y7aCPs@|* zy+3-mQ~z@Wf0*89!yu=+UPPZ;_wNocep!E$cps!c6|dEO9xeV^@r`7BL^sOsB~On2 zoAjNd#U(=necCx)=8`@JI>-2tHqPOppW-Cuqp-;0U$1qQ`8Y-RG~qA(-xc2!ezW7h zG5lX*JgD8=l++Ge67`>Y`fzL>mM7qH-g>fhs2+J9O9us`)*+rClKO%hM3z84B7$xnoD#_I2b@KdxO(oa;<(~LGx z)O8gPd+~tIM>mrAIxIc(maZ$S!+Dd3KHc1*(xH3QWcnxbC#gP6T%FEeW1Z`xde}|k z%R*1v=C`{$Nb8?{Zz&Ge@$kx^hi3oY-t8$Kh=#lDy_u-%mWeN=@p-#1cxd6p(fg|T z>g4{GyKa}Tp7Q;~Jr^hsL|=+se~=rX^=)_S_bo1J)8m{KquYgZHUIEA+wo(555BQ#cZ>2E zUV1%dhl9y4`_FRuy+I{>N5{%VJ*Il;Nqfb^exmfasqZRJ6VFy%u=<0;=Pm3oKS}NJ zydD93{tl|ktx*54>fU

    uKJ)1auk4Y5jav`>y)_bbJ@ZGnIjTnB%|G{taK-_pU2N&UUIl5VM8evpu# z&D&vhrt3WTsz;7~Zt$0^-_v+x$NJ#>)xr92zeo(HS<1iW zbi&cqt94^kf3DL00lo!(IpRd}7UT)xr93J5@1%jP1D&ml_?=tabXZ4c>tnTR(7d73!o0)tME}mUHh#?`edH^PBkei*hdTfK=z=zV-G~(D zH#lr(*VXam8rT2f(DJ$ug~DStpPqWU%>(OccSqfVaaL&FRX6Z&X#Klq#I22A-90Q! z5$?~Wly&kyd@`L(TWqRRf=)NAZ z`_Xj=%gzb~)ejg?m}>TreYf#A9beKlJ9_W)DmSR|Wi}69_TZ1vIJ#-Pr|0Ig%FWjG zS$~yBRNkOM=ikPy%<+L%yI+*wV_moLR6F9CO|*|KQ5_@w_lETy_!0X)B3!He<7@5b z#D^PeeODX-U#z$5EL(%Ow7-)+gfHs4&8uIxP!f&t?rwuL@4O;8-1a{|QT~se zzdVS~!7t3&eT^fZ1CQ#D@*kuZlI3Hc(SA2~@!Kyx+PT)z2eZY<13x==%MXg=OV7`p zzqR;{{H@=`OJU<7kGn<4>j;bw+K)Z^^C$98URYxu=zp{G)w#Ui)GMg(sAzes3a5QV z&utg2e+^E!ZT${UYG|66!!w>__~4i6IpIH{p_=rz21YjdA_ng@VoF0 zi4V$?e}XT?;+l2=Jyn|*`3)r=-}7_tS#Mo;{mg#t_$~Ci3#-)EART4@z3dNvo%e;h z8F(t<4Le^|APzwaJcDq#-mc%# zwX7a*mUKu?QQZbShUSasp5bX0RqoJm+}qoRDdIDrKBl-dG7oFkd`~7k&_)A$S4de>q9KER*#K zUhQJx!B5hs7v2Q?h24+#w-TNYToljW{(X3+GYv1q)yKWF@AEx&avN$Mq~qkNXS||$ zkgiT-o+nA~P<(k>_vt^OFRb?(I&1JfbVn~E9=h2dqaJP=u|UL(9)b-vC|UxBCJLHT%(E);bM@zlo`l%EB^zoFJMbXkah>1Uyj2E4#z z9k2eF2%bl}kr{ulJ&)ERyo=gzqjXpN8H#u4A5k6S|8Vc=3Dif?G$!QxFT{`5xPkj! zI!ZIsIOc(3f8`e~uKqniCkXv|c*o%Fg+EF>svf>C@jgZH`F20c)CWMHM|bVJ;+H7Y zxE|uq+imgQr}x;c86RQc7t7O< zx0|QDgyO!)^ArD+Px-|+A0Kwsdq>@%o%-j#S0CU`mXFuJOpOno{ zANNBU{;6vY>3D9>Qm-5^Xgzt3+g z{}0?fx=dOZy~V%Z7N1SykDrr+#BZR!dHSfbx?yHwW-}g|PPwFR;eL(ZC^{HQgpA>u;yt9+_ zT*s;2B7RlJdBwBq$s6F0lfR_S#`E|<&xic`z2^V=x1>X$yvuy>Fz`=}y5ZsH51IL& zOZsfJzef1;ZdM(1vDR()@ThlEr%UIrX)t{1{uI?KE?2$} zK5O24@T&3${0QL);3;C=nxT5$Sn@22Gh}yqZ-^fT1n^1Xx6^Z4Sv)c2Iql`F->sXw z()!*K`g8a+`x_KC(eT};waS*Ro9Qgp~9OT!858q(W~zU-qPq)58hDr2mb;7nCWqJ$#5tS$eyq-@PfpJ zQ-vcDpSVXC{a3}Uhe==geC;#fHpN5f;rpka|DN8v|pM}HmC+WFu zrFF{2vs`g)h12^J_5MWgR_M;$pW>T;OWwb$%c~!M+85jl_&zUQ9KWIRYS;%n*+;7m zCVWvmUiJh|lS=Vn%{N~{5^g- zezy2tk^n!y8OvL zuG^oV6RKPr!_~zy#b3m?^!eER7MxdK1i1KIKYd}x0N-d^;ncwI-XZ)XI@{nhc9Z`$ zQ~d;Xopu48Z2P`$c;DW8o7bk{ZogcsrG-jO~$ zt_vPEJ#Q(_5dUqo>-2Z<;o0{>0sde6Ug5xJi%;0oR|ij)aEHFF@c#C96SF=5)vxOr zzw#5Ym!7ZeBGOGA@xnye4Lof&?rp=Jif7XAjXOH$3Xe_3s_sy1Ba4%Hn%APLCevHNrp9w>L_8{|~i4JZAcqNu%P1Whu{J8wZ~r zcqaPF;5AZzo0mR`*;QkWyGZqZyPy7!{_1F+87@rGTupHm-;7jK=8t9I&FiI*w9CLXuHD}+2>PQl@~4%fVqSBI~YI7<9z zzViv?ampbpiY@1V-|*yBt%<%T;9rz~&+u8q?dR|Q`;fc-{ZXcmM!YrI;(z+FB7E|~ zqxog>|5*R*K6Z8LTZr_x!ZUD@`W@g8J$l%*=@<3s7~m1LzbCHmMBkeS?wPLSbq4B9eDWJ z`@3RY)%t(??(kvZ9N}N!-}_d5=hNkHUae2@$whdI>36(Q`xJRR`1#;tgHKugx%U1w z?HAS)zt3oW-XI*J&Cfa^{cP-~d_si-9|2xxuC9w7jdc*ib3?Xk%oU0vIoe*eku^G9(R^>@vq z>VH~?1_zBZ(_eEb+F77GmgbxtD*5|Bt?Uc$U?# zZT8YMLw2^kD_2~X$o~cRjBd7_cYxVvVSodNi5?RBU|tunRL@HPs|x?p{s$lZi^>m> z7Zg5OcD$a0uZ4ad;!5-z#Agu2D;lTE4!>#~e9c!aYlmZZe);9jSH5420}NO3iPh61 z@$bl--+<0S?*Ko?BKZ;Yuk$?ZeyGb;Iq=``-4C|7#KSK_{*L%VyrEI+R%GAAuR_=5 z3i&PPuI^Vg>~GJj@vi|~!5aBpkN(HPVbeGG;I1}d;?0dupLp}fMe^$O@yi|}y!U5p zcg^b;pZ`m;@XI%6ce{L)6ON-E{SfeN}U0^!d@>huuz9z8YO#)<2ui zdfDODZjt;O><>O-JC1xSpA`Wdu=S^v{0;T>cFR3q_!&9{)xje;F8C|3EA-~zuh>%l zF1$wc36e*&adm{ZA%1&nyXlwTQmR|6d)+Nd{=FjU{I@xKEbq3wxR>&~)cf&AbNTE7 z<1EYc$;1uc_se9ui9BUY2pj^-8GLZg+uSAJk=ihEWB>x zY^U+DPA~iZ;QMFHdoPjRKwO|a2Kj2`b+i75&hKt{>__u|NG5Flz@qVL`jYr*xvdkhYWd@gYbcxK@$;>C7-U3YAd zKkMQ1qHfFj4c|vP|D`$-B$JC>g-)zx3o{tIuH_&DP>mVbn2(<`3J z^l;!)KSuY_xcvb`9$i$E_3fRnyr6Ke9zDptUVpmnveWvzC2ddMZ}FSm!s++9ie%eW zMeI-ca!;QXdOze}(BnE@`S1$m1s5uB_l^8N^(Xrmv`!3D{!jR{_^!nz+W$wp`dt39 zCWz0=!{5w0y=K3Y_G`bh?9bMNg;uX?TrYsb+t6@{^}i|}GMrU^cc9H5dYn~C_*D1d4{hGLbD-W(uyrS1B>fWg2Sjvg==!0%V9^Osz^3;1S z)_X%;8$QE7Ho4@gS9fh|`$m)MB8_bW{Z}K~Ui|v(18YmXtJC)^cNOlLw-4H~L(_op zH`&z^*;AeD3x5~=u~+5iYu$<~?Rc;L6!^Wp{7z3^Y^C|z^Wm4EkNHf!FX~UAU(HK@ zhB}7_zr*vj`LBX+E3*FC@8F-8CF+m#(&3HdM?O)VMLZR;uk3<6GJ1st)ib8b4(aC; zFRriEJ|=teAIcu3dmDLA$kW>RS`)2P^tb7KEDN^^f9B*@U7X9i4hqtlj{81o`y;y8 z%(M1EzrW_y-nVtKetNrprTjqniONGh{wU!ttS@Q)x~j{e+nw@tH`j!JhBj|)=X<$I z##p(+$}{(QCl-Z)n0siluX_c6@TPy0XB zr@_C_PkOujtN3UAfAbGjA1k_@05oobeWxbW*4J ztw$X>(N&tiNFRyk_^&PB9A2Jy#DFQMbPm@V@1&z|lux_<$I0FD%kusidNRw4>W|Sp zw0FM>f1v*ONWX>pGQ6FaJ|6mGnv=GcN7BD{3Y*#d+j+CTxpF6*Wo)neqhBZAhee;x zfbfOpjedRd;WmzbZu8u8&d%@E&l`y|xUTwunNM$g0_z0BHS~284!CGh>#dsxJ@ z=5MR6XCHB1%WuhWqP$By(^+yPIZ0G6Z&>fs0{5^GN z@X+{?^yLe$?0?JQ%UcraIC&mVbV>_>cnSaSc892h&x`3DwFw6cXM=t{`x*6FcqHgo&f`{F6V^lW2O4KQOXJMj3G08U zKPW$+@TK`&zd_c=(=Y35dqRHXb;7&n`;Rz(@2su?{^~jTsj6q{`Sx~=T8HVQSRj89 zTnzg%eFfxY+NfX8*25uYhx>1l_3MF47p^^u$8`<6Ds!uH_D~jn70&vv>YG1V&qw~c z|5ABZ#drQ{#ph<1g@W>0QMy6#V&Sj)$zM?XYvX7b9-dbm3tyJW}xlulRr9qqH7+`VJb5s6A><+V%n=Tp_hXu_Z}TuFOi_G+J;=?@D|I5&Xm@+L!da9QsZ#D&8+hCvCXhk4HDD>h*W`-*A3=hpu}TM;ors zAENoyJp1(gjpc5k{CjlQ%Y{$tBENIF;+dfPVqVCf*f_g6z5jOJQXcCb`KM#F{ynGn z5{AuffofYnd(za92UsGn2u7FBkslzLx+~Ws(&bc zTTgy8IwvQ~UlCq0s^0~CpFc)^pw@4{vbFHQ?sxYH)!kmZaj!S~yVtM3`>p0TIt2O& zzE`|UUlo1JHh=B4kBkm4DvlxE1#de@aSu2{a5w0(p)17x3(kjl@1AbBUlqll;mKo&2P7^RzEu1m5q>qBhuQ!RH~ro) zD2TT_i^r+Q?Ercvr|EfUUZQYOai01QUy=Q-FMCv7GTtj3Av``qv<`y5%JXkk zI&eqiiylz@8J#uNF+8{h;kx}HXYShj_8A=mxFK*{;@j~X==}t5CO#H>pPIC9HT)kR z&moG7mnkkDr@X+s4Y&4r@tm%%I^~W2HCZ_8AOGlb=1>O?j{T1O!lt=ANnhDvF9%<= zJ(tP=f06nru@8Tg#xYp&*k|%9=|_X!s@XZ$d=Ssw##!UY!;IGRJu7Ed zRe`?cnp_;!M(?%imLD!Ur40kta{ShC8AA9@EBPI-bEve1LiPRrU&prLGB|$I1 zzSp?*Wq0-+U7A6TacG{ic)TW;XXvN%4scg#zLUP{-$im)Qp zIco17O!0u<7C9cC!;Q3GR%!i9=WXt0A^qHLGex z*z@JS24#5y`@Iu*JWrie_uaxKC1X{$L+cv^vR~>ZrIsNt{hz3+buZfknO)HFL&h0XKQ@af2kw0e&Tl()K@!L z?<;*de@K@MUA?J_bNrMK%HDE41OE97ivQHlmFaj8*QfK)*w@X|aWfU)U#mD#@nP(! zc+rj@2*u}EaV;3 zcNSGgp07Hx2hZB?;eGv=FL$61I12X^SE%m4uKe+7`n3BRo8=95(z+oWU4}y--k<)C z`9JVoC_k$As#~BhKRs`uhkH!*NO1B$YyCrq7=0V?HP{9Gt?+5mCr!KtZt4@gHzUOJ z_OkF-TVM0v8E1apFD$N|b=1F${oQ~ecYpHrkIR!2<%bEk5aF-5QuayyP{ z_FTp}*>S89{%V-wW!{sw6(>>0fTv4!0Z+WVq53T7gO+Ydgb(w|Jzwho_*dmleY$a> z;tcW<%apG`XAAyQ_?O`Eg@5AGcOSg@*w6Zfll5K=(D>E=77v#F!Kaze8{mg@bKoY? z3j-I&Iu8$#cs1fb^nBT0PSJXEkZ?-$pTj4NU4hq!ci|k_gX}LJW#`TK%ZZCMzS#EY zOR5fPKQJzk{SB2pR*czd`0P(>L&x3TXq-2GWioyKBc~kka!+UP$8zB#+B@a#z|na2 zBd7S6=Sy9oQTy*Ct$)<%(R+Mb>l*z>3oqaJ+3|0bXra_!B0PtO_Y@rg@&M`hN_h&i z!}YWL1^Q{5%MR&>f+v|ieDSNqf2cnQod~<{PT;^Ix(T<6=aqO^b>0XrUHLNGj~i-S zf7ugxS?mEjP#t-``pi6i_|?jT>}>CCY-jJS?<{*1PpS6(zIsjt`rh<=p)gi`a7W4i z22Ti2aJBe1$kR^MK4$mdKhVbpk9MQ-wA!B{`AD1pI!FKGZd#w~q{pK3M{rxWE1yaK zvi2Q+sNz2I5bX2Rf622e|Ki;~yB0gVRd5Y$r=9uT`DG#etLcnM^(DW|>a+7_*!^UA z+LQiK{^Pr+^bGq5XTts~ol?J_=C=xaO>eBXdr@{up0+{z?^fD()i>y$(0ze-VxGW# zQ4hFK^%3&V;CJwgZ2pG?aIiu7=at%j*OGm7U47p#EH4T#65&g}N6!nqF!S9wZG)Nr zt@$aTe@{59Sg^k7`ZC$UQt@C>FW61<0v`I7aIVI2++^;$MZURNlwakF53C+x)4XSgM!OZ`vY!xA@wl^q(Sm@tgF1YoCqu zQ+}cS>o~2ivQMx6NdNK&hqS$Uqc-lFVDKY!<~B6&ILrQ~V1(|+^x zhGi#x^Yowq|HL`6Kjp*Y&+3n)5A`eax6o5`EYxGOZh>)w>E!0!PWYID=&VFaMAYfs}lGdgje$Lz1#VEx>2_NMf?fjq`bu$ zV?*8|zABxUy!;8O`)x10uFXetg8!7q&vj&dF0c*@cjW0m%IS3!niF&ssq?B& z-cQyz?0OH`zC5QoD32UJ@AUA3DJwgL*+<^`{99|U<=)-1$6p@ZxhjAIVqX?6Fv9PS z|7YuC_wa@0_b1t(bfNYBwg;bvj!$fsU1ERl$`5-?b_1UVIuo;1p8`)MKPO%yzi6rA z+|%XX&_|5k2z*89JTwe<)Geel=&8ejqqF(y==PFdA$}SB3jeLfdzSjXkJSCB&pj?y zyxd~>?fNaWFQcRWH?52KWB9v=>3;6ex(5F$IBojbsWXAEY_Wa09=-1 z|J%t?FXFtHX+Prq+g10!bBZ%qSTw$%Z;JJ4zuP+rI%(h+>DRXTEAivXKSzH-yjWUq zn~U%@(*LXRM|fz(VK1&BL=*D0}nVtIuiY{L7KeggU>*v$?9=+l=HC^o-(Gj$c`pud|5M&c{YsJZpyOiqS&lwdTu1tBZN&3t z|2{42*R$`din;#r!jDDtcF<=bP8FY+p5yus91QE`!}3?aP1*Tt!)3xH+V=qtT&Vh9 z^*mY=;&S*m=xbc{{!Yzf+x(E2-p5WUgWR3sp;Mo-hX;%GoBmy!NBAzM1o10rUZyzuFb>yx zN}NYrkDn}^X8qmzYt)<854Eb_{7dU_C;6vyb2z2uWP!eeleh6z1p4%(@1^Su&3FiQ z+vt_0=kN1lu_^6Gf2nvt%15+3c~AQn`flof_V3FdCr|N~jstIH*DX*V^gk%y_L%ZY z8BaxeAa%Hc`&jD$`M>Mt?9zV3?Em9SQ2sCT|A>dxe;w_*(*nA2&uN_aH}7bi^!;Er z=;u8t{lT@&9)tRd!AD2x0*d3}d0J1^Cm!J~JXbtv@bsx~GNNzsnw}$dxuv>q(?J~? zY+dZ@;91yIedx#Qdgy@K{Wd3+!uy~*YQHyRd=BEf%i{FiGc{n2=qM=|4weU`s@>``%s4%FP{7JQ@){(lBQqgUi@3{f|H&G_^ym! zO8HpgZ7;nI4_I2~Khkj!F&PTF4`lM`LhB%Eg?xp-N{YT)w@Tcwg{_cLoztV+_ z(-r@YRQz$R-fug;H6dPoQ}(x(a8N7dS58-)BfhT)?h8IU@LK3yOQ$6g*OO29QS&;k z`KaBVTw3e4)pG@ZMH~t)kUE3up;ra;tlqHuiv`1t*ORBFPs;AA7xjgV2jLOL*Yq{9 z&!KZtr~BMl{vr6f%jDOhqfjOs;60kh&o!@h-Jb3djc-TAjp^^DxR$;=J8oG~{8XO& zH2Gobo5k3Qus8j4<3IXf1_FU zH(dU^@IDb;`0nzn@Hb9WJ{CWAzSeKzsfF_E;UzLWR8Mz`>~OU5f0ybw<^TN~%D*0^ z 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 -l1%d7mnFu`$_&h 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 H}Plxbd`G0!uDW2w? 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%0DK!&d<;I{<#Tt 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%0DG=(J{9tu^AzgKzEFo< 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%0A&O=0@bWks;FC!R`5n0^!D3jjy4K%bsw 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%0AgZ9NWe)HH5Kn%y4BFXy6RbKm>U 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�{N>?C-Sd}1 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%0DlI227Cs5J`VhE0pI3uK3iY^ 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 g# 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 bhG>X}Xo!Yrh=yo*e`)yMd%yG_|K&deETfyw literal 0 HcmV?d00001 diff --git a/tests/TestTC/test_tc.py b/tests/TestTC/test_tc.py new file mode 100644 index 00000000..47cb3e28 --- /dev/null +++ b/tests/TestTC/test_tc.py @@ -0,0 +1,52 @@ +from __future__ import print_function +from __future__ import division + +import numpy as np +import cellconstructor as CC +import cellconstructor.Phonons +import cellconstructor.ForceTensor +import cellconstructor.ThermalConductivity +import time + +def test_tc(): + dyn_prefix = 'final_dyn' + nqirr = 4 + + SSCHA_TO_MS = cellconstructor.ThermalConductivity.SSCHA_TO_MS + RY_TO_THZ = cellconstructor.ThermalConductivity.SSCHA_TO_THZ + dyn = CC.Phonons.Phonons(dyn_prefix, nqirr) + + supercell = dyn.GetSupercell() + + fc3 = CC.ForceTensor.Tensor3(dyn.structure, + dyn.structure.generate_supercell(supercell), supercell) + + d3 = np.load("d3_realspace_sym.npy")*2.0 + fc3.SetupFromTensor(d3) + fc3 = CC.ThermalConductivity.centering_fc3(fc3) + + mesh = [10,10,10] + smear = 0.1/RY_TO_THZ + + tc = CC.ThermalConductivity.ThermalConductivity(dyn, fc3, + kpoint_grid = mesh, scattering_grid = mesh, smearing_scale = None, + smearing_type = 'constant', cp_mode = 'quantum', off_diag = True) + + temperatures = np.linspace(200,1200,6,dtype=float) + start_time = time.time() + tc.setup_harmonic_properties(smear) + tc.write_harmonic_properties_to_file() + + tc.calculate_kappa(mode = 'SRTA', temperatures = temperatures, + write_lifetimes = True, gauss_smearing = True, offdiag_mode = 'wigner', + kappa_filename = 'Thermal_conductivity_SRTA', lf_method = 'fortran-P') + + tc1 = CC.ThermalConductivity.load_thermal_conductivity('standard.pkl') + keys = list(tc.kappa.keys()) + keys1 = list(tc.kappa.keys()) + for key in keys: + for key1 in keys1: + if(key == key1): + np.testing.assert_allclose(tc.kappa[key], tc1.kappa[key1]) +if __name__ == "__main__": + test_tc() From ac511ddd2ec5c2ab67a1b09826e243ef4db94839 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Thu, 8 Feb 2024 12:28:36 +0100 Subject: [PATCH 202/204] Changed flags for setup file --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 2d0fdbd7..5d9786f7 100644 --- a/setup.py +++ b/setup.py @@ -51,8 +51,8 @@ "FModules/third_order_cond_centering.f90", "FModules/get_lf.f90"], libraries= ["lapack", "blas"], - extra_f90_compile_args = ["-cpp", "-fcheck=all", "-fopenmp", "-lgomp"], - #extra_f90_compile_args = ["-cpp", "-O2", "-fopenmp", "-lgomp"], + #extra_f90_compile_args = ["-cpp", "-fcheck=all", "-fopenmp", "-lgomp"], + extra_f90_compile_args = ["-cpp", "-O2", "-fopenmp", "-lgomp"], extra_link_args = ["-fopenmp"] ) From 8f9bf65c3ad5079b17620438533264aaacfe8870 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 9 Feb 2024 08:17:11 +0100 Subject: [PATCH 203/204] Added path --- tests/TestTC/test_tc.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/TestTC/test_tc.py b/tests/TestTC/test_tc.py index 47cb3e28..adbcf8f9 100644 --- a/tests/TestTC/test_tc.py +++ b/tests/TestTC/test_tc.py @@ -6,9 +6,13 @@ import cellconstructor.Phonons import cellconstructor.ForceTensor import cellconstructor.ThermalConductivity +import sys, os import time def test_tc(): + total_path = os.path.dirname(os.path.abspath(__file__)) + os.chdir(total_path) + dyn_prefix = 'final_dyn' nqirr = 4 From 4be427fbc84e77ed944abdc4bb9ab3ab08588d73 Mon Sep 17 00:00:00 2001 From: DjordjeDangic Date: Fri, 9 Feb 2024 08:33:18 +0100 Subject: [PATCH 204/204] Added atol=1.0e-6 to make sure test does not fail because of the offdiagonal terms in kappa --- tests/TestTC/test_tc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/TestTC/test_tc.py b/tests/TestTC/test_tc.py index adbcf8f9..9e794010 100644 --- a/tests/TestTC/test_tc.py +++ b/tests/TestTC/test_tc.py @@ -51,6 +51,6 @@ def test_tc(): for key in keys: for key1 in keys1: if(key == key1): - np.testing.assert_allclose(tc.kappa[key], tc1.kappa[key1]) + np.testing.assert_allclose(tc.kappa[key], tc1.kappa[key1], atol = 1.0e-6) if __name__ == "__main__": test_tc()

    `Xx*^It!l$eKuTuNm5QmPY?8?8PxcK?^ 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�_;1^( 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�FNEsi;eHrgni_e%ELXaycqse=p|AAkl$_m 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

  • A-^SU=X~Gz=s((1 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