|
Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
|
#include <init.hpp>
Inheritance diagram for q3::KohnShamSCFIterator:Classes | |
| struct | ScfIterationRecord |
| One row per SCF iteration, in order; the source for per-iteration companion outputs. More... | |
Public Member Functions | |
| KohnShamSCFIterator (KohnShamSCFIteratorConfig config) | |
| ~KohnShamSCFIterator () override=default | |
| const std::vector< Real > & | charge_density_for_spin (int spin_index) const |
| const std::vector< Complex > & | charge_density_g () const |
| const std::vector< Real > & | charge_density_real () const |
| Crystal & | crystal_structure () const |
| virtual const KohnShamEnergies & | energies () const =0 |
| virtual KohnShamEnergies & | energies_mutable ()=0 |
| const XCFunctional & | exchange_correlation () const |
| const std::vector< Complex > & | exchange_correlation_potential_g () const |
| void | load_charge_density (std::vector< std::vector< Real > > charge_density) |
| void | load_effective_potential (std::vector< std::vector< Real > > effective_potential) |
| void | offer_starting_charge_density (std::vector< std::vector< Real > > charge_density) |
| const std::vector< Real > & | potential_for_spin (int spin_index) const |
| const std::vector< Real > & | real_space_potential () const |
| const std::vector< ScfIterationRecord > & | scf_history () const |
| Real | total_energy () const override |
| const std::vector< Complex > & | total_potential_g () const |
Public Member Functions inherited from q3::SCFIterator | |
| SCFIterator (SCFIteratorConfig config) | |
| virtual | ~SCFIterator ()=default |
| bool | is_converged () const |
| int | iteration () const |
| int | number_of_spin_components () const |
| void | run () |
| void | set_convergence_threshold (Real threshold) |
| Set the SCF convergence threshold (in Ry). | |
| void | set_maximum_iterations (int maximum_iterations) |
| Set the maximum number of SCF iterations. | |
| void | set_owned_crystal (Crystal crystal) |
| Transfer ownership of a Crystal into this iterator. | |
| const std::vector< Real > & | total_energy_history_in_ry () const |
| virtual void | write_checkpoints (const std::string &output_directory, const std::string &prefix) const |
Public Attributes | |
| KohnShamSCFIteratorConfig | config_ |
| std::string | exchange_correlation_functional_ |
| int | methfessel_paxton_order_ |
| Real | mixing_beta_ |
| int | mixing_history_size_ |
| std::string | mixing_mode_ |
| std::string | mixing_preconditioning_ |
| Real | mixing_q0_ |
| std::string | smearing_ |
| Real | smearing_width_ |
Protected Member Functions | |
| virtual Real | compute_delta_escf_correction () const =0 |
| virtual Real | compute_density_residual (const std::vector< std::vector< Real > > &input_density_for_mixing) const =0 |
| virtual Real | compute_double_counting_correction () const =0 |
| virtual void | compute_energy_components () |
| const KohnShamSCFIteratorConfig & | config () const |
| virtual void | construct_density_from_states ()=0 |
| Real | diagonalization_threshold () const |
| void | finalize () override |
| void | initialize () override |
| Base implementation prints the SCF banner. Children call SCFIterator::initialize() last. | |
| virtual void | initialize_charge_density ()=0 |
| virtual void | initialize_representation ()=0 |
| virtual void | initialize_single_particle_states ()=0 |
| virtual void | initiate_mixer ()=0 |
| virtual std::vector< std::vector< Real > > | input_density_for_mixing () const =0 |
| bool | is_iteration_converged () const override |
| void | log_iteration_energy (Real delta_energy) |
| Single source of truth for the per-iteration energy/convergence log line. | |
| virtual void | mix_density (const std::vector< std::vector< Real > > &input_density_for_mixing)=0 |
| virtual int | number_of_bands () const =0 |
| virtual Real | number_of_electrons () const =0 |
| virtual int | number_of_kpoint_states () const =0 |
| void | perform_iteration () override |
| virtual void | prepare_hamiltonian () |
| void | report_convergence () override |
| virtual void | report_convergence_details ()=0 |
| virtual void | report_first_iteration_details ()=0 |
| void | report_iteration () override |
| void | report_non_convergence () override |
| virtual void | restore_density_at_convergence ()=0 |
| virtual void | set_diagonalization_tolerance (int iteration)=0 |
| virtual void | set_diagonalizer_tolerance (Real tolerance)=0 |
| virtual void | snapshot_output_density ()=0 |
| virtual void | solve_single_particle_states ()=0 |
| virtual void | symmetrize_density ()=0 |
| virtual void | synchronize_smooth_density_from_mixed () |
| virtual void | update_effective_potential ()=0 |
| virtual void | update_occupations ()=0 |
Protected Member Functions inherited from q3::SCFIterator | |
| virtual void | iterate () |
| Main iteration loop. | |
| virtual void | report () |
| Report convergence or non-convergence after iterate() finishes. | |
|
inlineexplicit |
Validate here, where "default" has just been resolved and before any representation exists to build a preconditioner from. An unrecognized value used to fall through to a == "kerker" test further down and silently disable preconditioning: preconditioning: kerkar cost a slower run and produced no diagnostic to explain it.
Definition at line 123 of file init.hpp.
References q3::PreconditionerFactory::is_supported(), mixing_preconditioning_, and smearing_.
|
overridedefault |
|
inline |
Definition at line 200 of file init.hpp.
References charge_density_real_.
|
inline |
Definition at line 194 of file init.hpp.
References charge_density_g_.
|
inline |
Definition at line 197 of file init.hpp.
References charge_density_real_.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::valence_exchange_correlation_potential_g_of().
|
protectedpure virtual |
Compute the first-order energy correction for evaluating E_Hartree and E_XC at the mixed density instead of the output density.
delta_escf = -Σ_r (ρ_mixed(r) - ρ_out(r)) · V_Hxc^mixed(r) · (Ω/N)
Matches QE's SCF-correction term of the same name. Must be called AFTER update_effective_potential() has been applied to the mixed density and AFTER snapshot_output_density() has saved the output density.
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
|
inlineprotectedvirtual |
Compute sub-components (e.g. band energy, entropy) needed for total(). Default no-op; override in representations that compute eagerly.
Reimplemented in q3::PlanewaveKohnShamSCFIterator, and q3::PawPlanewavePseudopotentialKohnShamSCFIterator.
Definition at line 622 of file init.hpp.
Referenced by q3::PawPlanewavePseudopotentialKohnShamSCFIterator::compute_energy_components(), finalize(), and perform_iteration().
|
inlineprotected |
Definition at line 256 of file init.hpp.
References config_.
Referenced by q3::PlanewaveKohnShamSCFIterator::compute_number_of_electrons(), q3::PlanewaveKohnShamSCFIterator::initialize_representation(), q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_representation(), q3::PlanewaveKohnShamSCFIterator::log_representation_summary(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::setup_hubbard().
|
protectedpure virtual |
|
inline |
Access the crystal structure owned or referenced by this iterator.
Definition at line 219 of file init.hpp.
References q3::SCFIterator::crystal_structure_.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::accumulate_hubbard_occupation_and_potential(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::accumulate_projector_overlaps(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::add_augmentation_to_charge_density(), q3::PlanewaveKohnShamSCFIterator::build_kpoint_plane_wave_data(), q3::internal::build_wannier_interface_record(), q3::PlanewavePseudopotentialKohnShamSCFIterator::cached_symmetry_operations(), q3::capture_interpolation_record(), q3::PlanewaveKohnShamSCFIterator::compute_delta_escf_correction(), q3::PlanewaveKohnShamSCFIterator::compute_double_counting_correction(), q3::PlanewaveKohnShamSCFIterator::compute_number_of_electrons(), q3::PlanewaveKohnShamSCFIterator::construct_density_from_states(), q3::PlanewaveKohnShamSCFIterator::hartree_metric_prefactor(), q3::PlanewaveKohnShamSCFIterator::initialize_representation(), q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_single_particle_states(), q3::PlanewaveKohnShamSCFIterator::initiate_mixer(), q3::PlanewaveKohnShamSCFIterator::log_representation_summary(), q3::PlanewaveKohnShamSCFIterator::magnetization_metric_weight(), q3::PawPlanewavePseudopotentialKohnShamSCFIterator::on_charge_density_initialized(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::prepare_hamiltonian(), q3::PlanewaveKohnShamSCFIterator::report_convergence_details(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::reset_projector_overlap_coefficients(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), q3::PlanewaveKohnShamSCFIterator::scale_loaded_charge_density_to_electron_count(), q3::PlanewavePseudopotentialKohnShamSCFIterator::setup_hubbard(), q3::PlanewavePseudopotentialKohnShamSCFIterator::solve_single_particle_states(), q3::PlanewavePseudopotentialKohnShamSCFIterator::valence_exchange_correlation_potential_g_of(), and q3::PlanewaveKohnShamSCFIterator::warn_if_total_charge_deviates().
|
inlineprotected |
The eigenvalue threshold the diagonalizer runs at: the schedule's value, held at the floor below which the solvers resolve no further change.
Definition at line 301 of file init.hpp.
References diagonalizer_tolerance_, and q3::math::tolerances::minimum_eigenvalue_tolerance.
Referenced by perform_iteration(), and q3::PlanewaveKohnShamSCFIterator::set_diagonalization_tolerance().
|
pure virtual |
Implemented in q3::PlanewavePseudopotentialKohnShamSCFIterator.
Referenced by log_iteration_energy(), q3::PlanewaveKohnShamSCFIterator::planewave_energies(), report_convergence(), q3::PlanewaveKohnShamSCFIterator::report_first_iteration_details(), report_iteration(), report_non_convergence(), and total_energy().
|
pure virtual |
|
inline |
Definition at line 190 of file init.hpp.
References exchange_correlation_.
Referenced by q3::PawPlanewavePseudopotentialKohnShamSCFIterator::on_charge_density_initialized(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
|
inline |
Definition at line 212 of file init.hpp.
References exchange_correlation_potential_g_.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
|
inlineoverrideprotectedvirtual |
Implements q3::SCFIterator.
Definition at line 519 of file init.hpp.
References compute_energy_components(), restore_density_at_convergence(), and update_effective_potential().
|
inlineoverrideprotectedvirtual |
Base implementation prints the SCF banner. Children call SCFIterator::initialize() last.
Keep the atomic superposition density as the input for the first SCF iteration, matching QE's ordering — potential from the atomic superposition, then wavefunction initialization from that potential, then the SCF loop. The effective potential from the atomic density was already computed during initialize_single_particle_states(). Do NOT reconstruct density from wavefunctions here — doing so creates a nearly self-consistent wfc-based density that gives the Broyden mixer a near-zero first residual, corrupting its history and causing ~30 extra iterations.
Run state, like the two above: a second run() reports its own trajectory rather than one appended to the previous run's.
Reimplemented from q3::SCFIterator.
Definition at line 305 of file init.hpp.
References q3::MixerFactory::create(), q3::XCFunctionalFactory::create(), q3::create_smearing(), q3::log::debug(), density_residual_, exchange_correlation_, exchange_correlation_functional_, q3::SCFIterator::initialize(), initialize_charge_density(), initialize_representation(), initialize_single_particle_states(), initiate_mixer(), methfessel_paxton_order_, mixer_, mixing_beta_, mixing_history_size_, mixing_mode_, q3::SCFIterator::number_of_spin_components(), smearing_, smearing_scheme_, smearing_width_, and total_energy_previous_.
|
protectedpure virtual |
Implemented in q3::PlanewavePseudopotentialKohnShamSCFIterator.
Referenced by initialize().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator, and q3::PlanewavePseudopotentialKohnShamSCFIterator.
Referenced by initialize().
|
protectedpure virtual |
Implemented in q3::PlanewavePseudopotentialKohnShamSCFIterator.
Referenced by initialize().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by initialize().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator, and q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator.
Referenced by perform_iteration().
|
inlineoverrideprotectedvirtual |
Implements q3::SCFIterator.
Reimplemented in q3::PlanewavePseudopotentialKohnShamSCFIterator, and q3::PawPlanewavePseudopotentialKohnShamSCFIterator.
Definition at line 515 of file init.hpp.
References q3::SCFIterator::convergence_threshold_, density_residual_, and q3::SCFIterator::iteration_.
Referenced by perform_iteration().
|
inline |
Definition at line 235 of file init.hpp.
References charge_density_real_, has_preloaded_charge_density_, and preloaded_charge_density_is_a_starting_guess_.
|
inline |
Load a pre-computed effective potential directly into real_space_potential_.
Used by the NSCF flavor to inject V_eff loaded from a v2 checkpoint instead of computing it from scratch via compute_effective_potential_from_density(). Must be called after iterator construction but before run().
Definition at line 230 of file init.hpp.
References has_preloaded_effective_potential_, and real_space_potential_.
|
inlineprotected |
Single source of truth for the per-iteration energy/convergence log line.
Recorded here rather than at the call sites so the history and the printed line can never disagree — a per-iteration output that says something different from stdout is worse than none.
Definition at line 537 of file init.hpp.
References density_residual_, energies(), q3::log::info(), q3::SCFIterator::iteration_, scf_history_, and q3::KohnShamEnergies::total().
Referenced by report_convergence(), and report_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
|
inline |
Offer a density to start from, as a previous geometry's saved one is offered (startingpot = 'file'). Unlike load_charge_density(), which asks for exactly that density, an offer this run's grid cannot take is declined, and the SCF starts from overlapping atoms instead; one it can take is rescaled to this system's electron count, since the cell may have changed since it was saved.
Definition at line 249 of file init.hpp.
References charge_density_real_, has_preloaded_charge_density_, and preloaded_charge_density_is_a_starting_guess_.
|
inlineoverrideprotectedvirtual |
4a. First-iteration re-diagonalization (matching QE's SCF loop): If the density residual is smaller than the estimated diagonalization error, the eigenvalue threshold was too loose — re-diag with a tighter threshold. This is critical for avoiding the false fixed-point trap in small systems.
The error estimate is the threshold the diagonalization actually ran at, times the electron count, as in QE's electrons_scf (PW/src/electrons.f90), and only a diagonalization that ran looser than the residual now asks for is repeated. A self-consistent run's first diagonalization runs at the loose initial threshold, so this is the 1e-2 rule it always was. A non-self-consistent pass has already run at the floor: there the "tighter" threshold was 0.1 dr2 / N, 7.8e-4 Ry for silicon's two irreducible k-points, and the repeat loosened the pass it was meant to sharpen – and, seeding each k-point from the one before, left the second up to 4.4e-5 Ry off in its occupied bands.
Re-compute with tighter tolerance using the SAME potential (matching QE, which restarts the SCF step without mixing before the re-diagonalization)
The total energy reported is: E = E_band + deband + E_Hartree(mixed) + E_XC(mixed)
Implements q3::SCFIterator.
Definition at line 344 of file init.hpp.
References compute_delta_escf_correction(), compute_density_residual(), compute_double_counting_correction(), compute_energy_components(), construct_density_from_states(), q3::log::debug(), density_residual_, diagonalization_threshold(), q3::KohnShamEnergies::double_counting_correction, energies_mutable(), first_iteration_rediag_done_, q3::log::info(), input_density_for_mixing(), q3::ProfilingCounters::instance(), is_iteration_converged(), q3::SCFIterator::iteration_, q3::ProfilingCounters::log_resident_checkpoint_debug(), q3::math::tolerances::minimum_eigenvalue_tolerance, mix_density(), mixer_, number_of_electrons(), prepare_hamiltonian(), q3::ProfilingCounters::release_unused_heap(), set_diagonalization_tolerance(), set_diagonalizer_tolerance(), snapshot_output_density(), solve_single_particle_states(), symmetrize_density(), synchronize_smooth_density_from_mixed(), update_effective_potential(), and update_occupations().
|
inline |
Definition at line 206 of file init.hpp.
References real_space_potential_.
|
inlineprotectedvirtual |
Reimplemented in q3::PawPlanewavePseudopotentialKohnShamSCFIterator, and q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator.
Definition at line 585 of file init.hpp.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_single_particle_states(), perform_iteration(), and q3::PlanewaveKohnShamSCFIterator::preload_single_particle_states().
|
inline |
Definition at line 203 of file init.hpp.
References real_space_potential_.
|
inlineoverrideprotectedvirtual |
Implements q3::SCFIterator.
Definition at line 552 of file init.hpp.
References energies(), q3::log::info(), q3::SCFIterator::iteration_, log_iteration_energy(), report_convergence_details(), q3::KohnShamEnergies::total(), and total_energy_previous_.
|
protectedpure virtual |
Representation-specific tail of the convergence report (eigenvalues, magnetization, final energy breakdown). Generic banner lives in report_convergence().
Implemented in q3::PlanewaveKohnShamSCFIterator, and q3::PawPlanewavePseudopotentialKohnShamSCFIterator.
Referenced by report_convergence(), and q3::PawPlanewavePseudopotentialKohnShamSCFIterator::report_convergence_details().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by report_iteration().
|
inlineoverrideprotectedvirtual |
Implements q3::SCFIterator.
Definition at line 525 of file init.hpp.
References density_residual_, energies(), q3::SCFIterator::iteration_, log_iteration_energy(), report_first_iteration_details(), scf_history_, q3::KohnShamEnergies::total(), and total_energy_previous_.
|
inlineoverrideprotectedvirtual |
A non-self-consistent pass is one diagonalization by design, so stopping after it is not a failure to converge. The warning made every NSCF log read as though the run had failed.
Implements q3::SCFIterator.
Definition at line 562 of file init.hpp.
References q3::KohnShamSCFIteratorConfig::calculation, config_, energies(), q3::log::info(), q3::SCFIterator::maximum_iterations_, and q3::log::warn().
|
protectedpure virtual |
|
inline |
Definition at line 180 of file init.hpp.
References scf_history_.
Referenced by q3::SelfConsistentFieldFlavor::run_calculation().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in q3::PlanewavePseudopotentialKohnShamSCFIterator.
Referenced by perform_iteration().
|
protectedpure virtual |
|
inlineprotectedvirtual |
Hook for representations that keep an auxiliary density (e.g. the smooth pre-augmentation density of ultrasoft pseudopotential_set). No-op by default.
Reimplemented in q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator.
Definition at line 600 of file init.hpp.
Referenced by perform_iteration().
|
inlineoverridevirtual |
Implements q3::SCFIterator.
Definition at line 187 of file init.hpp.
References energies(), and q3::KohnShamEnergies::total().
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::write_checkpoints().
|
inline |
Definition at line 209 of file init.hpp.
References total_potential_g_.
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by finalize(), and perform_iteration().
|
protectedpure virtual |
Implemented in q3::PlanewaveKohnShamSCFIterator.
Referenced by perform_iteration().
|
protected |
Definition at line 260 of file init.hpp.
Referenced by charge_density_g(), q3::PlanewaveKohnShamSCFIterator::preload_charge_density(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::result().
|
protected |
Definition at line 261 of file init.hpp.
Referenced by q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::add_augmentation_to_charge_density(), charge_density_for_spin(), charge_density_real(), q3::PlanewaveKohnShamSCFIterator::compute_delta_escf_correction(), q3::PlanewaveKohnShamSCFIterator::compute_density_residual(), q3::PlanewaveKohnShamSCFIterator::compute_double_counting_correction(), q3::PlanewaveKohnShamSCFIterator::construct_density_from_states(), q3::PlanewaveKohnShamSCFIterator::input_density_for_mixing(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::input_density_for_mixing(), load_charge_density(), q3::PlanewaveKohnShamSCFIterator::loaded_charge_density_fits_grid(), q3::PlanewaveKohnShamSCFIterator::mix_density(), offer_starting_charge_density(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::on_charge_density_initialized(), q3::PlanewaveKohnShamSCFIterator::preload_charge_density(), q3::PlanewaveKohnShamSCFIterator::report_convergence_details(), q3::PlanewaveKohnShamSCFIterator::restore_density_at_convergence(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), q3::PlanewaveKohnShamSCFIterator::scale_loaded_charge_density_to_electron_count(), q3::PlanewaveKohnShamSCFIterator::snapshot_output_density(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::snapshot_smooth_density(), q3::PlanewaveKohnShamSCFIterator::symmetrize_density(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::symmetrize_density(), q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::synchronize_smooth_density_from_mixed(), q3::PlanewaveKohnShamSCFIterator::warn_if_total_charge_deviates(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::write_checkpoints().
| KohnShamSCFIteratorConfig q3::KohnShamSCFIterator::config_ |
|
protected |
Definition at line 291 of file init.hpp.
Referenced by initialize(), is_iteration_converged(), log_iteration_energy(), perform_iteration(), report_iteration(), and q3::PlanewaveKohnShamSCFIterator::set_diagonalization_tolerance().
|
protected |
Definition at line 295 of file init.hpp.
Referenced by diagonalization_threshold(), q3::PlanewaveKohnShamSCFIterator::set_diagonalization_tolerance(), and q3::PlanewaveKohnShamSCFIterator::set_diagonalizer_tolerance().
|
protected |
Definition at line 286 of file init.hpp.
Referenced by exchange_correlation(), initialize(), q3::PlanewaveKohnShamSCFIterator::log_representation_summary(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::valence_exchange_correlation_potential_g_of().
| std::string q3::KohnShamSCFIterator::exchange_correlation_functional_ |
Definition at line 162 of file init.hpp.
Referenced by initialize().
|
protected |
Definition at line 275 of file init.hpp.
Referenced by exchange_correlation_potential_g().
|
protected |
Definition at line 294 of file init.hpp.
Referenced by perform_iteration().
|
protected |
Definition at line 282 of file init.hpp.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_charge_density(), load_charge_density(), and offer_starting_charge_density().
|
protected |
True when V_eff has been injected via load_effective_potential(). When set, update_effective_potential() must not overwrite real_space_potential_.
Definition at line 281 of file init.hpp.
Referenced by load_effective_potential(), and q3::PlanewaveKohnShamSCFIterator::update_effective_potential().
| int q3::KohnShamSCFIterator::methfessel_paxton_order_ |
Definition at line 170 of file init.hpp.
Referenced by initialize().
|
protected |
Definition at line 287 of file init.hpp.
Referenced by initialize(), q3::PlanewaveKohnShamSCFIterator::initiate_mixer(), q3::PlanewaveKohnShamSCFIterator::log_representation_summary(), q3::PlanewaveKohnShamSCFIterator::mix_density(), perform_iteration(), and q3::PlanewaveKohnShamSCFIterator::release_scf_workspace().
| Real q3::KohnShamSCFIterator::mixing_beta_ |
Definition at line 164 of file init.hpp.
Referenced by initialize(), and q3::PlanewaveKohnShamSCFIterator::log_representation_summary().
| int q3::KohnShamSCFIterator::mixing_history_size_ |
Definition at line 165 of file init.hpp.
Referenced by initialize().
| std::string q3::KohnShamSCFIterator::mixing_mode_ |
Definition at line 163 of file init.hpp.
Referenced by initialize().
| std::string q3::KohnShamSCFIterator::mixing_preconditioning_ |
Definition at line 166 of file init.hpp.
Referenced by KohnShamSCFIterator(), and q3::PlanewaveKohnShamSCFIterator::initiate_mixer().
| Real q3::KohnShamSCFIterator::mixing_q0_ |
Definition at line 167 of file init.hpp.
Referenced by q3::PlanewaveKohnShamSCFIterator::initiate_mixer().
|
protected |
Set by offer_starting_charge_density(): a density that need not fit.
Definition at line 284 of file init.hpp.
Referenced by q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_charge_density(), load_charge_density(), and offer_starting_charge_density().
|
protected |
Definition at line 262 of file init.hpp.
Referenced by q3::PlanewaveKohnShamSCFIterator::compute_delta_escf_correction(), q3::PlanewaveKohnShamSCFIterator::compute_double_counting_correction(), q3::PlanewavePseudopotentialKohnShamSCFIterator::initialize_single_particle_states(), load_effective_potential(), potential_for_spin(), real_space_potential(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), q3::PlanewavePseudopotentialKohnShamSCFIterator::solve_single_particle_states(), q3::PlanewaveKohnShamSCFIterator::update_effective_potential(), and q3::PlanewavePseudopotentialKohnShamSCFIterator::write_checkpoints().
|
protected |
Definition at line 293 of file init.hpp.
Referenced by log_iteration_energy(), report_iteration(), and scf_history().
| std::string q3::KohnShamSCFIterator::smearing_ |
Definition at line 168 of file init.hpp.
Referenced by KohnShamSCFIterator(), initialize(), and q3::PlanewaveKohnShamSCFIterator::resolve_number_of_bands().
|
protected |
Definition at line 288 of file init.hpp.
Referenced by initialize(), and q3::PlanewaveKohnShamSCFIterator::initialize_representation().
| Real q3::KohnShamSCFIterator::smearing_width_ |
Definition at line 169 of file init.hpp.
Referenced by initialize(), and q3::PlanewaveKohnShamSCFIterator::resolve_number_of_bands().
|
protected |
Definition at line 292 of file init.hpp.
Referenced by initialize(), report_convergence(), and report_iteration().
|
protected |
|
protected |
The same potential per spin channel, un-averaged.
total_potential_g_ above is the spin average, which the nonlocal D was historically built from. That is exact for a non-magnetic cell and wrong for a magnetic one, because D_ij = D_ion + ∫v_eff·Q_ij inherits v_eff's spin dependence. Empty on paths that never filled it, in which case consumers fall back to the average.
Definition at line 274 of file init.hpp.
Referenced by q3::UltrasoftPlanewavePseudopotentialKohnShamSCFIterator::nonlocal_potentials_by_spin(), q3::PlanewavePseudopotentialKohnShamSCFIterator::result(), and q3::PlanewaveKohnShamSCFIterator::update_effective_potential().