![]() |
Octopus
|
This module provides a class for (classical) phonon modes. More...
This module provides a class for (classical) phonon modes.
Data Types | |
| type | phonon_modes_t |
| This class describes phonon modes, which are specified by their frequencies and eigenvectors. More... | |
Functions/Subroutines | |
| subroutine | phonon_modes_init (this, namespace, dim_space, num_atoms, periodic, masses) |
| Initialize the phonon modes. More... | |
| subroutine | phonon_modes_get_displacements (this, imode, Q, P, pos_disp_flat, vel_disp_flat) |
| get the displacements for a single mode and the respective generalized coordinates. More... | |
| subroutine | phonon_modes_sample (this, temperature, seed, pos_displacements, vel_displacements) |
| Sample initial ionic displacements and velocities from the Wigner distribution of the modes. More... | |
| subroutine | next_data_line (iunit, line, filename, namespace, eof) |
| Read the next line that is neither blank nor a # comment. More... | |
| subroutine | phonon_modes_finalize (this) |
|
private |
Initialize the phonon modes.
Read information from a file
| [in] | masses | atomic masses in AMU, in file atom order |
Definition at line 159 of file phonon_modes.F90.
|
private |
get the displacements for a single mode and the respective generalized coordinates.
| [out] | pos_disp_flat | in atomic units |
| [out] | vel_disp_flat | in atomic units |
Definition at line 394 of file phonon_modes.F90.
|
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.
| [in] | temperature | in Kelvin |
| [in] | seed | seed 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 420 of file phonon_modes.F90.
|
private |
Read the next line that is neither blank nor a # comment.
End of file is fatal, unless eof is present, in which case it is returned there.
Definition at line 493 of file phonon_modes.F90.
|
private |
Definition at line 526 of file phonon_modes.F90.