Loading...
Searching...
No Matches
q3::execution::QuantumSystemExecutionPolicy Class Reference

#include <init.hpp>

+ Inheritance diagram for q3::execution::QuantumSystemExecutionPolicy:

Public Member Functions

 ~QuantumSystemExecutionPolicy () override=default
 
int band_rank_index () const
 
int band_size () const
 
- Public Member Functions inherited from q3::execution::ExecutionPolicy
virtual ~ExecutionPolicy ()=default
 
virtual void add_scaled_vector (int number_of_elements, ComplexValue scaling_factor, const ComplexValue *vector_x, ComplexValue *vector_y) const =0
 
virtual void allgather_across_bands (ComplexValue *, const int *, const int *) const
 
virtual void allgather_within_group (const Real *local_data, int local_count, Real *full_data, int total_count) const =0
 
virtual int band_distribution_rank_index () const
 
virtual int band_distribution_size () const
 
virtual void broadcast_across_bands (ComplexValue *, int) const
 
virtual void broadcast_across_bands (int *, int) const
 Integer overload, for the counts that decide collective sizes.
 
virtual void broadcast_across_bands (Real *, int) const
 Real overload, for eigenvalues – the numbers convergence decisions are made from.
 
virtual void broadcast_from_group_root (ComplexValue *, int) const
 
virtual void broadcast_from_group_root (Real *, int) const
 
virtual ComplexValue dot_product (int number_of_elements, const ComplexValue *vector_x, const ComplexValue *vector_y) const =0
 
virtual int global_number_of_elements (int local_number_of_elements) const =0
 
virtual int group_rank_index () const =0
 
virtual int group_size () const =0
 
virtual bool is_root () const =0
 
virtual Real norm (int number_of_elements, const ComplexValue *vector_x) const =0
 
virtual int number_of_processes () const =0
 
virtual void reduce_across_bands (Real *, int) const
 
virtual void reduce_group_distributed_result (ComplexValue *, int) const
 
virtual void reduce_within_group (ComplexValue *data, int number_of_elements) const =0
 
virtual void reduce_within_group (Real *data, int number_of_elements) const =0
 

Additional Inherited Members

- Public Types inherited from q3::execution::ExecutionPolicy
using ComplexValue = Complex
 

Detailed Description

Definition at line 28 of file init.hpp.

Constructor & Destructor Documentation

◆ ~QuantumSystemExecutionPolicy()

q3::execution::QuantumSystemExecutionPolicy::~QuantumSystemExecutionPolicy ( )
overridedefault

Member Function Documentation

◆ band_rank_index()

int q3::execution::QuantumSystemExecutionPolicy::band_rank_index ( ) const
inline

Index of this process within its band group (0 = band root).

Definition at line 46 of file init.hpp.

References q3::execution::ExecutionPolicy::group_rank_index().

◆ band_size()

int q3::execution::QuantumSystemExecutionPolicy::band_size ( ) const
inline

Number of processes collaborating within this band group.

1 means each process diagonalizes its quantum states alone (no band parallelism); >1 means the diagonalization work of each quantum state is shared across the group.

Definition at line 39 of file init.hpp.

References q3::execution::ExecutionPolicy::group_size().

Referenced by q3::PlanewaveKohnShamSCFIterator::build_kpoint_plane_wave_data(), q3::create_kohn_sham_iterator(), q3::execution::PlanewaveExecutionPolicy::execution_record(), and q3::SelfConsistentFieldFlavor::run_calculation().


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