Commit 6ac537fc authored by Doak, Peter W.'s avatar Doak, Peter W.
Browse files

we now can write M_k_w in the CPU build

parent 512ca0b0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -251,7 +251,7 @@ set(DCA_CLUSTER_SOLVER "CT-AUX" CACHE STRING
set_property(CACHE DCA_CLUSTER_SOLVER PROPERTY STRINGS CT-AUX CT-INT SS-CT-HYB)

if (DCA_CLUSTER_SOLVER STREQUAL "CT-INT")
  set(DCA_CLUSTER_SOLVER_NAME dca::phys::solver::CT_INT)
  set(DCA_CLUSTER_SOLVER_NAME dca::ClusterSolverId::CT_INT)
  set(DCA_CLUSTER_SOLVER_INCLUDE "dca/phys/dca_step/cluster_solver/ctint/ctint_cluster_solver.hpp")

  set(DCA_USE_CTINT_SUBMATRIX ON CACHE BOOL "Use submatrix updates if the CT-INT solver is selected.")
@@ -271,7 +271,7 @@ elseif (DCA_CLUSTER_SOLVER STREQUAL "CT-AUX")


elseif (DCA_CLUSTER_SOLVER STREQUAL "SS-CT-HYB")
  set(DCA_CLUSTER_SOLVER_NAME dca::phys::solver::SS_CT_HYB)
  set(DCA_CLUSTER_SOLVER_NAME dca::ClusterSolverId::SS_CT_HYB)
  set(DCA_CLUSTER_SOLVER_TYPE "dca::phys::solver::SsCtHybClusterSolver<walker_device, ParametersType, DcaDataType<DIST>, DIST>")
  set(DCA_CLUSTER_SOLVER_INCLUDE
        "dca/phys/dca_step/cluster_solver/ss_ct_hyb/ss_ct_hyb_cluster_solver.hpp")
+2 −2
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@
#include "dca/config/profiler.hpp"       // defines Profiler
#include "dca/config/threading.hpp"      // defines Threading

#include "dca/phys/dca_step/cluster_solver/cluster_solver_name.hpp"
constexpr ClusterSolverId solver_name = @DCA_CLUSTER_SOLVER_NAME@;
#include "dca/phys/dca_step/cluster_solver/cluster_solver_id.hpp"
constexpr dca::ClusterSolverId solver_name = @DCA_CLUSTER_SOLVER_NAME@;

#include "dca/phys/parameters/parameters.hpp"
using ParametersType = dca::phys::params::Parameters<Concurrency, Threading, Profiler, Model,
+2 −2
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@
#include "dca/config/walker_device.hpp"  // defines walker_device
#include "dca/config/threading.hpp"      // defines Threading

#include "dca/phys/dca_step/cluster_solver/cluster_solver_name.hpp"
constexpr ClusterSolverId solver_name = @DCA_CLUSTER_SOLVER_NAME@;
#include "dca/phys/dca_step/cluster_solver/cluster_solver_id.hpp"
constexpr dca::ClusterSolverId solver_name = @DCA_CLUSTER_SOLVER_NAME@;

#include "dca/phys/parameters/parameters.hpp"
using ParametersType = dca::phys::params::Parameters<Concurrency, Threading, Profiler, Model,
+2 −2
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ auto real(const function<std::complex<Scalartype>, Dmn>& f, const bool check_ima
  for (int i = 0; i < f_real.size(); ++i) {
    if (check_imaginary && std::abs(f(i).imag()) > 500 * std::numeric_limits<Scalartype>::epsilon()) {
      std::ostringstream err_msg;
      err_msg << "Element: " << i << "of the function has value " << f(i) << "which is not purely real.";
      throw(std::logic_error(err_msg.str()));
      std::cerr << "Element: " << i << "  of the function has value " << f(i) << "which is not purely real.";
      //throw(std::logic_error(err_msg.str()));
    }
    f_real(i) = f(i).real();
  }
+5 −5
Original line number Diff line number Diff line
@@ -54,7 +54,8 @@ public:
  void waitForQmciWalker();

  void logPerConfigurationGreensFunction(const SpGreensFunction&) const;
  void logPerConfigurationMFunction(const MFunction&) const;

  void logPerConfigurationMFunction(const SpGreensFunction&) const;

  void measure();

@@ -153,13 +154,12 @@ void StdThreadQmciAccumulator<QmciAccumulator, SpGreensFunction>::measure() {
  QmciAccumulator::measure();
}

template <class QmciAccumulator, class MFunction>
void StdThreadQmciAccumulator<QmciAccumulator, MFunction>::logPerConfigurationMFunction(
    const MFunction& mfunc) const {
template <class QmciAccumulator, class SpGreensFunction>
void StdThreadQmciAccumulator<QmciAccumulator, SpGreensFunction>::logPerConfigurationMFunction(
    const SpGreensFunction& mfunc) const {
  const bool print_to_log = writer_ && static_cast<bool>(*writer_);  // File exists and it is open.
  if (print_to_log && stamping_period_ && (meas_id_ % stamping_period_) == 0) {
    if (writer_ && (writer_->isADIOS2() || concurrency_id_ == 0)) {
      // Induce copy for GPU MFunction
      const std::string stamp_name = "r_" + std::to_string(concurrency_id_) + "_meas_" +
                                     std::to_string(meas_id_) + "_w_" +
                                     std::to_string(walker_thread_id_);
Loading