Loading include/dca/function/function.hpp +20 −13 Original line number Diff line number Diff line Loading @@ -50,17 +50,26 @@ public: function(const std::string& name = default_name_); // Copy constructor // Constructs the function with the name name and a copy of the elements of other. // Constructs the function with the a copy of elements and name of other. // Precondition: The other function has been resetted, if the domain had been initialized after // the other function's construction. function(const function<scalartype, domain>& other, const std::string& name = default_name_); function(const function<scalartype, domain>& other); // Same as above, but with name = 'name'. function(const function<scalartype, domain>& other, const std::string& name) : function(other) { name_ = name; } // Move constructor // Constructs the function with the name name and the elements of other using move semantics. // Constructs the function with elements and name of other using move semantics. // Precondition: The other function has been resetted, if the domain had been initialized after // the other function's construction. // Postcondition: The other function is in a non-specified state. function(function<scalartype, domain>&& other, const std::string& name = default_name_); function(function<scalartype, domain>&& other); // Same as above, but with name = 'name'. function(function<scalartype, domain>&& other, const std::string& name) : function(std::move(other)) { name_ = name; } // Copy assignment operator // Replaces the function's elements with a copy of the elements of other. Loading Loading @@ -191,7 +200,6 @@ public: void operator*=(const function<scalartype, domain>& other); void operator/=(const function<scalartype, domain>& other); void operator=(scalartype c); void operator+=(scalartype c); void operator-=(scalartype c); Loading Loading @@ -267,9 +275,8 @@ function<scalartype, domain>::function(const std::string& name) } template <typename scalartype, class domain> function<scalartype, domain>::function(const function<scalartype, domain>& other, const std::string& name) : name_(name), function<scalartype, domain>::function(const function<scalartype, domain>& other) : name_(other.name_), function_type(__PRETTY_FUNCTION__), dmn(), Nb_elements(dmn.get_size()), Loading @@ -286,8 +293,8 @@ function<scalartype, domain>::function(const function<scalartype, domain>& other } template <typename scalartype, class domain> function<scalartype, domain>::function(function<scalartype, domain>&& other, const std::string& name) : name_(name), function<scalartype, domain>::function(function<scalartype, domain>&& other) : name_(std::move(other.name_)), function_type(__PRETTY_FUNCTION__), dmn(), Nb_elements(dmn.get_size()), Loading Loading @@ -623,7 +630,7 @@ void function<scalartype, domain>::unpack(const concurrency_t& concurrency, char concurrency.unpack(buffer, buffer_size, position, *this); } } // func } // dca } // namespace func } // namespace dca #endif // DCA_FUNCTION_FUNCTION_HPP include/dca/phys/dca_analysis/bse_solver/bse_cluster_solver.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,8 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0( for (int n2 = 0; n2 < b::dmn_size(); n2++) { for (int m1 = 0; m1 < b::dmn_size(); m1++) { for (int m2 = 0; m2 < b::dmn_size(); m2++) { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: { G_II_0(n1, n2, k, w_vertex, m1, m2, k, w_vertex) = -data_.G_k_w(n1, e_UP, m2, e_UP, k, w) * Loading include/dca/phys/dca_analysis/bse_solver/bse_lattice_solver.hpp +5 −6 Original line number Diff line number Diff line Loading @@ -402,7 +402,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::diagonalizeGamma // Diagonalize the symmetric matrix \sqrt{\chi_0}\Gamma\sqrt{\chi_0}. // The origin in momentum space has always index = 0. // TODO: loop over multiple channels. if (parameters.get_channel()[0] == PARTICLE_PARTICLE_UP_DOWN && if (parameters.get_channels()[0] == PARTICLE_PARTICLE_UP_DOWN && parameters.get_four_point_momentum_transfer_index() == 0 && parameters.get_four_point_frequency_transfer() == 0) { diagonalizeGammaChi0Symmetric(); Loading Loading @@ -619,8 +619,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::diagonalize_fold { if (concurrency.id() == concurrency.first()) std::cout << "\n\n\t diagonalize P_Gamma_chi_0_lattice_P " << dca::util::print_time() << " ..."; std::cout << "\n\n\t diagonalize P_Gamma_chi_0_lattice_P " << dca::util::print_time() << " ..."; dca::linalg::Vector<std::complex<ScalarType>, dca::linalg::CPU> L("L (BseLatticeSolver)", M); Loading Loading @@ -925,8 +924,8 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::characterizeLead } } } // analysis } // phys } // dca } // namespace analysis } // namespace phys } // namespace dca #endif // DCA_PHYS_DCA_ANALYSIS_BSE_SOLVER_BSE_LATTICE_SOLVER_HPP include/dca/phys/dca_step/cluster_mapping/coarsegraining/coarsegraining_tp.hpp +10 −5 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::execute( K_dmn::get_elements(), K_dmn::parameter_type::SHAPE); interpolation_matrices<scalar_type, k_HOST, q_plus_Q_dmn>::set_q_idx(Q_ind); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading Loading @@ -233,7 +234,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::execute( int Q_ind = domains::cluster_operations::index(parameters.get_four_point_momentum_transfer(), K_dmn::get_elements(), K_dmn::parameter_type::SHAPE); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading Loading @@ -620,7 +622,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::find_w1_and_w2(std::vector<doubl assert(std::abs(w::get_elements()[w1] - elements[w_ind]) < 1.e-6); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading @@ -647,7 +650,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::compute_bubble( for (int n2 = 0; n2 < b::dmn_size(); n2++) { for (int m1 = 0; m1 < b::dmn_size(); m1++) { for (int m2 = 0; m2 < b::dmn_size(); m2++) { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: bubble(n1, n2, m1, m2, q_ind) += G_q(n1, e_UP, m2, e_UP, q_ind) * G_q_plus_Q(n2, e_UP, m1, e_UP, q_ind); Loading Loading @@ -680,7 +684,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::compute_bubble( template <typename parameters_type, typename K_dmn> double coarsegraining_tp<parameters_type, K_dmn>::get_integration_factor() { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: return -1.; break; Loading include/dca/phys/dca_step/symmetrization/diagrammatic_symmetries.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ void diagrammatic_symmetries<parameters_type>::execute( } // TODO: allow multiple channels. switch (parameters.get_channel()[0]) { switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: symmetrize_over_pi_rotations_ph(G); break; Loading Loading
include/dca/function/function.hpp +20 −13 Original line number Diff line number Diff line Loading @@ -50,17 +50,26 @@ public: function(const std::string& name = default_name_); // Copy constructor // Constructs the function with the name name and a copy of the elements of other. // Constructs the function with the a copy of elements and name of other. // Precondition: The other function has been resetted, if the domain had been initialized after // the other function's construction. function(const function<scalartype, domain>& other, const std::string& name = default_name_); function(const function<scalartype, domain>& other); // Same as above, but with name = 'name'. function(const function<scalartype, domain>& other, const std::string& name) : function(other) { name_ = name; } // Move constructor // Constructs the function with the name name and the elements of other using move semantics. // Constructs the function with elements and name of other using move semantics. // Precondition: The other function has been resetted, if the domain had been initialized after // the other function's construction. // Postcondition: The other function is in a non-specified state. function(function<scalartype, domain>&& other, const std::string& name = default_name_); function(function<scalartype, domain>&& other); // Same as above, but with name = 'name'. function(function<scalartype, domain>&& other, const std::string& name) : function(std::move(other)) { name_ = name; } // Copy assignment operator // Replaces the function's elements with a copy of the elements of other. Loading Loading @@ -191,7 +200,6 @@ public: void operator*=(const function<scalartype, domain>& other); void operator/=(const function<scalartype, domain>& other); void operator=(scalartype c); void operator+=(scalartype c); void operator-=(scalartype c); Loading Loading @@ -267,9 +275,8 @@ function<scalartype, domain>::function(const std::string& name) } template <typename scalartype, class domain> function<scalartype, domain>::function(const function<scalartype, domain>& other, const std::string& name) : name_(name), function<scalartype, domain>::function(const function<scalartype, domain>& other) : name_(other.name_), function_type(__PRETTY_FUNCTION__), dmn(), Nb_elements(dmn.get_size()), Loading @@ -286,8 +293,8 @@ function<scalartype, domain>::function(const function<scalartype, domain>& other } template <typename scalartype, class domain> function<scalartype, domain>::function(function<scalartype, domain>&& other, const std::string& name) : name_(name), function<scalartype, domain>::function(function<scalartype, domain>&& other) : name_(std::move(other.name_)), function_type(__PRETTY_FUNCTION__), dmn(), Nb_elements(dmn.get_size()), Loading Loading @@ -623,7 +630,7 @@ void function<scalartype, domain>::unpack(const concurrency_t& concurrency, char concurrency.unpack(buffer, buffer_size, position, *this); } } // func } // dca } // namespace func } // namespace dca #endif // DCA_FUNCTION_FUNCTION_HPP
include/dca/phys/dca_analysis/bse_solver/bse_cluster_solver.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,8 @@ void BseClusterSolver<ParametersType, DcaDataType, ScalarType>::load_G_II_0( for (int n2 = 0; n2 < b::dmn_size(); n2++) { for (int m1 = 0; m1 < b::dmn_size(); m1++) { for (int m2 = 0; m2 < b::dmn_size(); m2++) { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: { G_II_0(n1, n2, k, w_vertex, m1, m2, k, w_vertex) = -data_.G_k_w(n1, e_UP, m2, e_UP, k, w) * Loading
include/dca/phys/dca_analysis/bse_solver/bse_lattice_solver.hpp +5 −6 Original line number Diff line number Diff line Loading @@ -402,7 +402,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::diagonalizeGamma // Diagonalize the symmetric matrix \sqrt{\chi_0}\Gamma\sqrt{\chi_0}. // The origin in momentum space has always index = 0. // TODO: loop over multiple channels. if (parameters.get_channel()[0] == PARTICLE_PARTICLE_UP_DOWN && if (parameters.get_channels()[0] == PARTICLE_PARTICLE_UP_DOWN && parameters.get_four_point_momentum_transfer_index() == 0 && parameters.get_four_point_frequency_transfer() == 0) { diagonalizeGammaChi0Symmetric(); Loading Loading @@ -619,8 +619,7 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::diagonalize_fold { if (concurrency.id() == concurrency.first()) std::cout << "\n\n\t diagonalize P_Gamma_chi_0_lattice_P " << dca::util::print_time() << " ..."; std::cout << "\n\n\t diagonalize P_Gamma_chi_0_lattice_P " << dca::util::print_time() << " ..."; dca::linalg::Vector<std::complex<ScalarType>, dca::linalg::CPU> L("L (BseLatticeSolver)", M); Loading Loading @@ -925,8 +924,8 @@ void BseLatticeSolver<ParametersType, DcaDataType, ScalarType>::characterizeLead } } } // analysis } // phys } // dca } // namespace analysis } // namespace phys } // namespace dca #endif // DCA_PHYS_DCA_ANALYSIS_BSE_SOLVER_BSE_LATTICE_SOLVER_HPP
include/dca/phys/dca_step/cluster_mapping/coarsegraining/coarsegraining_tp.hpp +10 −5 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::execute( K_dmn::get_elements(), K_dmn::parameter_type::SHAPE); interpolation_matrices<scalar_type, k_HOST, q_plus_Q_dmn>::set_q_idx(Q_ind); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading Loading @@ -233,7 +234,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::execute( int Q_ind = domains::cluster_operations::index(parameters.get_four_point_momentum_transfer(), K_dmn::get_elements(), K_dmn::parameter_type::SHAPE); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading Loading @@ -620,7 +622,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::find_w1_and_w2(std::vector<doubl assert(std::abs(w::get_elements()[w1] - elements[w_ind]) < 1.e-6); switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_CHARGE: case PARTICLE_HOLE_MAGNETIC: case PARTICLE_HOLE_TRANSVERSE: { Loading @@ -647,7 +650,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::compute_bubble( for (int n2 = 0; n2 < b::dmn_size(); n2++) { for (int m1 = 0; m1 < b::dmn_size(); m1++) { for (int m2 = 0; m2 < b::dmn_size(); m2++) { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: bubble(n1, n2, m1, m2, q_ind) += G_q(n1, e_UP, m2, e_UP, q_ind) * G_q_plus_Q(n2, e_UP, m1, e_UP, q_ind); Loading Loading @@ -680,7 +684,8 @@ void coarsegraining_tp<parameters_type, K_dmn>::compute_bubble( template <typename parameters_type, typename K_dmn> double coarsegraining_tp<parameters_type, K_dmn>::get_integration_factor() { switch (parameters.get_four_point_type()) { // TODO: allow more than one channel. switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: return -1.; break; Loading
include/dca/phys/dca_step/symmetrization/diagrammatic_symmetries.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ void diagrammatic_symmetries<parameters_type>::execute( } // TODO: allow multiple channels. switch (parameters.get_channel()[0]) { switch (parameters.get_channels()[0]) { case PARTICLE_HOLE_TRANSVERSE: symmetrize_over_pi_rotations_ph(G); break; Loading