50 const std::vector<std::vector<Complex>>& rho_out_g,
51 int number_of_spin_components)
override {
52 int number_of_spin =
static_cast<int>(rho_in_g.size());
53 int number_of_g_vectors =
static_cast<int>(rho_in_g[0].size());
54 int smooth_g_vector_count =
57 : number_of_g_vectors;
63 std::vector<std::vector<Complex>> raw_residual(number_of_spin);
64 for (
int spin_index = 0; spin_index < number_of_spin; spin_index++) {
65 raw_residual[spin_index].resize(smooth_g_vector_count);
66 for (
int g_index = 0; g_index < smooth_g_vector_count; g_index++) {
67 raw_residual[spin_index][g_index] =
68 rho_out_g[spin_index][g_index] - rho_in_g[spin_index][g_index];
72 raw_residual, raw_residual, number_of_spin_components, smooth_g_vector_count);
80 for (
int spin_index = 0; spin_index < number_of_spin; spin_index++) {
88 bool is_charge_channel = (spin_index == 0);
100 std::vector<Complex> residual(rho_in_g[spin_index].size());
101 for (std::size_t g_index = 0; g_index < residual.size(); ++g_index) {
102 residual[g_index] = rho_out_g[spin_index][g_index] - rho_in_g[spin_index][g_index];
108 for (
int g_index = start_g_index; g_index < smooth_g_vector_count; g_index++) {