Octopus
states_elec_group_oct_m::states_elec_group_t Type Reference

Group of electronic states. More...

Detailed Description

Group of electronic states.

This class represents a group of batches of wave functions. It contains groups of blocks (batches) electronic states, represented by wfs_elec_oct_m::wfs_elec_t, together with the meta-data how these blocks are organized.

Each block contains wave functions with the same k point. The blocks can be distributed over nodes, when using state parallelization.

Definition at line 144 of file states_elec_group.F90.

Private Attributes

type(wfs_elec_t), dimension(:, :), allocatable psib
 An array of wave-functions blocks (batches) More...
 
integer nblocks
 The total number of blocks (across nodes) More...
 
integer block_start
 The lowest index of local blocks. More...
 
integer block_end
 The highest index of local blocks. More...
 
integer, dimension(:), allocatable iblock
 A map, that for each state index returns the index of block containing it. More...
 
integer, dimension(:, :), allocatable block_range
 Each block contains states from block_range(:, 1) to block_range(:, 2) More...
 
integer, dimension(:), allocatable block_size
 The number of states in each block. More...
 
logical, dimension(:, :), allocatable block_is_local
 It is true if the block (ist, ik) is in this node. More...
 
integer, dimension(:), allocatable block_node
 The node that contains each block. More...
 
type(mpi_win), dimension(:, :), allocatable rma_win
 The MPI window handle for for block (ist, ik) for one sided communication. More...
 
logical block_initialized = .false.
 For keeping track of the blocks to avoid memory leaks. More...
 

Member Data Documentation

◆ psib

type(wfs_elec_t), dimension(:, :), allocatable states_elec_group_oct_m::states_elec_group_t::psib
private

An array of wave-functions blocks (batches)

Definition at line 146 of file states_elec_group.F90.

◆ nblocks

integer states_elec_group_oct_m::states_elec_group_t::nblocks
private

The total number of blocks (across nodes)

Definition at line 147 of file states_elec_group.F90.

◆ block_start

integer states_elec_group_oct_m::states_elec_group_t::block_start
private

The lowest index of local blocks.

Definition at line 148 of file states_elec_group.F90.

◆ block_end

integer states_elec_group_oct_m::states_elec_group_t::block_end
private

The highest index of local blocks.

Definition at line 149 of file states_elec_group.F90.

◆ iblock

integer, dimension(:), allocatable states_elec_group_oct_m::states_elec_group_t::iblock
private

A map, that for each state index returns the index of block containing it.

Definition at line 150 of file states_elec_group.F90.

◆ block_range

integer, dimension(:, :), allocatable states_elec_group_oct_m::states_elec_group_t::block_range
private

Each block contains states from block_range(:, 1) to block_range(:, 2)

Definition at line 151 of file states_elec_group.F90.

◆ block_size

integer, dimension(:), allocatable states_elec_group_oct_m::states_elec_group_t::block_size
private

The number of states in each block.

Definition at line 152 of file states_elec_group.F90.

◆ block_is_local

logical, dimension(:, :), allocatable states_elec_group_oct_m::states_elec_group_t::block_is_local
private

It is true if the block (ist, ik) is in this node.

Definition at line 153 of file states_elec_group.F90.

◆ block_node

integer, dimension(:), allocatable states_elec_group_oct_m::states_elec_group_t::block_node
private

The node that contains each block.

Definition at line 154 of file states_elec_group.F90.

◆ rma_win

type(mpi_win), dimension(:, :), allocatable states_elec_group_oct_m::states_elec_group_t::rma_win
private

The MPI window handle for for block (ist, ik) for one sided communication.

Definition at line 155 of file states_elec_group.F90.

◆ block_initialized

logical states_elec_group_oct_m::states_elec_group_t::block_initialized = .false.
private

For keeping track of the blocks to avoid memory leaks.

Definition at line 157 of file states_elec_group.F90.


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