Loading include/dca/phys/parameters/dca_parameters.hpp +15 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ public: self_energy_mixing_factor_(1.), interacting_orbitals_{0}, do_post_interpolation_(false), do_finite_size_qmc_(false), k_mesh_recursion_(0), Loading Loading @@ -75,6 +77,9 @@ public: const std::vector<int>& get_interacting_orbitals() const { return interacting_orbitals_; } bool do_post_interpolation() const { return do_post_interpolation_; } bool do_finite_size_qmc() const { return do_finite_size_qmc_; } Loading Loading @@ -116,6 +121,8 @@ private: double self_energy_mixing_factor_; std::vector<int> interacting_orbitals_; bool do_post_interpolation_; bool do_finite_size_qmc_; // coarse-graining Loading @@ -142,6 +149,7 @@ int DcaParameters::getBufferSize(const Concurrency& concurrency) const { buffer_size += concurrency.get_buffer_size(dca_accuracy_); buffer_size += concurrency.get_buffer_size(self_energy_mixing_factor_); buffer_size += concurrency.get_buffer_size(interacting_orbitals_); buffer_size += concurrency.get_buffer_size(do_post_interpolation_); buffer_size += concurrency.get_buffer_size(do_finite_size_qmc_); buffer_size += concurrency.get_buffer_size(k_mesh_recursion_); buffer_size += concurrency.get_buffer_size(coarsegraining_periods_); Loading @@ -165,6 +173,7 @@ void DcaParameters::pack(const Concurrency& concurrency, char* buffer, int buffe concurrency.pack(buffer, buffer_size, position, dca_accuracy_); concurrency.pack(buffer, buffer_size, position, self_energy_mixing_factor_); concurrency.pack(buffer, buffer_size, position, interacting_orbitals_); concurrency.pack(buffer, buffer_size, position, do_post_interpolation_); concurrency.pack(buffer, buffer_size, position, do_finite_size_qmc_); concurrency.pack(buffer, buffer_size, position, k_mesh_recursion_); concurrency.pack(buffer, buffer_size, position, coarsegraining_periods_); Loading @@ -186,6 +195,7 @@ void DcaParameters::unpack(const Concurrency& concurrency, char* buffer, int buf concurrency.unpack(buffer, buffer_size, position, dca_accuracy_); concurrency.unpack(buffer, buffer_size, position, self_energy_mixing_factor_); concurrency.unpack(buffer, buffer_size, position, interacting_orbitals_); concurrency.unpack(buffer, buffer_size, position, do_post_interpolation_); concurrency.unpack(buffer, buffer_size, position, do_finite_size_qmc_); concurrency.unpack(buffer, buffer_size, position, k_mesh_recursion_); concurrency.unpack(buffer, buffer_size, position, coarsegraining_periods_); Loading Loading @@ -218,6 +228,8 @@ void DcaParameters::readWrite(ReaderOrWriter& reader_or_writer) { try_to_read("self-energy-mixing-factor", self_energy_mixing_factor_); try_to_read("interacting-orbitals", interacting_orbitals_); try_to_read("do-post-interpolation", do_post_interpolation_); try_to_read("do-finite-size-QMC", do_finite_size_qmc_); try { Loading Loading @@ -260,8 +272,8 @@ void DcaParameters::readWrite(ReaderOrWriter& reader_or_writer) { } } } // params } // phys } // dca } // namespace params } // namespace phys } // namespace dca #endif // DCA_PHYS_PARAMETERS_DCA_PARAMETERS_HPP misc/wiki/Parameters.md +5 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,11 @@ Stop the DCA<sup>(+)</sup> loop if this accuracy has been reached. Indices of orbitals that are treated interacting. Note that this parameter must be consistent with the model that is used. `"do-post-interpolation":` boolean (false) Turn on post-interpolation procedure for DCA. Interpolates and symmetrizes the final DCA cluster self-energy and cluster irreducible vertex function. (Reference: https://arxiv.org/abs/2002.06866) `"do-finite-size-QMC":` boolean (false) Do a finite-size QMC calculation (no mean-field). Loading test/unit/phys/parameters/dca_parameters/dca_parameters_test.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ TEST_F(DcaParametersTest, DefaultValues) { EXPECT_EQ(0., pars_.get_dca_accuracy()); EXPECT_EQ(1., pars_.get_self_energy_mixing_factor()); EXPECT_EQ(std::vector<int>{0}, pars_.get_interacting_orbitals()); EXPECT_FALSE(pars_.do_post_interpolation()); EXPECT_FALSE(pars_.do_finite_size_qmc()); EXPECT_EQ(0, pars_.get_k_mesh_recursion()); EXPECT_EQ(0, pars_.get_coarsegraining_periods()); Loading @@ -52,6 +53,7 @@ TEST_F(DcaParametersTest, ReadAll) { EXPECT_EQ(1.e-3, pars_.get_dca_accuracy()); EXPECT_EQ(0.5, pars_.get_self_energy_mixing_factor()); EXPECT_EQ(interacting_orbitals_check, pars_.get_interacting_orbitals()); EXPECT_TRUE(pars_.do_post_interpolation()); EXPECT_FALSE(pars_.do_finite_size_qmc()); EXPECT_EQ(3, pars_.get_k_mesh_recursion()); EXPECT_EQ(2, pars_.get_coarsegraining_periods()); Loading test/unit/phys/parameters/dca_parameters/input_read_all.json +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ "self-energy-mixing-factor": 0.5, "interacting-orbitals": [0, 1, 2], "do-post-interpolation": true, "do-finite-size-QMC": false, "coarse-graining": { Loading tools/complete_input.json +2 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ "self-energy-mixing-factor": 1., "interacting-orbitals": [0], "do-post-interpolation": false, "do-finite-size-QMC": false, "coarse-graining": { Loading Loading
include/dca/phys/parameters/dca_parameters.hpp +15 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ public: self_energy_mixing_factor_(1.), interacting_orbitals_{0}, do_post_interpolation_(false), do_finite_size_qmc_(false), k_mesh_recursion_(0), Loading Loading @@ -75,6 +77,9 @@ public: const std::vector<int>& get_interacting_orbitals() const { return interacting_orbitals_; } bool do_post_interpolation() const { return do_post_interpolation_; } bool do_finite_size_qmc() const { return do_finite_size_qmc_; } Loading Loading @@ -116,6 +121,8 @@ private: double self_energy_mixing_factor_; std::vector<int> interacting_orbitals_; bool do_post_interpolation_; bool do_finite_size_qmc_; // coarse-graining Loading @@ -142,6 +149,7 @@ int DcaParameters::getBufferSize(const Concurrency& concurrency) const { buffer_size += concurrency.get_buffer_size(dca_accuracy_); buffer_size += concurrency.get_buffer_size(self_energy_mixing_factor_); buffer_size += concurrency.get_buffer_size(interacting_orbitals_); buffer_size += concurrency.get_buffer_size(do_post_interpolation_); buffer_size += concurrency.get_buffer_size(do_finite_size_qmc_); buffer_size += concurrency.get_buffer_size(k_mesh_recursion_); buffer_size += concurrency.get_buffer_size(coarsegraining_periods_); Loading @@ -165,6 +173,7 @@ void DcaParameters::pack(const Concurrency& concurrency, char* buffer, int buffe concurrency.pack(buffer, buffer_size, position, dca_accuracy_); concurrency.pack(buffer, buffer_size, position, self_energy_mixing_factor_); concurrency.pack(buffer, buffer_size, position, interacting_orbitals_); concurrency.pack(buffer, buffer_size, position, do_post_interpolation_); concurrency.pack(buffer, buffer_size, position, do_finite_size_qmc_); concurrency.pack(buffer, buffer_size, position, k_mesh_recursion_); concurrency.pack(buffer, buffer_size, position, coarsegraining_periods_); Loading @@ -186,6 +195,7 @@ void DcaParameters::unpack(const Concurrency& concurrency, char* buffer, int buf concurrency.unpack(buffer, buffer_size, position, dca_accuracy_); concurrency.unpack(buffer, buffer_size, position, self_energy_mixing_factor_); concurrency.unpack(buffer, buffer_size, position, interacting_orbitals_); concurrency.unpack(buffer, buffer_size, position, do_post_interpolation_); concurrency.unpack(buffer, buffer_size, position, do_finite_size_qmc_); concurrency.unpack(buffer, buffer_size, position, k_mesh_recursion_); concurrency.unpack(buffer, buffer_size, position, coarsegraining_periods_); Loading Loading @@ -218,6 +228,8 @@ void DcaParameters::readWrite(ReaderOrWriter& reader_or_writer) { try_to_read("self-energy-mixing-factor", self_energy_mixing_factor_); try_to_read("interacting-orbitals", interacting_orbitals_); try_to_read("do-post-interpolation", do_post_interpolation_); try_to_read("do-finite-size-QMC", do_finite_size_qmc_); try { Loading Loading @@ -260,8 +272,8 @@ void DcaParameters::readWrite(ReaderOrWriter& reader_or_writer) { } } } // params } // phys } // dca } // namespace params } // namespace phys } // namespace dca #endif // DCA_PHYS_PARAMETERS_DCA_PARAMETERS_HPP
misc/wiki/Parameters.md +5 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,11 @@ Stop the DCA<sup>(+)</sup> loop if this accuracy has been reached. Indices of orbitals that are treated interacting. Note that this parameter must be consistent with the model that is used. `"do-post-interpolation":` boolean (false) Turn on post-interpolation procedure for DCA. Interpolates and symmetrizes the final DCA cluster self-energy and cluster irreducible vertex function. (Reference: https://arxiv.org/abs/2002.06866) `"do-finite-size-QMC":` boolean (false) Do a finite-size QMC calculation (no mean-field). Loading
test/unit/phys/parameters/dca_parameters/dca_parameters_test.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ TEST_F(DcaParametersTest, DefaultValues) { EXPECT_EQ(0., pars_.get_dca_accuracy()); EXPECT_EQ(1., pars_.get_self_energy_mixing_factor()); EXPECT_EQ(std::vector<int>{0}, pars_.get_interacting_orbitals()); EXPECT_FALSE(pars_.do_post_interpolation()); EXPECT_FALSE(pars_.do_finite_size_qmc()); EXPECT_EQ(0, pars_.get_k_mesh_recursion()); EXPECT_EQ(0, pars_.get_coarsegraining_periods()); Loading @@ -52,6 +53,7 @@ TEST_F(DcaParametersTest, ReadAll) { EXPECT_EQ(1.e-3, pars_.get_dca_accuracy()); EXPECT_EQ(0.5, pars_.get_self_energy_mixing_factor()); EXPECT_EQ(interacting_orbitals_check, pars_.get_interacting_orbitals()); EXPECT_TRUE(pars_.do_post_interpolation()); EXPECT_FALSE(pars_.do_finite_size_qmc()); EXPECT_EQ(3, pars_.get_k_mesh_recursion()); EXPECT_EQ(2, pars_.get_coarsegraining_periods()); Loading
test/unit/phys/parameters/dca_parameters/input_read_all.json +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ "self-energy-mixing-factor": 0.5, "interacting-orbitals": [0, 1, 2], "do-post-interpolation": true, "do-finite-size-QMC": false, "coarse-graining": { Loading
tools/complete_input.json +2 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ "self-energy-mixing-factor": 1., "interacting-orbitals": [0], "do-post-interpolation": false, "do-finite-size-QMC": false, "coarse-graining": { Loading