51 integer,
public,
parameter :: &
68 integer :: spin_channels
69 type(distributed_t) :: kpt
80 type(states_elec_dim_t),
intent(inout) :: dout
81 type(states_elec_dim_t),
intent(in) :: din
88 dout%ispin = din%ispin
89 dout%nspin = din%nspin
90 dout%spin_channels = din%spin_channels
101 type(states_elec_dim_t),
intent(inout) :: dim
115 logical pure function is_spin_up(ik)
116 integer,
intent(in) :: ik
126 logical pure function is_spin_down(ik)
127 integer,
intent(in) :: ik
136 integer pure function states_elec_dim_get_spin_index(this, iq) result(index)
137 class(states_elec_dim_t),
intent(in) :: this
138 integer,
intent(in) :: iq
140 if (this%ispin == spin_polarized)
then
141 index = 1 + mod(iq - 1, 2)
154 integer,
intent(in) :: iq
156 if (this%ispin == spin_polarized)
then
157 index = 1 + (iq - 1)/2
subroutine, public distributed_end(this)
subroutine, public distributed_copy(in, out)
@Brief Create a copy of a distributed instance
This module is intended to contain "only mathematical" functions and procedures.
logical pure function, public odd(n)
Returns if n is odd.
This module handles the communicators for the various parallelization strategies.
This module handles spin dimensions of the states and the k-point distribution.
integer pure function states_elec_dim_get_spin_index(this, iq)
extract the spin index from the combined spin and k index
integer, parameter, public spin_up
integer pure function states_elec_dim_get_kpoint_index(this, iq)
extract the k-point index from the combined spin and k index
subroutine, public states_elec_dim_copy(dout, din)
logical pure function, public is_spin_up(ik)
Returns true if k-point ik denotes spin-up, in spin-polarized case.
subroutine, public states_elec_dim_end(dim)
logical pure function, public is_spin_down(ik)
Returns true if k-point ik denotes spin-down, in spin-polarized case.
class for organizing spins and k-points