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 188 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 266 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 293 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 319 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, the U matrices, and the time-dependent accumulated phase.

Definition at line 344 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, the U matrices and the time-dependent accumulated phase.

Definition at line 401 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 458 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 494 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 541 of file wannier.F90.