Octopus
wfs_elec_oct_m::wfs_elec_t Type Reference

batches of electronic states More...

Detailed Description

batches of electronic states

This class extends the abstract batch class (batch_oct_m::batch_t) by adding information on the k-point, and whether the phase is included.

Note
a 'batch' of states, represented by this class can only contain wave functions with the same k point.

Definition at line 138 of file wfs_elec.F90.

Inheritance diagram for wfs_elec_oct_m::wfs_elec_t:
Inheritance graph

Public Attributes

integer, public ik
 index of the k-point for this set of wave functions More...
 
logical, public has_phase
 the stored wave functions include the phase More...
 
- Public Attributes inherited from batch_oct_m::batch_t
integer, public nst
 number of functions in the batch More...
 
integer, public dim
 Spinor dimension of the state (one, or two for spinors) More...
 
integer, dimension(:), allocatable, public ist
 map from an global to local index More...
 
integer, public nst_linear
 nst_linear = nst * stddim More...
 
real(real64), dimension(:, :, :), pointer, public, contiguous dff
 pointer to real mesh functions: indices are (1:np, 1:dim, 1:nst) More...
 
complex(real64), dimension(:, :, :), pointer, public, contiguous zff
 pointer to complex mesh functions: indices are (1:np, 1:dim, 1:nst) More...
 
real(real64), dimension(:, :), pointer, public, contiguous dff_linear
 pointer to real mesh functions: indices are (1:np, 1:nst_linear) More...
 
complex(real64), dimension(:, :), pointer, public, contiguous zff_linear
 pointer to complex mesh functions: indices are (1:np, 1:nst_linear) More...
 
real(real64), dimension(:, :), pointer, public, contiguous dff_pack
 pointer to real mesh functions: indices are (1:nst_linear, 1:np) More...
 
complex(real64), dimension(:, :), pointer, public, contiguous zff_pack
 pointer to complex mesh functions: indices are (1:nst_linear, 1:np) More...
 
integer(int64), dimension(1:2), public pack_size
 pack_size = [pad_pow2(nst_linear), np] (see math_oct_m::pad_pow2) More...
 
integer(int64), dimension(1:2), public pack_size_real
 pack_size_real = pack_size; if batch type is complex, then pack_size_real(1) = 2*pack_size(1) More...
 
type(accel_mem_t), public ff_device
 pointer to device memory More...
 

Private Member Functions

procedure clone_to => wfs_elec_clone_to
 clone to another wfs_elec_t object More...
 
procedure clone_to_array => wfs_elec_clone_to_array
 clone the data to multipe wfs_elec_t objects More...
 
procedure copy_to => wfs_elec_copy_to
 copy the data of teh contained batch to another (existing) wfs_elec_t object More...
 
procedure check_compatibility_with => wfs_elec_check_compatibility_with
 check whether the object is compatible with a target object More...
 
procedure end => wfs_elec_end
 finalze the object and the contained batch More...
 

Member Function/Subroutine Documentation

◆ clone_to()

procedure wfs_elec_oct_m::wfs_elec_t::clone_to
private

clone to another wfs_elec_t object

Parameters
[in]thissource data
[out]destdestination (currently only wfs_elec_t)
[in]packoptional flag whether to pack
[in]copy_dataoptional flag whether to copy the data (deep copy)
[in]new_npoptional number of points to copy

Definition at line 149 of file wfs_elec.F90.

◆ clone_to_array()

procedure wfs_elec_oct_m::wfs_elec_t::clone_to_array
private

clone the data to multipe wfs_elec_t objects

Parameters
[in]thissource
[out]destmultiple destinations; dimension (1:n_batches)
[in]n_batchesnumber of batches to create
[in]packoptional flag whether to pack
[in]copy_dataoptional flag whether to copy the data (deep copy)

Definition at line 150 of file wfs_elec.F90.

◆ copy_to()

procedure wfs_elec_oct_m::wfs_elec_t::copy_to
private

copy the data of teh contained batch to another (existing) wfs_elec_t object

Parameters
[in]thissource
[out]destdestination (currently only wfs_elec_t)
[in]packoptional flag whether to pack
[in]copy_dataoptional flag whether to copy the data (deep copy)
[in]new_npoptional number of points to copy
[in]specialallocate on GPU if needed

Definition at line 151 of file wfs_elec.F90.

◆ check_compatibility_with()

procedure wfs_elec_oct_m::wfs_elec_t::check_compatibility_with
private

check whether the object is compatible with a target object

Compatibility here means that k-point and phase information agree, as well as the dimensions and optionally the data type

Definition at line 152 of file wfs_elec.F90.

◆ end()

procedure wfs_elec_oct_m::wfs_elec_t::end
private

finalze the object and the contained batch

Parameters
[in,out]thisobject to finalize
[in]copycopy the data back to the external memory, used to initialize the batch

Definition at line 153 of file wfs_elec.F90.

Member Data Documentation

◆ ik

integer, public wfs_elec_oct_m::wfs_elec_t::ik

index of the k-point for this set of wave functions

The kpoints themselves are stored in as kpoints_oct_m::kpoints_t in hamiltonian_elec_oct_m::hamiltonian_elec_t::kpoints

Definition at line 140 of file wfs_elec.F90.

◆ has_phase

logical, public wfs_elec_oct_m::wfs_elec_t::has_phase

the stored wave functions include the phase

A more detailed description of the phases is given in hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t

Definition at line 144 of file wfs_elec.F90.


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