Octopus
wannier_oct_m Module Reference

Wannier module. More...

Detailed Description

Wannier module.

This module contains types and routines related to Wannier functions. Used in TD runs where Wannier functionality is enabled.

Data Types

type  wannier_t
 Main object containing all Wannier-related data and methods. More...
 

Functions/Subroutines

subroutine wannier_init_from_input (this, namespace, kpoints, ions, space, st, gr)
 Initialize wannier object options from input files. More...
 
subroutine wannier_build_effective_lattice (ions, space, gr, latt)
 Build the effective lattice used for TD Wannier geometry. More...
 
subroutine wannier_init_parallelization (this, namespace, st, ions, kpoints)
 Initialize parallelization for wannier object. More...
 
subroutine wannier_init_data_from_file (this, kpoints)
 Initialize wannier object data for TD run. More...
 
subroutine wannier_restart_write_data (this, namespace, mc, gr)
 Write TD Wannier restart data. More...
 
subroutine wannier_restart_read_data (this, namespace, mc, gr)
 Read TD Wannier restart data. More...
 
subroutine wannier_write_iter (this, namespace, outp, ions, kpoints)
 Write TD Wannier data. More...
 
subroutine wannier_update_matrices (this, iter, namespace, gr, space, st, kpoints, hm, dt)
 Update wannier transformation matrix. More...
 
subroutine wannier_finalize (wan)
 Clean up wannier object data. More...
 

Function/Subroutine Documentation

◆ wannier_init_from_input()

subroutine wannier_oct_m::wannier_init_from_input ( class(wannier_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
type(kpoints_t), intent(in)  kpoints,
type(ions_t), intent(in)  ions,
class(space_t), intent(in)  space,
type(states_elec_t), intent(in)  st,
class(mesh_t), intent(in)  gr 
)
private

Initialize wannier object options from input files.

This is always invoked in a TD run. Does not affect anything later on if TDWannierMethod is set to NONE.

Definition at line 187 of file wannier.F90.

◆ wannier_build_effective_lattice()

subroutine wannier_oct_m::wannier_build_effective_lattice ( type(ions_t), intent(in)  ions,
class(space_t), intent(in)  space,
class(mesh_t), intent(in)  gr,
type(lattice_vectors_t), intent(out)  latt 
)
private

Build the effective lattice used for TD Wannier geometry.

Returns a local copy of ionslatt (ionslatt itself is never modified). For every non-periodic direction, the copy is rescaled to a fictitious lattice vector of length 2*bounding_box_l, i.e. twice the simulation box''s bounding length in that direction.

Definition at line 269 of file wannier.F90.

◆ wannier_init_parallelization()

subroutine wannier_oct_m::wannier_init_parallelization ( class(wannier_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
type(states_elec_t), intent(in)  st,
type(ions_t), intent(in)  ions,
type(kpoints_t), intent(in)  kpoints 
)
private

Initialize parallelization for wannier object.

This initializes the wannier90 library object correctly. The only available parallelization mechanism in wannier90 is kpoint parallelization which is handled using the octopus internal communicator.

Definition at line 296 of file wannier.F90.

◆ wannier_init_data_from_file()

subroutine wannier_oct_m::wannier_init_data_from_file ( class(wannier_t), intent(inout)  this,
type(kpoints_t), intent(in)  kpoints 
)
private

Initialize wannier object data for TD run.

Reads centers and U matrices from prior GS wannierization. Does not change any wannier-related options.

Definition at line 322 of file wannier.F90.

◆ wannier_restart_write_data()

subroutine wannier_oct_m::wannier_restart_write_data ( class(wannier_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
type(multicomm_t), intent(in)  mc,
class(mesh_t), intent(in)  gr 
)
private

Write TD Wannier restart data.

The necessary restart data for TD Wannier functionality are the centers and the U matrices.

Definition at line 347 of file wannier.F90.

◆ wannier_restart_read_data()

subroutine wannier_oct_m::wannier_restart_read_data ( class(wannier_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
type(multicomm_t), intent(in)  mc,
class(mesh_t), intent(in)  gr 
)
private

Read TD Wannier restart data.

The necessary restart data for TD Wannier functionality are the centers and the U matrices.

Definition at line 396 of file wannier.F90.

◆ wannier_write_iter()

subroutine wannier_oct_m::wannier_write_iter ( class(wannier_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
type(output_t), intent(inout)  outp,
class(ions_t), intent(in)  ions,
type(kpoints_t), intent(in)  kpoints 
)
private

Write TD Wannier data.

Definition at line 447 of file wannier.F90.

◆ wannier_update_matrices()

subroutine wannier_oct_m::wannier_update_matrices ( class(wannier_t), intent(inout)  this,
integer, intent(in)  iter,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  gr,
class(space_t), intent(in)  space,
type(states_elec_t), intent(inout)  st,
type(kpoints_t), intent(in)  kpoints,
type(hamiltonian_elec_t), intent(in)  hm,
real(real64), intent(in)  dt 
)
private

Update wannier transformation matrix.

Definition at line 483 of file wannier.F90.

◆ wannier_finalize()

subroutine wannier_oct_m::wannier_finalize ( type(wannier_t), intent(inout)  wan)
private

Clean up wannier object data.

Definition at line 542 of file wannier.F90.