Octopus
states_elec_oct_m::states_elec_t Type Reference

The states_elec_t class contains all electronic wave functions. More...

Detailed Description

The states_elec_t class contains all electronic wave functions.

and also data, which is derived from the wave functions, e.g. the density currents, etc., but also eigenenergies.

The wave functions, themselves, are stored in groups in the type states_elec_group_oct_m::states_elec_group_t.

Definition at line 226 of file states_elec.F90.

Inheritance diagram for states_elec_oct_m::states_elec_t:
Inheritance graph

Private Member Functions

procedure nullify => states_elec_null
 
procedure write_info => states_elec_write_info
 write information about the states object More...
 
procedure pack => states_elec_pack
 pack the batches in this states object More...
 
procedure unpack => states_elec_unpack
 unpack the batches in this states object More...
 
procedure set_zero => states_elec_set_zero
 expclicitely set all wave functions in the states to zero More...
 
procedure dipole => states_elec_calculate_dipole
 calculate the expectation value of the dipole moment of electrons More...
 

Private Attributes

type(states_elec_dim_td
 Spin dimensions; also contains k-points and weights. More...
 
integer nst_conv
 Number of states to be converged for unocc calc. More...
 
logical only_userdef_istates
 only use user-defined states as initial states in propagation More...
 
type(states_elec_group_tgroup
 Wave function plus blocking data. More...
 
integer block_size
 number of states per batch, as set by StatesBlockSize input variable More...
 
logical pack_states
 packing status as requested by StatesPack input variable. More...
 
character(len=1024), dimension(:,:,:), allocatable user_def_states
 used for the user-defined wavefunctions (they are stored as formula strings) dimensions (st%d%dim, st%nst, st%d%nik) More...
 
real(real64), dimension(:,:), allocatable rho
 rho, dimension (gr%np_part, st%d%nspin) More...
 
real(real64), dimension(:), allocatable rho_core
 core charge for nl core corrections More...
 
real(real64), dimension(:, :, :), allocatable current
 total current, dimension (gr%np_part, space%dim, st%d%nspin) More...
 
real(real64), dimension(:, :, :), allocatable current_para
 paramagnetic current, dimension (gr%np_part, space%dim, st%d%nspin) More...
 
real(real64), dimension(:, :, :), allocatable current_dia
 diamagnetic current, dimension (gr%np_part, space%dim, st%d%nspin) More...
 
real(real64), dimension(:, :, :), allocatable current_mag
 magnetization current, dimension (gr%np_part, space%dim, st%d%nspin) More...
 
real(real64), dimension(:,:,:), allocatable current_kpt
 k-point resolved current, dimension (grnp spacedim, kpt_start:kpt_end) More...
 
real(real64), dimension(:, :), allocatable frozen_rho
 frozen density More...
 
real(real64), dimension(:, :), allocatable frozen_tau
 frozen kinetic energy density More...
 
real(real64), dimension(:,:,:), allocatable frozen_gdens
 frozen gradient of density More...
 
real(real64), dimension(:,:), allocatable frozen_ldens
 frozen lapacian of density More...
 
logical uniform_occ
 .true. if occupations are equal for all states: no empty states, and no smearing More...
 
real(real64), dimension(:,:), allocatable eigenval
 eigenvalues (st%nst, st%d%nik) More...
 
logical fixed_occ
 should the occupation numbers be fixed? More...
 
logical restart_fixed_occ
 should the occupation numbers be fixed by restart? More...
 
logical restart_reorder_occs
 used for restart with altered occupation numbers More...
 
real(real64), dimension(:,:), allocatable occ
 the occupation numbers More...
 
real(real64), dimension(:), allocatable kweights
 weights for the k-point integrations More...
 
integer nik
 Number of irreducible subspaces. More...
 
logical, private fixed_spins
 In spinors mode, the spin direction is set for the initial (random) orbitals. More...
 
real(real64), dimension(:, :, :), allocatable spin
 spin orientations, dimension (1:3, 1:st%nst, 1:st%d%nik) More...
 
real(real64) qtot
 (-) The total charge in the system (used in Fermi) More...
 
real(real64) val_charge
 valence charge More...
 
type(stress_tstress_tensors
 
logical fromscratch
 
type(smear_tsmear
 smearing of the electronic occupations More...
 
type(modelmb_particle_tmodelmbparticles
 
integer, dimension(:,:), allocatable mmb_nspindown
 number of down spins in the selected Young diagram for each type and state More...
 
integer, dimension(:,:), allocatable mmb_iyoung
 index of the selected Young diagram for each type and state More...
 
real(real64), dimension(:), allocatable mmb_proj
 projection of the state onto the chosen Young diagram More...
 
logical parallel_in_states = .false.
 Am I parallel in states? More...
 
type(mpi_grp_tmpi_grp
 The MPI group related to the parallelization in states. More...
 
type(mpi_grp_tdom_st_mpi_grp
 The MPI group related to the domains-states "plane". More...
 
type(mpi_grp_tst_kpt_mpi_grp
 The MPI group related to the states-kpoints "plane". More...
 
type(mpi_grp_tdom_st_kpt_mpi_grp
 The MPI group related to the domains-states-kpoints "cube". More...
 
type(blacs_proc_grid_tdom_st_proc_grid
 The BLACS process grid for the domains-states plane. More...
 
type(distributed_tdist
 states distribution over processes More...
 
logical scalapack_compatible
 Whether the states parallelization uses ScaLAPACK layout. More...
 
integer lnst
 Number of states on local process. More...
 
integer st_start
 
integer st_end
 Range of states processed by local process. More...
 
integer, dimension(:), allocatable node
 To which node belongs each state. More...
 
integer, dimension(:,:), allocatable st_kpt_task
 For a given task, what are kpt and st start/end. More...
 
type(multicomm_all_pairs_t), private ap
 All-pairs schedule. More...
 
logical symmetrize_density
 
integer randomization
 Method used to generate random states. More...
 
integer orth_method = 0
 orthogonalization as requested by StatesOrthogonalization More...
 
real(real64) cl_states_mem
 

Additional Inherited Members

- Public Attributes inherited from states_abst_oct_m::states_abst_t
type(type_t), public wfs_type
 real (TYPE_FLOAT) or complex (TYPE_CMPLX) wavefunctions More...
 
integer, public nst
 Number of states in each irreducible subspace. More...
 
logical, public packed
 status of the batches More...
 

Member Function/Subroutine Documentation

◆ nullify()

procedure states_elec_oct_m::states_elec_t::nullify
private

Definition at line 324 of file states_elec.F90.

◆ write_info()

procedure states_elec_oct_m::states_elec_t::write_info
private

write information about the states object

Definition at line 325 of file states_elec.F90.

◆ pack()

procedure states_elec_oct_m::states_elec_t::pack
private

pack the batches in this states object

Definition at line 326 of file states_elec.F90.

◆ unpack()

procedure states_elec_oct_m::states_elec_t::unpack
private

unpack the batches in this states object

Definition at line 327 of file states_elec.F90.

◆ set_zero()

procedure states_elec_oct_m::states_elec_t::set_zero
private

expclicitely set all wave functions in the states to zero

Definition at line 328 of file states_elec.F90.

◆ dipole()

procedure states_elec_oct_m::states_elec_t::dipole
private

calculate the expectation value of the dipole moment of electrons

Note
this routine is only meaningful for isolated systems. For periodic systems, we need to consider the Berry phase.

Definition at line 329 of file states_elec.F90.

Member Data Documentation

◆ d

type(states_elec_dim_t) states_elec_oct_m::states_elec_t::d
private

Spin dimensions; also contains k-points and weights.

Definition at line 228 of file states_elec.F90.

◆ nst_conv

integer states_elec_oct_m::states_elec_t::nst_conv
private

Number of states to be converged for unocc calc.

Definition at line 229 of file states_elec.F90.

◆ only_userdef_istates

logical states_elec_oct_m::states_elec_t::only_userdef_istates
private

only use user-defined states as initial states in propagation

Definition at line 231 of file states_elec.F90.

◆ group

type(states_elec_group_t) states_elec_oct_m::states_elec_t::group
private

Wave function plus blocking data.

Definition at line 233 of file states_elec.F90.

◆ block_size

integer states_elec_oct_m::states_elec_t::block_size
private

number of states per batch, as set by StatesBlockSize input variable

The value is limited by the actual number of states.

Definition at line 234 of file states_elec.F90.

◆ pack_states

logical states_elec_oct_m::states_elec_t::pack_states
private

packing status as requested by StatesPack input variable.

set in states_elec_oct_m::states_elec_init. This does not represent the actual status, but whether states should be packed.

Definition at line 238 of file states_elec.F90.

◆ user_def_states

character(len=1024), dimension(:,:,:), allocatable states_elec_oct_m::states_elec_t::user_def_states
private

used for the user-defined wavefunctions (they are stored as formula strings) dimensions (st%d%dim, st%nst, st%d%nik)

Definition at line 244 of file states_elec.F90.

◆ rho

real(real64), dimension(:,:), allocatable states_elec_oct_m::states_elec_t::rho
private

rho, dimension (gr%np_part, st%d%nspin)

Definition at line 250 of file states_elec.F90.

◆ rho_core

real(real64), dimension(:), allocatable states_elec_oct_m::states_elec_t::rho_core
private

core charge for nl core corrections

Definition at line 251 of file states_elec.F90.

◆ current

real(real64), dimension(:, :, :), allocatable states_elec_oct_m::states_elec_t::current
private

total current, dimension (gr%np_part, space%dim, st%d%nspin)

Definition at line 253 of file states_elec.F90.

◆ current_para

real(real64), dimension(:, :, :), allocatable states_elec_oct_m::states_elec_t::current_para
private

paramagnetic current, dimension (gr%np_part, space%dim, st%d%nspin)

Definition at line 254 of file states_elec.F90.

◆ current_dia

real(real64), dimension(:, :, :), allocatable states_elec_oct_m::states_elec_t::current_dia
private

diamagnetic current, dimension (gr%np_part, space%dim, st%d%nspin)

Definition at line 255 of file states_elec.F90.

◆ current_mag

real(real64), dimension(:, :, :), allocatable states_elec_oct_m::states_elec_t::current_mag
private

magnetization current, dimension (gr%np_part, space%dim, st%d%nspin)

Definition at line 256 of file states_elec.F90.

◆ current_kpt

real(real64), dimension(:,:,:), allocatable states_elec_oct_m::states_elec_t::current_kpt
private

k-point resolved current, dimension (grnp spacedim, kpt_start:kpt_end)

Definition at line 257 of file states_elec.F90.

◆ frozen_rho

real(real64), dimension(:, :), allocatable states_elec_oct_m::states_elec_t::frozen_rho
private

frozen density

Definition at line 262 of file states_elec.F90.

◆ frozen_tau

real(real64), dimension(:, :), allocatable states_elec_oct_m::states_elec_t::frozen_tau
private

frozen kinetic energy density

Definition at line 263 of file states_elec.F90.

◆ frozen_gdens

real(real64), dimension(:,:,:), allocatable states_elec_oct_m::states_elec_t::frozen_gdens
private

frozen gradient of density

Definition at line 264 of file states_elec.F90.

◆ frozen_ldens

real(real64), dimension(:,:), allocatable states_elec_oct_m::states_elec_t::frozen_ldens
private

frozen lapacian of density

Definition at line 265 of file states_elec.F90.

◆ uniform_occ

logical states_elec_oct_m::states_elec_t::uniform_occ
private

.true. if occupations are equal for all states: no empty states, and no smearing

Definition at line 267 of file states_elec.F90.

◆ eigenval

real(real64), dimension(:,:), allocatable states_elec_oct_m::states_elec_t::eigenval
private

eigenvalues (st%nst, st%d%nik)

Definition at line 269 of file states_elec.F90.

◆ fixed_occ

logical states_elec_oct_m::states_elec_t::fixed_occ
private

should the occupation numbers be fixed?

Definition at line 270 of file states_elec.F90.

◆ restart_fixed_occ

logical states_elec_oct_m::states_elec_t::restart_fixed_occ
private

should the occupation numbers be fixed by restart?

Definition at line 271 of file states_elec.F90.

◆ restart_reorder_occs

logical states_elec_oct_m::states_elec_t::restart_reorder_occs
private

used for restart with altered occupation numbers

Definition at line 272 of file states_elec.F90.

◆ occ

real(real64), dimension(:,:), allocatable states_elec_oct_m::states_elec_t::occ
private

the occupation numbers

Definition at line 273 of file states_elec.F90.

◆ kweights

real(real64), dimension(:), allocatable states_elec_oct_m::states_elec_t::kweights
private

weights for the k-point integrations

Definition at line 274 of file states_elec.F90.

◆ nik

integer states_elec_oct_m::states_elec_t::nik
private

Number of irreducible subspaces.

Definition at line 275 of file states_elec.F90.

◆ fixed_spins

logical, private states_elec_oct_m::states_elec_t::fixed_spins
private

In spinors mode, the spin direction is set for the initial (random) orbitals.

Definition at line 277 of file states_elec.F90.

◆ spin

real(real64), dimension(:, :, :), allocatable states_elec_oct_m::states_elec_t::spin
private

spin orientations, dimension (1:3, 1:st%nst, 1:st%d%nik)

Definition at line 279 of file states_elec.F90.

◆ qtot

real(real64) states_elec_oct_m::states_elec_t::qtot
private

(-) The total charge in the system (used in Fermi)

Definition at line 281 of file states_elec.F90.

◆ val_charge

real(real64) states_elec_oct_m::states_elec_t::val_charge
private

valence charge

Definition at line 282 of file states_elec.F90.

◆ stress_tensors

type(stress_t) states_elec_oct_m::states_elec_t::stress_tensors
private

Definition at line 284 of file states_elec.F90.

◆ fromscratch

logical states_elec_oct_m::states_elec_t::fromscratch
private

Definition at line 286 of file states_elec.F90.

◆ smear

type(smear_t) states_elec_oct_m::states_elec_t::smear
private

smearing of the electronic occupations

Definition at line 287 of file states_elec.F90.

◆ modelmbparticles

type(modelmb_particle_t) states_elec_oct_m::states_elec_t::modelmbparticles
private

Definition at line 290 of file states_elec.F90.

◆ mmb_nspindown

integer, dimension(:,:), allocatable states_elec_oct_m::states_elec_t::mmb_nspindown
private

number of down spins in the selected Young diagram for each type and state

Definition at line 291 of file states_elec.F90.

◆ mmb_iyoung

integer, dimension(:,:), allocatable states_elec_oct_m::states_elec_t::mmb_iyoung
private

index of the selected Young diagram for each type and state

Definition at line 292 of file states_elec.F90.

◆ mmb_proj

real(real64), dimension(:), allocatable states_elec_oct_m::states_elec_t::mmb_proj
private

projection of the state onto the chosen Young diagram

Definition at line 293 of file states_elec.F90.

◆ parallel_in_states

logical states_elec_oct_m::states_elec_t::parallel_in_states = .false.
private

Am I parallel in states?

Definition at line 295 of file states_elec.F90.

◆ mpi_grp

type(mpi_grp_t) states_elec_oct_m::states_elec_t::mpi_grp
private

The MPI group related to the parallelization in states.

Definition at line 299 of file states_elec.F90.

◆ dom_st_mpi_grp

type(mpi_grp_t) states_elec_oct_m::states_elec_t::dom_st_mpi_grp
private

The MPI group related to the domains-states "plane".

Definition at line 300 of file states_elec.F90.

◆ st_kpt_mpi_grp

type(mpi_grp_t) states_elec_oct_m::states_elec_t::st_kpt_mpi_grp
private

The MPI group related to the states-kpoints "plane".

Definition at line 301 of file states_elec.F90.

◆ dom_st_kpt_mpi_grp

type(mpi_grp_t) states_elec_oct_m::states_elec_t::dom_st_kpt_mpi_grp
private

The MPI group related to the domains-states-kpoints "cube".

Definition at line 302 of file states_elec.F90.

◆ dom_st_proc_grid

type(blacs_proc_grid_t) states_elec_oct_m::states_elec_t::dom_st_proc_grid
private

The BLACS process grid for the domains-states plane.

Definition at line 303 of file states_elec.F90.

◆ dist

type(distributed_t) states_elec_oct_m::states_elec_t::dist
private

states distribution over processes

Definition at line 305 of file states_elec.F90.

◆ scalapack_compatible

logical states_elec_oct_m::states_elec_t::scalapack_compatible
private

Whether the states parallelization uses ScaLAPACK layout.

Definition at line 306 of file states_elec.F90.

◆ lnst

integer states_elec_oct_m::states_elec_t::lnst
private

Number of states on local process.

Definition at line 309 of file states_elec.F90.

◆ st_start

integer states_elec_oct_m::states_elec_t::st_start
private

Definition at line 310 of file states_elec.F90.

◆ st_end

integer states_elec_oct_m::states_elec_t::st_end
private

Range of states processed by local process.

Definition at line 310 of file states_elec.F90.

◆ node

integer, dimension(:), allocatable states_elec_oct_m::states_elec_t::node
private

To which node belongs each state.

Definition at line 311 of file states_elec.F90.

◆ st_kpt_task

integer, dimension(:,:), allocatable states_elec_oct_m::states_elec_t::st_kpt_task
private

For a given task, what are kpt and st start/end.

Definition at line 314 of file states_elec.F90.

◆ ap

type(multicomm_all_pairs_t), private states_elec_oct_m::states_elec_t::ap
private

All-pairs schedule.

Definition at line 316 of file states_elec.F90.

◆ symmetrize_density

logical states_elec_oct_m::states_elec_t::symmetrize_density
private

Definition at line 317 of file states_elec.F90.

◆ randomization

integer states_elec_oct_m::states_elec_t::randomization
private

Method used to generate random states.

Definition at line 318 of file states_elec.F90.

◆ orth_method

integer states_elec_oct_m::states_elec_t::orth_method = 0
private

orthogonalization as requested by StatesOrthogonalization

Definition at line 319 of file states_elec.F90.

◆ cl_states_mem

real(real64) states_elec_oct_m::states_elec_t::cl_states_mem
private

Definition at line 321 of file states_elec.F90.


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