Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::MixerEnvironment Struct Reference

#include <init.hpp>

Public Attributes

std::vector< Real > charge_metric_weights
 
int first_nonzero_g_index = 0
 
std::function< void(std::vector< Real > &)> global_reduce
 
bool is_gamma_only = false
 
Real magnetization_metric_weight = 0.0
 
int number_of_smooth_g_vectors = 0
 
std::shared_ptr< Preconditioner > preconditioner
 
std::function< void(const std::vector< Complex > &, std::vector< Real > &)> to_real_space
 
std::function< void(const std::vector< Real > &, std::vector< Complex > &)> to_reciprocal_space
 

Detailed Description

Everything a mixer might need from the surrounding representation.

Real-space mixers ignore the reciprocal-space members; reciprocal-space mixers use the transforms and metric weights. Passing a single struct lets the iterator initialize any mixer without knowing its space.

Definition at line 28 of file init.hpp.

Member Data Documentation

◆ charge_metric_weights

std::vector<Real> q3::MixerEnvironment::charge_metric_weights

◆ first_nonzero_g_index

int q3::MixerEnvironment::first_nonzero_g_index = 0

◆ global_reduce

std::function<void(std::vector<Real>&)> q3::MixerEnvironment::global_reduce

◆ is_gamma_only

bool q3::MixerEnvironment::is_gamma_only = false

◆ magnetization_metric_weight

Real q3::MixerEnvironment::magnetization_metric_weight = 0.0

◆ number_of_smooth_g_vectors

int q3::MixerEnvironment::number_of_smooth_g_vectors = 0

◆ preconditioner

std::shared_ptr<Preconditioner> q3::MixerEnvironment::preconditioner

Residual preconditioner, applied to the total-charge channel only. Never null: "no preconditioning" is a NoPreconditioner, not an absent pointer, so mixers call it unconditionally.

Definition at line 37 of file init.hpp.

Referenced by q3::ReciprocalSpaceMixer::initialize(), and q3::PlanewaveKohnShamSCFIterator::initiate_mixer().

◆ to_real_space

std::function<void(const std::vector<Complex>&, std::vector<Real>&)> q3::MixerEnvironment::to_real_space

◆ to_reciprocal_space

std::function<void(const std::vector<Real>&, std::vector<Complex>&)> q3::MixerEnvironment::to_reciprocal_space

The documentation for this struct was generated from the following file: