Octopus
phonon_modes_oct_m::phonon_modes_t Type Reference

This class describes phonon modes, which are specified by their frequencies and eigenvectors. More...

Detailed Description

This class describes phonon modes, which are specified by their frequencies and eigenvectors.

Note
Octopus will in general run the supercell, and has no information about the underlying primitive cell. The eigenvectors are given for all atoms in the supercell.

Definition at line 132 of file phonon_modes.F90.

Inheritance diagram for phonon_modes_oct_m::phonon_modes_t:
Inheritance graph

Private Member Functions

procedure init => phonon_modes_init
 Initialize the phonon modes. More...
 
procedure sample => phonon_modes_sample
 Sample initial ionic displacements and velocities from the Wigner distribution of the modes. More...
 
procedure get_displacements => phonon_modes_get_displacements
 get the displacements for a single mode and the respective generalized coordinates. More...
 
final phonon_modes_finalize
 

Private Attributes

real(real64), dimension(:), allocatable alpha
 Per-mode amplitude factor alpha_m = g_m^{-1/2}: 1 for modes from region A (2q = G) and for finite systems, 1/sqrt(2) for the Re/Im modes of region B. More...
 
real(real64), dimension(:), allocatable l_m
 
real(real64), dimension(:), allocatable prefactor
 
integer num_super
 number of primitive cells in the supercell (N_p) More...
 
type(namespace_t) namespace
 

Member Function/Subroutine Documentation

◆ init()

procedure phonon_modes_oct_m::phonon_modes_t::init
private

Initialize the phonon modes.

Read information from a file

Parameters
[in]massesatomic masses in AMU, in file atom order

Definition at line 146 of file phonon_modes.F90.

◆ sample()

procedure phonon_modes_oct_m::phonon_modes_t::sample
private

Sample initial ionic displacements and velocities from the Wigner distribution of the modes.

Implements the sampling prescription of the interface notes "Octopus-PhonoPy interface for multi-trajectory runs" (see doc/implementation_notes/):

\[ \delta R = N_p^{-1/2} (M_0/M)^{1/2} \sum_m \alpha_m \tilde{l}_m W_m \tilde{x}_m, \qquad \delta \dot{R} = N_p^{-1/2} (M_0/M)^{1/2} \sum_m \omega_m \alpha_m \tilde{l}_m W_m \tilde{r}_m, \]

with \( \tilde{x}_m, \tilde{r}_m \) sampled as independent Gaussians of variance \( (1 + 2n_m)/2 = \coth(\omega_m / 2 k_B T)/2 \) and \( M_0 \) = 1 AMU. The per-mode factors \( \alpha_m = g_m^{-1/2} \) are carried by the phonon file.

Parameters
[in]temperaturein Kelvin
[in]seedseed for the random sampling; must be non-zero
[out]pos_displacements(1:dim_space, 1:num_atom), atomic units
[out]vel_displacements(1:dim_space, 1:num_atom), atomic units

Definition at line 147 of file phonon_modes.F90.

◆ get_displacements()

procedure phonon_modes_oct_m::phonon_modes_t::get_displacements
private

get the displacements for a single mode and the respective generalized coordinates.

Parameters
[out]pos_disp_flatin atomic units
[out]vel_disp_flatin atomic units

Definition at line 148 of file phonon_modes.F90.

◆ phonon_modes_finalize()

final phonon_modes_oct_m::phonon_modes_t::phonon_modes_finalize
finalprivate

Definition at line 149 of file phonon_modes.F90.

Member Data Documentation

◆ alpha

real(real64), dimension(:), allocatable phonon_modes_oct_m::phonon_modes_t::alpha
private

Per-mode amplitude factor alpha_m = g_m^{-1/2}: 1 for modes from region A (2q = G) and for finite systems, 1/sqrt(2) for the Re/Im modes of region B.

Definition at line 136 of file phonon_modes.F90.

◆ l_m

real(real64), dimension(:), allocatable phonon_modes_oct_m::phonon_modes_t::l_m
private

Definition at line 137 of file phonon_modes.F90.

◆ prefactor

real(real64), dimension(:), allocatable phonon_modes_oct_m::phonon_modes_t::prefactor
private

Definition at line 138 of file phonon_modes.F90.

◆ num_super

integer phonon_modes_oct_m::phonon_modes_t::num_super
private

number of primitive cells in the supercell (N_p)

Definition at line 140 of file phonon_modes.F90.

◆ namespace

type(namespace_t) phonon_modes_oct_m::phonon_modes_t::namespace
private

Definition at line 142 of file phonon_modes.F90.


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