Loading include/dca/phys/dca_analysis/bse_solver/bse_cluster_solver.hpp +6 −6 Original line number Diff line number Diff line Loading @@ -41,13 +41,13 @@ public: using Lattice = typename ParametersType::lattice_type; using w = func::dmn_0<domains::frequency_domain>; using w_VERTEX = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using WVertexDmn = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using b = func::dmn_0<domains::electron_band_domain>; using k_DCA = func::dmn_0<domains::cluster_domain<double, ParametersType::lattice_type::DIMENSION, domains::CLUSTER, domains::MOMENTUM_SPACE, domains::BRILLOUIN_ZONE>>; using cluster_eigenvector_dmn_t = func::dmn_variadic<b, b, k_DCA, w_VERTEX>; using cluster_eigenvector_dmn_t = func::dmn_variadic<b, b, k_DCA, WVertexDmn>; using DCA_matrix_dmn_t = func::dmn_variadic<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t>; BseClusterSolver(ParametersType& parameters, DcaDataType& data); Loading Loading @@ -84,7 +84,7 @@ private: diagrammatic_symmetries<ParametersType> diagrammatic_symmetries_obj; func::function<std::complex<ScalarType>, DCA_matrix_dmn_t> Gamma_cluster; func::function<std::complex<double>, func::dmn_variadic<b, b, b, b, k_DCA, w_VERTEX>> G_II_0_function; func::function<std::complex<double>, func::dmn_variadic<b, b, b, b, k_DCA, WVertexDmn>> G_II_0_function; }; template <typename ParametersType, typename DcaDataType, typename ScalarType> Loading Loading @@ -211,10 +211,10 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0( G_II_0 = 0.; func::dmn_variadic<k_DCA, w_VERTEX> k_w_dmn; func::dmn_variadic<k_DCA, WVertexDmn> k_w_dmn; int W = parameters.get_sp_fermionic_frequencies(); // TODO: Replace using w::dmn_size(). int W_vertex = w_VERTEX::dmn_size() / 2; int W_vertex = WVertexDmn::dmn_size() / 2; int q = parameters.get_four_point_momentum_transfer_index(); int w_nu = parameters.get_four_point_frequency_transfer(); Loading Loading @@ -287,7 +287,7 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0_func if (concurrency.id() == concurrency.first()) std::cout << "\t" << __FUNCTION__ << "\n\n"; for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int K_ind = 0; K_ind < k_DCA::dmn_size(); K_ind++) for (int m2 = 0; m2 < b::dmn_size(); m2++) Loading include/dca/phys/dca_analysis/bse_solver/bse_lattice_solver.hpp +17 −17 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ public: const static int num_harmonics = 3; using CubicHarmonicsDmn = func::dmn_0<func::dmn<num_harmonics, int>>; using w_VERTEX = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using WVertexDmn = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using b = func::dmn_0<domains::electron_band_domain>; using b_b = func::dmn_variadic<b, b>; Loading @@ -81,10 +81,10 @@ public: using chi_vector_dmn_t = func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t>; using LatticeEigenvectorDmn = func::dmn_variadic<b, b, k_HOST_VERTEX, w_VERTEX>; using LatticeEigenvectorDmn = func::dmn_variadic<b, b, k_HOST_VERTEX, WVertexDmn>; using crystal_eigenvector_dmn_t = func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t, w_VERTEX>; using CubicHarmonicsEigenvectorDmn = func::dmn_variadic<b, b, CubicHarmonicsDmn, w_VERTEX>; func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t, WVertexDmn>; using CubicHarmonicsEigenvectorDmn = func::dmn_variadic<b, b, CubicHarmonicsDmn, WVertexDmn>; using HOST_matrix_dmn_t = func::dmn_variadic<LatticeEigenvectorDmn, LatticeEigenvectorDmn>; Loading Loading @@ -143,7 +143,7 @@ private: DcaDataType& MOMS; func::function<std::complex<ScalarType>, HOST_matrix_dmn_t> Gamma_lattice; func::function<std::complex<ScalarType>, func::dmn_variadic<b_b, b_b, k_HOST_VERTEX, w_VERTEX>> chi_0_lattice; func::function<std::complex<ScalarType>, func::dmn_variadic<b_b, b_b, k_HOST_VERTEX, WVertexDmn>> chi_0_lattice; // Matrix in \vec{k} and \omega_n with the diagonal = chi_0_lattice. func::function<std::complex<ScalarType>, HOST_matrix_dmn_t> chi_0_lattice_matrix; Loading Loading @@ -250,7 +250,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::initialize() { std::exp(I * math::util::innerProduct(r_vec, k_HOST_VERTEX::get_elements()[k_ind])) / std::sqrt(double(k_HOST_VERTEX::dmn_size())); for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int k_ind = 0; k_ind < k_HOST_VERTEX::dmn_size(); k_ind++) for (int m_ind = 0; m_ind < b::dmn_size(); m_ind++) for (int n_ind = 0; n_ind < b::dmn_size(); n_ind++) Loading Loading @@ -346,7 +346,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::computeChi0Latti // Renormalize and set diagonal \chi_0 matrix. const ScalarType renorm = 1. / (parameters.get_beta() * k_HOST_VERTEX::dmn_size()); for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int K_ind = 0; K_ind < k_HOST_VERTEX::dmn_size(); K_ind++) for (int m2 = 0; m2 < b::dmn_size(); m2++) for (int n2 = 0; n2 < b::dmn_size(); n2++) Loading Loading @@ -739,12 +739,12 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::compute_folded_s chi_q = 0.; for (int w2 = 0; w2 < w_VERTEX::dmn_size(); w2++) for (int w2 = 0; w2 < WVertexDmn::dmn_size(); w2++) for (int K2 = 0; K2 < M; K2++) for (int m2 = 0; m2 < b::dmn_size(); m2++) for (int n2 = 0; n2 < b::dmn_size(); n2++) for (int w1 = 0; w1 < w_VERTEX::dmn_size(); w1++) for (int w1 = 0; w1 < WVertexDmn::dmn_size(); w1++) for (int K1 = 0; K1 < M; K1++) for (int m1 = 0; m1 < b::dmn_size(); m1++) for (int n1 = 0; n1 < b::dmn_size(); n1++) Loading Loading @@ -809,9 +809,9 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::printOnShell() { std::complex<ScalarType> norm = 0; for (int j = 0; j < k_HOST_VERTEX::dmn_size(); j++) { scal_prod += conj(psi_k(j, l)) * leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2); norm += conj(leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2)) * leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2); scal_prod += conj(psi_k(j, l)) * leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2); norm += conj(leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2)) * leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2); } assert(std::abs(norm.imag()) < 1.e-3); const std::complex<ScalarType> result = scal_prod / std::sqrt(norm.real() + 1.e-16); Loading @@ -838,9 +838,9 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::printOnShell() { for (int i = 0; i < num_evals; ++i) { std::cout << "\t[" << leading_symmetry_decomposition(i, 0, 0, harmonic, w_VERTEX::dmn_size() / 2).real() << leading_symmetry_decomposition(i, 0, 0, harmonic, WVertexDmn::dmn_size() / 2).real() << ", " << leading_symmetry_decomposition(i, 0, 0, harmonic, w_VERTEX::dmn_size() / 2).imag() << leading_symmetry_decomposition(i, 0, 0, harmonic, WVertexDmn::dmn_size() / 2).imag() << "]"; } std::cout << "\n"; Loading Loading @@ -868,13 +868,13 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::symmetrizeLeadin std::sin((2. * M_PI * l) / num_phases)); ScalarType diff = 0; for (int w = 0; w < w_VERTEX::dmn_size() / 2; w++) for (int w = 0; w < WVertexDmn::dmn_size() / 2; w++) for (int k = 0; k < k_HOST_VERTEX::dmn_size(); k++) for (int b2 = 0; b2 < b::dmn_size(); b2++) for (int b1 = 0; b1 < b::dmn_size(); b1++) diff += std::abs( phase * leading_eigenvectors(i, b1, b2, k, w) - conj(phase * leading_eigenvectors(i, b1, b2, k, w_VERTEX::dmn_size() - 1 - w))); conj(phase * leading_eigenvectors(i, b1, b2, k, WVertexDmn::dmn_size() - 1 - w))); if (diff < diff_min) { diff_min = diff; Loading @@ -898,7 +898,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::characterizeLead std::cout << "\n" << __FUNCTION__ << std::endl; for (int ev = 0; ev < num_evals; ev++) { for (int w = 0; w < w_VERTEX::dmn_size(); w++) { for (int w = 0; w < WVertexDmn::dmn_size(); w++) { for (int b2 = 0; b2 < b::dmn_size(); b2++) { for (int b1 = 0; b1 < b::dmn_size(); b1++) { for (int harmonic = 0; harmonic < num_harmonics; harmonic++) { Loading include/dca/phys/dca_analysis/bse_solver/old/BSE_cluster_solver.h +6 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ namespace DCA typedef typename parameters_type::profiler_type profiler_t; typedef typename parameters_type::concurrency_type concurrency_t; typedef dmn_4<b,b,k_DCA,w_VERTEX> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_DCA,WVertexDmn> cluster_eigenvector_dmn_t; typedef dmn_2<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t> DCA_matrix_dmn_t; public: Loading @@ -33,7 +33,7 @@ namespace DCA void compute_Gamma_cluster(); FUNC_LIB::function<std::complex<scalartype>, DCA_matrix_dmn_t >& get_Gamma_matrix() { return Gamma_matrix; } FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, w_VERTEX> >& get_G_II_0_function() { return G_II_0_function; } FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, WVertexDmn> >& get_G_II_0_function() { return G_II_0_function; } private: Loading Loading @@ -61,7 +61,7 @@ namespace DCA diagrammatic_symmetries<parameters_type> diagrammatic_symmetries_obj; FUNC_LIB::function<std::complex<scalartype>, DCA_matrix_dmn_t > Gamma_matrix; FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, w_VERTEX> > G_II_0_function; FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, WVertexDmn> > G_II_0_function; }; template<class parameters_type, class MOMS_type> Loading Loading @@ -192,10 +192,10 @@ namespace DCA G_II_0 = 0.; dmn_2<k_DCA, w_VERTEX> k_w_dmn; dmn_2<k_DCA, WVertexDmn> k_w_dmn; int W = parameters.get_sp_fermionic_frequencies(); int W_vertex = w_VERTEX::dmn_size()/2; int W_vertex = WVertexDmn::dmn_size()/2; int q = parameters.get_q_channel(); int w_nu = parameters.get_w_channel(); Loading Loading @@ -271,7 +271,7 @@ namespace DCA if(concurrency.id()==concurrency.last()) std::cout << "\t" << __FUNCTION__ << "\n\n"; for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int K_ind=0; K_ind<k_DCA::dmn_size(); K_ind++) for(int m2=0; m2<b::dmn_size(); m2++) Loading include/dca/phys/dca_analysis/bse_solver/old/BSE_lattice_solver.h +28 −28 Original line number Diff line number Diff line Loading @@ -66,10 +66,10 @@ namespace DCA typedef dmn_3<b,b,crystal_harmonics_expansion_dmn_t> chi_vector_dmn_t; typedef dmn_4<b,b,k_DCA , w_VERTEX> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_HOST_VERTEX , w_VERTEX> lattice_eigenvector_dmn_t; typedef dmn_4<b,b,crystal_harmonics_expansion_dmn_t , w_VERTEX> crystal_eigenvector_dmn_t; typedef dmn_4<b,b, cubic_harmonics_dmn_type , w_VERTEX> cubic_eigenvector_dmn_t; typedef dmn_4<b,b,k_DCA , WVertexDmn> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_HOST_VERTEX , WVertexDmn> lattice_eigenvector_dmn_t; typedef dmn_4<b,b,crystal_harmonics_expansion_dmn_t , WVertexDmn> crystal_eigenvector_dmn_t; typedef dmn_4<b,b, cubic_harmonics_dmn_type , WVertexDmn> cubic_eigenvector_dmn_t; typedef dmn_2<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t> DCA_matrix_dmn_t; typedef dmn_2<lattice_eigenvector_dmn_t, lattice_eigenvector_dmn_t> HOST_matrix_dmn_t; Loading Loading @@ -143,7 +143,7 @@ namespace DCA FUNC_LIB::function<std::complex<scalartype>, HOST_matrix_dmn_t> Gamma_lattice; FUNC_LIB::function<std::complex<scalartype>, HOST_matrix_dmn_t> Gamma_sym; FUNC_LIB::function<std::complex<scalartype>, dmn_4<b_b, b_b, k_HOST_VERTEX, w_VERTEX> > chi_0_function; FUNC_LIB::function<std::complex<scalartype>, dmn_4<b_b, b_b, k_HOST_VERTEX, WVertexDmn> > chi_0_function; FUNC_LIB::function<std::complex<scalartype>, lambda_dmn_type > leading_eigenvalues; FUNC_LIB::function<std::complex<scalartype>, dmn_2<lambda_dmn_type, cubic_eigenvector_dmn_t > > leading_symmetry_decomposition; Loading Loading @@ -266,7 +266,7 @@ namespace DCA for(int k_ind=0; k_ind<k_HOST_VERTEX::dmn_size(); k_ind++) psi_k(k_ind, l) = std::exp(I*VECTOR_OPERATIONS::DOT_PRODUCT(r_vec, k_HOST_VERTEX::get_elements()[k_ind]))/std::sqrt(double(k_HOST_VERTEX::dmn_size())); for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int k_ind=0; k_ind<k_HOST_VERTEX::dmn_size(); k_ind++) for(int m_ind=0; m_ind<b::dmn_size(); m_ind++) for(int n_ind=0; n_ind<b::dmn_size(); n_ind++) Loading Loading @@ -414,7 +414,7 @@ namespace DCA // scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); // for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) // for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) // for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) // for(int m2=0; m2<b::dmn_size(); m2++) Loading Loading @@ -497,7 +497,7 @@ namespace DCA // scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); // for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) // for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) // for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) // for(int m2=0; m2<b::dmn_size(); m2++) Loading @@ -515,7 +515,7 @@ namespace DCA { scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) for(int m2=0; m2<b::dmn_size(); m2++) Loading Loading @@ -550,7 +550,7 @@ namespace DCA // if(concurrency.id()==0) // std::cout << "\n\n start tp-deconvolution of Gamma \n\n"; // FUNC_LIB::function<std::complex<scalartype>, dmn_2<dmn_4<b,b,tmp_cluster_dmn_t,w_VERTEX>, dmn_4<b,b,tmp_cluster_dmn_t,w_VERTEX> > > Gamma_lattice_interp("Gamma_lattice_interp"); // FUNC_LIB::function<std::complex<scalartype>, dmn_2<dmn_4<b,b,tmp_cluster_dmn_t,WVertexDmn>, dmn_4<b,b,tmp_cluster_dmn_t,WVertexDmn> > > Gamma_lattice_interp("Gamma_lattice_interp"); // for(int i=0; i<Gamma_lattice_interp.size(); i++) // Gamma_lattice_interp(i) = Gamma_lattice(i); Loading Loading @@ -586,27 +586,27 @@ namespace DCA if(concurrency.id()==concurrency.last()) std::cout << "\n\n\t symmetrize Gamma_lattice for even-frequency part (only need to symmetrize w2 argument in Gamma(k1,w1,k2,w2)), then compute Gamma_chi_0_lattice " << print_time() << " ..."; for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) for(int K2=0; K2<k_HOST_VERTEX::dmn_size(); K2++) for(int m2=0; m2<b::dmn_size(); m2++) for(int n2=0; n2<b::dmn_size(); n2++) for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) { Gamma_sym(n1,m1,K1,w1,n2,m2,K2,w2) = 0.5* (Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w2) + Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w_VERTEX::dmn_size()-1-w2)); Gamma_sym(n1,m1,K1,w1,n2,m2,K2,w2) = 0.5* (Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w2) + Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,WVertexDmn::dmn_size()-1-w2)); } } // if(concurrency.id()==concurrency.last()) // { // for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) // for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) // for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) // { // std::cout << "\n"; // for(int K2=0; K2<k_HOST_VERTEX::dmn_size(); K2++) // for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) // for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) // { // std::cout << real(Gamma_sym(0,0,K1,w1,0,0,K2,w2)) << " "; // } Loading Loading @@ -1054,12 +1054,12 @@ namespace DCA chi_q = 0.; for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) for(int K2=0; K2<M; K2++) for(int m2=0; m2<b::dmn_size(); m2++) for(int n2=0; n2<b::dmn_size(); n2++) for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) for(int K1=0; K1<M; K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) Loading Loading @@ -1130,8 +1130,8 @@ namespace DCA std::complex<scalartype> norm = 0; for(int j=0; j<N; j++){ result += conj(psi_k(j, l))*leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2); norm += conj(leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2))*leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2); result += conj(psi_k(j, l))*leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2); norm += conj(leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2))*leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2); } std::cout << "\t[ " << real(result/std::sqrt(real(norm)+1.e-16)) << ", " << imag(result/std::sqrt(real(norm)+1.e-16)) << "]"; Loading Loading @@ -1173,8 +1173,8 @@ namespace DCA double kx = k_HOST_VERTEX::get_elements()[k_ind][0]; double ky = k_HOST_VERTEX::get_elements()[k_ind][1]; std::cout << i << "\t" << "k = [" << kx << ", " << ky << "]\t " << "Phi_k = [" << real(leading_eigenvectors(i,0,0,k_ind,w_VERTEX::dmn_size()/2)) << ", " << imag(leading_eigenvectors(i,0,0,k_ind,w_VERTEX::dmn_size()/2)) << "]\n"; real(leading_eigenvectors(i,0,0,k_ind,WVertexDmn::dmn_size()/2)) << ", " << imag(leading_eigenvectors(i,0,0,k_ind,WVertexDmn::dmn_size()/2)) << "]\n"; } std::cout << "----------------------------------------------------------------------" << "\n"; } Loading Loading @@ -1208,9 +1208,9 @@ namespace DCA std::cout << " w k=[" << k_HOST_VERTEX::get_elements()[ind0pi][0] << ", " << k_HOST_VERTEX::get_elements()[ind0pi][1] << "] k=[" << k_HOST_VERTEX::get_elements()[indpi0][0] << ", " << k_HOST_VERTEX::get_elements()[indpi0][1] << "] \n\n"; for(int i=0; i<N_LAMBDAS; i++) { for(int w=0; w<w_VERTEX::dmn_size(); w++) for(int w=0; w<WVertexDmn::dmn_size(); w++) { std::cout << i << " " << w_VERTEX::get_elements()[w] << " " << leading_eigenvectors_real(i,0,0,ind0pi,w) << " " << leading_eigenvectors_real(i,0,0,indpi0,w) << "\n"; std::cout << i << " " << WVertexDmn::get_elements()[w] << " " << leading_eigenvectors_real(i,0,0,ind0pi,w) << " " << leading_eigenvectors_real(i,0,0,indpi0,w) << "\n"; } std::cout << "----------------------------------------------------------------------" << "\n"; } Loading @@ -1229,9 +1229,9 @@ namespace DCA double ky = k_HOST_VERTEX::get_elements()[k_ind][1]; if ((abs(kx-0.)<0.01)&&(abs(ky-3.14)<0.01)){ eig_0pi = leading_eigenvectors(w_VERTEX::dmn_size()/2, k_ind, 0,0,i);} eig_0pi = leading_eigenvectors(WVertexDmn::dmn_size()/2, k_ind, 0,0,i);} if ((abs(kx-3.14)<0.01)&&(abs(ky-0.)<0.01)){ eig_pi0 = leading_eigenvectors(w_VERTEX::dmn_size()/2, k_ind, 0,0,i);} eig_pi0 = leading_eigenvectors(WVertexDmn::dmn_size()/2, k_ind, 0,0,i);} } std::cout << i << "\t" << eig_0pi-eig_pi0 << "\n"; } Loading Loading @@ -1263,12 +1263,12 @@ namespace DCA scalartype result=0; for(int w1=0; w1<w_VERTEX::dmn_size()/2; w1++) for(int w1=0; w1<WVertexDmn::dmn_size()/2; w1++) for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) result += std::abs(alpha*leading_eigenvectors(i, n1,m1,K1,w1) - conj(alpha*leading_eigenvectors(i, n1,m1,K1,w_VERTEX::dmn_size()-1-w1))); - conj(alpha*leading_eigenvectors(i, n1,m1,K1,WVertexDmn::dmn_size()-1-w1))); if(result < norm){ norm = result; Loading @@ -1292,7 +1292,7 @@ namespace DCA for(int n_lam=0; n_lam<N_LAMBDAS; n_lam++) { for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++){ for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++){ for(int m_ind=0; m_ind<b::dmn_size(); m_ind++){ for(int n_ind=0; n_ind<b::dmn_size(); n_ind++){ Loading include/dca/phys/dca_analysis/bse_solver/old/BSE_solver.h +20 −20 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
include/dca/phys/dca_analysis/bse_solver/bse_cluster_solver.hpp +6 −6 Original line number Diff line number Diff line Loading @@ -41,13 +41,13 @@ public: using Lattice = typename ParametersType::lattice_type; using w = func::dmn_0<domains::frequency_domain>; using w_VERTEX = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using WVertexDmn = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using b = func::dmn_0<domains::electron_band_domain>; using k_DCA = func::dmn_0<domains::cluster_domain<double, ParametersType::lattice_type::DIMENSION, domains::CLUSTER, domains::MOMENTUM_SPACE, domains::BRILLOUIN_ZONE>>; using cluster_eigenvector_dmn_t = func::dmn_variadic<b, b, k_DCA, w_VERTEX>; using cluster_eigenvector_dmn_t = func::dmn_variadic<b, b, k_DCA, WVertexDmn>; using DCA_matrix_dmn_t = func::dmn_variadic<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t>; BseClusterSolver(ParametersType& parameters, DcaDataType& data); Loading Loading @@ -84,7 +84,7 @@ private: diagrammatic_symmetries<ParametersType> diagrammatic_symmetries_obj; func::function<std::complex<ScalarType>, DCA_matrix_dmn_t> Gamma_cluster; func::function<std::complex<double>, func::dmn_variadic<b, b, b, b, k_DCA, w_VERTEX>> G_II_0_function; func::function<std::complex<double>, func::dmn_variadic<b, b, b, b, k_DCA, WVertexDmn>> G_II_0_function; }; template <typename ParametersType, typename DcaDataType, typename ScalarType> Loading Loading @@ -211,10 +211,10 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0( G_II_0 = 0.; func::dmn_variadic<k_DCA, w_VERTEX> k_w_dmn; func::dmn_variadic<k_DCA, WVertexDmn> k_w_dmn; int W = parameters.get_sp_fermionic_frequencies(); // TODO: Replace using w::dmn_size(). int W_vertex = w_VERTEX::dmn_size() / 2; int W_vertex = WVertexDmn::dmn_size() / 2; int q = parameters.get_four_point_momentum_transfer_index(); int w_nu = parameters.get_four_point_frequency_transfer(); Loading Loading @@ -287,7 +287,7 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0_func if (concurrency.id() == concurrency.first()) std::cout << "\t" << __FUNCTION__ << "\n\n"; for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int K_ind = 0; K_ind < k_DCA::dmn_size(); K_ind++) for (int m2 = 0; m2 < b::dmn_size(); m2++) Loading
include/dca/phys/dca_analysis/bse_solver/bse_lattice_solver.hpp +17 −17 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ public: const static int num_harmonics = 3; using CubicHarmonicsDmn = func::dmn_0<func::dmn<num_harmonics, int>>; using w_VERTEX = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using WVertexDmn = func::dmn_0<domains::vertex_frequency_domain<domains::COMPACT>>; using b = func::dmn_0<domains::electron_band_domain>; using b_b = func::dmn_variadic<b, b>; Loading @@ -81,10 +81,10 @@ public: using chi_vector_dmn_t = func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t>; using LatticeEigenvectorDmn = func::dmn_variadic<b, b, k_HOST_VERTEX, w_VERTEX>; using LatticeEigenvectorDmn = func::dmn_variadic<b, b, k_HOST_VERTEX, WVertexDmn>; using crystal_eigenvector_dmn_t = func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t, w_VERTEX>; using CubicHarmonicsEigenvectorDmn = func::dmn_variadic<b, b, CubicHarmonicsDmn, w_VERTEX>; func::dmn_variadic<b, b, crystal_harmonics_expansion_dmn_t, WVertexDmn>; using CubicHarmonicsEigenvectorDmn = func::dmn_variadic<b, b, CubicHarmonicsDmn, WVertexDmn>; using HOST_matrix_dmn_t = func::dmn_variadic<LatticeEigenvectorDmn, LatticeEigenvectorDmn>; Loading Loading @@ -143,7 +143,7 @@ private: DcaDataType& MOMS; func::function<std::complex<ScalarType>, HOST_matrix_dmn_t> Gamma_lattice; func::function<std::complex<ScalarType>, func::dmn_variadic<b_b, b_b, k_HOST_VERTEX, w_VERTEX>> chi_0_lattice; func::function<std::complex<ScalarType>, func::dmn_variadic<b_b, b_b, k_HOST_VERTEX, WVertexDmn>> chi_0_lattice; // Matrix in \vec{k} and \omega_n with the diagonal = chi_0_lattice. func::function<std::complex<ScalarType>, HOST_matrix_dmn_t> chi_0_lattice_matrix; Loading Loading @@ -250,7 +250,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::initialize() { std::exp(I * math::util::innerProduct(r_vec, k_HOST_VERTEX::get_elements()[k_ind])) / std::sqrt(double(k_HOST_VERTEX::dmn_size())); for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int k_ind = 0; k_ind < k_HOST_VERTEX::dmn_size(); k_ind++) for (int m_ind = 0; m_ind < b::dmn_size(); m_ind++) for (int n_ind = 0; n_ind < b::dmn_size(); n_ind++) Loading Loading @@ -346,7 +346,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::computeChi0Latti // Renormalize and set diagonal \chi_0 matrix. const ScalarType renorm = 1. / (parameters.get_beta() * k_HOST_VERTEX::dmn_size()); for (int w_ind = 0; w_ind < w_VERTEX::dmn_size(); w_ind++) for (int w_ind = 0; w_ind < WVertexDmn::dmn_size(); w_ind++) for (int K_ind = 0; K_ind < k_HOST_VERTEX::dmn_size(); K_ind++) for (int m2 = 0; m2 < b::dmn_size(); m2++) for (int n2 = 0; n2 < b::dmn_size(); n2++) Loading Loading @@ -739,12 +739,12 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::compute_folded_s chi_q = 0.; for (int w2 = 0; w2 < w_VERTEX::dmn_size(); w2++) for (int w2 = 0; w2 < WVertexDmn::dmn_size(); w2++) for (int K2 = 0; K2 < M; K2++) for (int m2 = 0; m2 < b::dmn_size(); m2++) for (int n2 = 0; n2 < b::dmn_size(); n2++) for (int w1 = 0; w1 < w_VERTEX::dmn_size(); w1++) for (int w1 = 0; w1 < WVertexDmn::dmn_size(); w1++) for (int K1 = 0; K1 < M; K1++) for (int m1 = 0; m1 < b::dmn_size(); m1++) for (int n1 = 0; n1 < b::dmn_size(); n1++) Loading Loading @@ -809,9 +809,9 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::printOnShell() { std::complex<ScalarType> norm = 0; for (int j = 0; j < k_HOST_VERTEX::dmn_size(); j++) { scal_prod += conj(psi_k(j, l)) * leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2); norm += conj(leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2)) * leading_eigenvectors(i, 0, 0, j, w_VERTEX::dmn_size() / 2); scal_prod += conj(psi_k(j, l)) * leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2); norm += conj(leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2)) * leading_eigenvectors(i, 0, 0, j, WVertexDmn::dmn_size() / 2); } assert(std::abs(norm.imag()) < 1.e-3); const std::complex<ScalarType> result = scal_prod / std::sqrt(norm.real() + 1.e-16); Loading @@ -838,9 +838,9 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::printOnShell() { for (int i = 0; i < num_evals; ++i) { std::cout << "\t[" << leading_symmetry_decomposition(i, 0, 0, harmonic, w_VERTEX::dmn_size() / 2).real() << leading_symmetry_decomposition(i, 0, 0, harmonic, WVertexDmn::dmn_size() / 2).real() << ", " << leading_symmetry_decomposition(i, 0, 0, harmonic, w_VERTEX::dmn_size() / 2).imag() << leading_symmetry_decomposition(i, 0, 0, harmonic, WVertexDmn::dmn_size() / 2).imag() << "]"; } std::cout << "\n"; Loading Loading @@ -868,13 +868,13 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::symmetrizeLeadin std::sin((2. * M_PI * l) / num_phases)); ScalarType diff = 0; for (int w = 0; w < w_VERTEX::dmn_size() / 2; w++) for (int w = 0; w < WVertexDmn::dmn_size() / 2; w++) for (int k = 0; k < k_HOST_VERTEX::dmn_size(); k++) for (int b2 = 0; b2 < b::dmn_size(); b2++) for (int b1 = 0; b1 < b::dmn_size(); b1++) diff += std::abs( phase * leading_eigenvectors(i, b1, b2, k, w) - conj(phase * leading_eigenvectors(i, b1, b2, k, w_VERTEX::dmn_size() - 1 - w))); conj(phase * leading_eigenvectors(i, b1, b2, k, WVertexDmn::dmn_size() - 1 - w))); if (diff < diff_min) { diff_min = diff; Loading @@ -898,7 +898,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::characterizeLead std::cout << "\n" << __FUNCTION__ << std::endl; for (int ev = 0; ev < num_evals; ev++) { for (int w = 0; w < w_VERTEX::dmn_size(); w++) { for (int w = 0; w < WVertexDmn::dmn_size(); w++) { for (int b2 = 0; b2 < b::dmn_size(); b2++) { for (int b1 = 0; b1 < b::dmn_size(); b1++) { for (int harmonic = 0; harmonic < num_harmonics; harmonic++) { Loading
include/dca/phys/dca_analysis/bse_solver/old/BSE_cluster_solver.h +6 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ namespace DCA typedef typename parameters_type::profiler_type profiler_t; typedef typename parameters_type::concurrency_type concurrency_t; typedef dmn_4<b,b,k_DCA,w_VERTEX> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_DCA,WVertexDmn> cluster_eigenvector_dmn_t; typedef dmn_2<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t> DCA_matrix_dmn_t; public: Loading @@ -33,7 +33,7 @@ namespace DCA void compute_Gamma_cluster(); FUNC_LIB::function<std::complex<scalartype>, DCA_matrix_dmn_t >& get_Gamma_matrix() { return Gamma_matrix; } FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, w_VERTEX> >& get_G_II_0_function() { return G_II_0_function; } FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, WVertexDmn> >& get_G_II_0_function() { return G_II_0_function; } private: Loading Loading @@ -61,7 +61,7 @@ namespace DCA diagrammatic_symmetries<parameters_type> diagrammatic_symmetries_obj; FUNC_LIB::function<std::complex<scalartype>, DCA_matrix_dmn_t > Gamma_matrix; FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, w_VERTEX> > G_II_0_function; FUNC_LIB::function<std::complex<double>, dmn_4<b_b, b_b, k_DCA, WVertexDmn> > G_II_0_function; }; template<class parameters_type, class MOMS_type> Loading Loading @@ -192,10 +192,10 @@ namespace DCA G_II_0 = 0.; dmn_2<k_DCA, w_VERTEX> k_w_dmn; dmn_2<k_DCA, WVertexDmn> k_w_dmn; int W = parameters.get_sp_fermionic_frequencies(); int W_vertex = w_VERTEX::dmn_size()/2; int W_vertex = WVertexDmn::dmn_size()/2; int q = parameters.get_q_channel(); int w_nu = parameters.get_w_channel(); Loading Loading @@ -271,7 +271,7 @@ namespace DCA if(concurrency.id()==concurrency.last()) std::cout << "\t" << __FUNCTION__ << "\n\n"; for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int K_ind=0; K_ind<k_DCA::dmn_size(); K_ind++) for(int m2=0; m2<b::dmn_size(); m2++) Loading
include/dca/phys/dca_analysis/bse_solver/old/BSE_lattice_solver.h +28 −28 Original line number Diff line number Diff line Loading @@ -66,10 +66,10 @@ namespace DCA typedef dmn_3<b,b,crystal_harmonics_expansion_dmn_t> chi_vector_dmn_t; typedef dmn_4<b,b,k_DCA , w_VERTEX> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_HOST_VERTEX , w_VERTEX> lattice_eigenvector_dmn_t; typedef dmn_4<b,b,crystal_harmonics_expansion_dmn_t , w_VERTEX> crystal_eigenvector_dmn_t; typedef dmn_4<b,b, cubic_harmonics_dmn_type , w_VERTEX> cubic_eigenvector_dmn_t; typedef dmn_4<b,b,k_DCA , WVertexDmn> cluster_eigenvector_dmn_t; typedef dmn_4<b,b,k_HOST_VERTEX , WVertexDmn> lattice_eigenvector_dmn_t; typedef dmn_4<b,b,crystal_harmonics_expansion_dmn_t , WVertexDmn> crystal_eigenvector_dmn_t; typedef dmn_4<b,b, cubic_harmonics_dmn_type , WVertexDmn> cubic_eigenvector_dmn_t; typedef dmn_2<cluster_eigenvector_dmn_t, cluster_eigenvector_dmn_t> DCA_matrix_dmn_t; typedef dmn_2<lattice_eigenvector_dmn_t, lattice_eigenvector_dmn_t> HOST_matrix_dmn_t; Loading Loading @@ -143,7 +143,7 @@ namespace DCA FUNC_LIB::function<std::complex<scalartype>, HOST_matrix_dmn_t> Gamma_lattice; FUNC_LIB::function<std::complex<scalartype>, HOST_matrix_dmn_t> Gamma_sym; FUNC_LIB::function<std::complex<scalartype>, dmn_4<b_b, b_b, k_HOST_VERTEX, w_VERTEX> > chi_0_function; FUNC_LIB::function<std::complex<scalartype>, dmn_4<b_b, b_b, k_HOST_VERTEX, WVertexDmn> > chi_0_function; FUNC_LIB::function<std::complex<scalartype>, lambda_dmn_type > leading_eigenvalues; FUNC_LIB::function<std::complex<scalartype>, dmn_2<lambda_dmn_type, cubic_eigenvector_dmn_t > > leading_symmetry_decomposition; Loading Loading @@ -266,7 +266,7 @@ namespace DCA for(int k_ind=0; k_ind<k_HOST_VERTEX::dmn_size(); k_ind++) psi_k(k_ind, l) = std::exp(I*VECTOR_OPERATIONS::DOT_PRODUCT(r_vec, k_HOST_VERTEX::get_elements()[k_ind]))/std::sqrt(double(k_HOST_VERTEX::dmn_size())); for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int k_ind=0; k_ind<k_HOST_VERTEX::dmn_size(); k_ind++) for(int m_ind=0; m_ind<b::dmn_size(); m_ind++) for(int n_ind=0; n_ind<b::dmn_size(); n_ind++) Loading Loading @@ -414,7 +414,7 @@ namespace DCA // scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); // for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) // for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) // for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) // for(int m2=0; m2<b::dmn_size(); m2++) Loading Loading @@ -497,7 +497,7 @@ namespace DCA // scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); // for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) // for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) // for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) // for(int m2=0; m2<b::dmn_size(); m2++) Loading @@ -515,7 +515,7 @@ namespace DCA { scalartype renorm = 1./(parameters.get_beta()*k_HOST_VERTEX::dmn_size()); for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++) for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++) for(int K_ind=0; K_ind<k_HOST_VERTEX::dmn_size(); K_ind++) for(int m2=0; m2<b::dmn_size(); m2++) Loading Loading @@ -550,7 +550,7 @@ namespace DCA // if(concurrency.id()==0) // std::cout << "\n\n start tp-deconvolution of Gamma \n\n"; // FUNC_LIB::function<std::complex<scalartype>, dmn_2<dmn_4<b,b,tmp_cluster_dmn_t,w_VERTEX>, dmn_4<b,b,tmp_cluster_dmn_t,w_VERTEX> > > Gamma_lattice_interp("Gamma_lattice_interp"); // FUNC_LIB::function<std::complex<scalartype>, dmn_2<dmn_4<b,b,tmp_cluster_dmn_t,WVertexDmn>, dmn_4<b,b,tmp_cluster_dmn_t,WVertexDmn> > > Gamma_lattice_interp("Gamma_lattice_interp"); // for(int i=0; i<Gamma_lattice_interp.size(); i++) // Gamma_lattice_interp(i) = Gamma_lattice(i); Loading Loading @@ -586,27 +586,27 @@ namespace DCA if(concurrency.id()==concurrency.last()) std::cout << "\n\n\t symmetrize Gamma_lattice for even-frequency part (only need to symmetrize w2 argument in Gamma(k1,w1,k2,w2)), then compute Gamma_chi_0_lattice " << print_time() << " ..."; for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) for(int K2=0; K2<k_HOST_VERTEX::dmn_size(); K2++) for(int m2=0; m2<b::dmn_size(); m2++) for(int n2=0; n2<b::dmn_size(); n2++) for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) { Gamma_sym(n1,m1,K1,w1,n2,m2,K2,w2) = 0.5* (Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w2) + Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w_VERTEX::dmn_size()-1-w2)); Gamma_sym(n1,m1,K1,w1,n2,m2,K2,w2) = 0.5* (Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,w2) + Gamma_lattice(n1,m1,K1,w1,n2,m2,K2,WVertexDmn::dmn_size()-1-w2)); } } // if(concurrency.id()==concurrency.last()) // { // for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) // for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) // for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) // { // std::cout << "\n"; // for(int K2=0; K2<k_HOST_VERTEX::dmn_size(); K2++) // for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) // for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) // { // std::cout << real(Gamma_sym(0,0,K1,w1,0,0,K2,w2)) << " "; // } Loading Loading @@ -1054,12 +1054,12 @@ namespace DCA chi_q = 0.; for(int w2=0; w2<w_VERTEX::dmn_size(); w2++) for(int w2=0; w2<WVertexDmn::dmn_size(); w2++) for(int K2=0; K2<M; K2++) for(int m2=0; m2<b::dmn_size(); m2++) for(int n2=0; n2<b::dmn_size(); n2++) for(int w1=0; w1<w_VERTEX::dmn_size(); w1++) for(int w1=0; w1<WVertexDmn::dmn_size(); w1++) for(int K1=0; K1<M; K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) Loading Loading @@ -1130,8 +1130,8 @@ namespace DCA std::complex<scalartype> norm = 0; for(int j=0; j<N; j++){ result += conj(psi_k(j, l))*leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2); norm += conj(leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2))*leading_eigenvectors(i, 0,0,j,w_VERTEX::dmn_size()/2); result += conj(psi_k(j, l))*leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2); norm += conj(leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2))*leading_eigenvectors(i, 0,0,j,WVertexDmn::dmn_size()/2); } std::cout << "\t[ " << real(result/std::sqrt(real(norm)+1.e-16)) << ", " << imag(result/std::sqrt(real(norm)+1.e-16)) << "]"; Loading Loading @@ -1173,8 +1173,8 @@ namespace DCA double kx = k_HOST_VERTEX::get_elements()[k_ind][0]; double ky = k_HOST_VERTEX::get_elements()[k_ind][1]; std::cout << i << "\t" << "k = [" << kx << ", " << ky << "]\t " << "Phi_k = [" << real(leading_eigenvectors(i,0,0,k_ind,w_VERTEX::dmn_size()/2)) << ", " << imag(leading_eigenvectors(i,0,0,k_ind,w_VERTEX::dmn_size()/2)) << "]\n"; real(leading_eigenvectors(i,0,0,k_ind,WVertexDmn::dmn_size()/2)) << ", " << imag(leading_eigenvectors(i,0,0,k_ind,WVertexDmn::dmn_size()/2)) << "]\n"; } std::cout << "----------------------------------------------------------------------" << "\n"; } Loading Loading @@ -1208,9 +1208,9 @@ namespace DCA std::cout << " w k=[" << k_HOST_VERTEX::get_elements()[ind0pi][0] << ", " << k_HOST_VERTEX::get_elements()[ind0pi][1] << "] k=[" << k_HOST_VERTEX::get_elements()[indpi0][0] << ", " << k_HOST_VERTEX::get_elements()[indpi0][1] << "] \n\n"; for(int i=0; i<N_LAMBDAS; i++) { for(int w=0; w<w_VERTEX::dmn_size(); w++) for(int w=0; w<WVertexDmn::dmn_size(); w++) { std::cout << i << " " << w_VERTEX::get_elements()[w] << " " << leading_eigenvectors_real(i,0,0,ind0pi,w) << " " << leading_eigenvectors_real(i,0,0,indpi0,w) << "\n"; std::cout << i << " " << WVertexDmn::get_elements()[w] << " " << leading_eigenvectors_real(i,0,0,ind0pi,w) << " " << leading_eigenvectors_real(i,0,0,indpi0,w) << "\n"; } std::cout << "----------------------------------------------------------------------" << "\n"; } Loading @@ -1229,9 +1229,9 @@ namespace DCA double ky = k_HOST_VERTEX::get_elements()[k_ind][1]; if ((abs(kx-0.)<0.01)&&(abs(ky-3.14)<0.01)){ eig_0pi = leading_eigenvectors(w_VERTEX::dmn_size()/2, k_ind, 0,0,i);} eig_0pi = leading_eigenvectors(WVertexDmn::dmn_size()/2, k_ind, 0,0,i);} if ((abs(kx-3.14)<0.01)&&(abs(ky-0.)<0.01)){ eig_pi0 = leading_eigenvectors(w_VERTEX::dmn_size()/2, k_ind, 0,0,i);} eig_pi0 = leading_eigenvectors(WVertexDmn::dmn_size()/2, k_ind, 0,0,i);} } std::cout << i << "\t" << eig_0pi-eig_pi0 << "\n"; } Loading Loading @@ -1263,12 +1263,12 @@ namespace DCA scalartype result=0; for(int w1=0; w1<w_VERTEX::dmn_size()/2; w1++) for(int w1=0; w1<WVertexDmn::dmn_size()/2; w1++) for(int K1=0; K1<k_HOST_VERTEX::dmn_size(); K1++) for(int m1=0; m1<b::dmn_size(); m1++) for(int n1=0; n1<b::dmn_size(); n1++) result += std::abs(alpha*leading_eigenvectors(i, n1,m1,K1,w1) - conj(alpha*leading_eigenvectors(i, n1,m1,K1,w_VERTEX::dmn_size()-1-w1))); - conj(alpha*leading_eigenvectors(i, n1,m1,K1,WVertexDmn::dmn_size()-1-w1))); if(result < norm){ norm = result; Loading @@ -1292,7 +1292,7 @@ namespace DCA for(int n_lam=0; n_lam<N_LAMBDAS; n_lam++) { for(int w_ind=0; w_ind<w_VERTEX::dmn_size(); w_ind++){ for(int w_ind=0; w_ind<WVertexDmn::dmn_size(); w_ind++){ for(int m_ind=0; m_ind<b::dmn_size(); m_ind++){ for(int n_ind=0; n_ind<b::dmn_size(); n_ind++){ Loading
include/dca/phys/dca_analysis/bse_solver/old/BSE_solver.h +20 −20 File changed.Preview size limit exceeded, changes collapsed. Show changes