![]()  | 
  
    Octopus
    
   | 
 
Data Types | |
| interface | perturbation_ionic_t | 
Functions/Subroutines | |
| class(perturbation_ionic_t) function, pointer | perturbation_ionic_constructor (namespace, ions) | 
| The factory routine (or constructor) allocates a pointer of the corresponding type and then calls the init routine which is a type-bound procedure of the corresponding type. With this design, also derived classes can use the init routine of the parent class.  More... | |
| subroutine | perturbation_ionic_init (this, namespace, ions) | 
| subroutine | perturbation_ionic_copy (this, source) | 
| subroutine | perturbation_ionic_finalize (this) | 
| subroutine | perturbation_ionic_info (this) | 
| subroutine | perturbation_ionic_setup_dir (this, dir, dir2) | 
| subroutine | perturbation_ionic_setup_atom (this, iatom, iatom2) | 
| subroutine | perturbation_ionic_setup_mixed_dir (this, iatom, idir, val, jatom, jdir, valuej) | 
| subroutine | dperturbation_ionic_apply (this, namespace, space, gr, hm, ik, f_in, f_out, set_bc) | 
| Returns f_out = H' f_in, where H' is perturbation Hamiltonian Note that e^ikr phase is applied to f_in, then is removed afterward.  More... | |
| subroutine | dionic_perturbation (gr, namespace, ions, hm, ik, f_in, f_out, iatom, idir) | 
| subroutine | dperturbation_ionic_apply_order_2 (this, namespace, space, gr, hm, ik, f_in, f_out) | 
| subroutine | dionic_perturbation_order_2 (gr, namespace, ions, hm, ik, f_in, f_out, iatom, idir, jdir) | 
| subroutine, public | dionic_pert_matrix_elements_2 (gr, namespace, space, ions, hm, ik, st, vib, matrix) | 
| Computes the second order term.  More... | |
| subroutine | zperturbation_ionic_apply (this, namespace, space, gr, hm, ik, f_in, f_out, set_bc) | 
| Returns f_out = H' f_in, where H' is perturbation Hamiltonian Note that e^ikr phase is applied to f_in, then is removed afterward.  More... | |
| subroutine | zionic_perturbation (gr, namespace, ions, hm, ik, f_in, f_out, iatom, idir) | 
| subroutine | zperturbation_ionic_apply_order_2 (this, namespace, space, gr, hm, ik, f_in, f_out) | 
| subroutine | zionic_perturbation_order_2 (gr, namespace, ions, hm, ik, f_in, f_out, iatom, idir, jdir) | 
| subroutine, public | zionic_pert_matrix_elements_2 (gr, namespace, space, ions, hm, ik, st, vib, matrix) | 
| Computes the second order term.  More... | |
      
  | 
  private | 
The factory routine (or constructor) allocates a pointer of the corresponding type and then calls the init routine which is a type-bound procedure of the corresponding type. With this design, also derived classes can use the init routine of the parent class.
Definition at line 192 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 208 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 231 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 254 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 266 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 275 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 297 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 319 of file perturbation_ionic.F90.
      
  | 
  private | 
Returns f_out = H' f_in, where H' is perturbation Hamiltonian Note that e^ikr phase is applied to f_in, then is removed afterward.
Definition at line 420 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 491 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 554 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 624 of file perturbation_ionic.F90.
| subroutine, public perturbation_ionic_oct_m::dionic_pert_matrix_elements_2 | ( | type(grid_t), intent(in) | gr, | 
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(ions_t), intent(in) | ions, | ||
| type(hamiltonian_elec_t), intent(in) | hm, | ||
| integer, intent(in) | ik, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(vibrations_t), intent(in) | vib, | ||
| real(real64), dimension(:, :), intent(inout) | matrix | ||
| ) | 
Computes the second order term.
\[-<\psi_0 | v^{(2)} | \psi_0>\]
entering in the dynamical matrix
The actual formula used is given in Andrade et al.. PCCP 17, 31371 (2014), see Eq. 58
| [in,out] | matrix | this is an expectation value of a Hermitian operator | 
Definition at line 707 of file perturbation_ionic.F90.
      
  | 
  private | 
Returns f_out = H' f_in, where H' is perturbation Hamiltonian Note that e^ikr phase is applied to f_in, then is removed afterward.
Definition at line 891 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 962 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 1025 of file perturbation_ionic.F90.
      
  | 
  private | 
Definition at line 1095 of file perturbation_ionic.F90.
| subroutine, public perturbation_ionic_oct_m::zionic_pert_matrix_elements_2 | ( | type(grid_t), intent(in) | gr, | 
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(ions_t), intent(in) | ions, | ||
| type(hamiltonian_elec_t), intent(in) | hm, | ||
| integer, intent(in) | ik, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(vibrations_t), intent(in) | vib, | ||
| real(real64), dimension(:, :), intent(inout) | matrix | ||
| ) | 
Computes the second order term.
\[-<\psi_0 | v^{(2)} | \psi_0>\]
entering in the dynamical matrix
The actual formula used is given in Andrade et al.. PCCP 17, 31371 (2014), see Eq. 58
| [in,out] | matrix | this is an expectation value of a Hermitian operator | 
Definition at line 1178 of file perturbation_ionic.F90.