59    logical               :: use_nonlocalpps
 
   60    type(ions_t), 
pointer :: ions => null()
 
   63    generic   :: 
assignment(=) => copy_to
 
   73    procedure perturbation_kdotp_constructor
 
   85    class(perturbation_kdotp_t), 
pointer    :: pert
 
   86    type(namespace_t),           
intent(in) :: namespace
 
   87    type(ions_t), 
target,        
intent(in) :: ions
 
  101    type(perturbation_kdotp_t), 
intent(out) :: this
 
  102    type(namespace_t),          
intent(in)  :: namespace
 
  103    type(ions_t), 
target,       
intent(in)  :: ions
 
  121    call parse_variable(namespace, 
'KdotPUseNonLocalPseudopotential', .
true., this%use_nonlocalpps)
 
  134    call parse_variable(namespace, 
'KdotPVelMethod', option__kdotpvelmethod__grad_vel, this%vel_method)
 
  141    type(perturbation_kdotp_t), 
intent(inout) :: this
 
  150    class(perturbation_kdotp_t), 
intent(out) :: this
 
  156    this%ions => source%ions
 
  158    this%use_nonlocalpps = source%use_nonlocalpps
 
  159    this%vel_method = source%vel_method
 
  170    if (.not. this%use_nonlocalpps) 
then 
  171      write(
message(1), 
'(a)') 
'Ignoring non-local pseudopotential term.' 
  180#include "perturbation_kdotp_inc.F90" 
  183#include "complex.F90" 
  184#include "perturbation_kdotp_inc.F90" 
Module implementing boundary conditions in Octopus.
 
This module calculates the derivatives (gradients, Laplacians, etc.) of a function.
 
This module implements the underlying real-space grid.
 
This module is intended to contain "only mathematical" functions and procedures.
 
This module defines functions over batches of mesh functions.
 
This module defines various routines, operating on mesh functions.
 
This module defines the meshes, which are used in Octopus.
 
subroutine, public messages_obsolete_variable(namespace, name, rep)
 
subroutine, public messages_info(no_lines, iunit, verbose_limit, stress, all_nodes, namespace)
 
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
 
subroutine zperturbation_kdotp_apply_order_2(this, namespace, space, gr, hm, ik, f_in, f_out)
d^2/dki dkj (-(1/2) ki kj [ri,[rj,H]]) = for i = j : 1 - [ri,[rj,Vnl]] for i != j : -(1/2) [ri,...
 
subroutine perturbation_kdotp_copy(this, source)
 
subroutine zperturbation_kdotp_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_i...
 
subroutine dperturbation_kdotp_apply_order_2(this, namespace, space, gr, hm, ik, f_in, f_out)
d^2/dki dkj (-(1/2) ki kj [ri,[rj,H]]) = for i = j : 1 - [ri,[rj,Vnl]] for i != j : -(1/2) [ri,...
 
class(perturbation_kdotp_t) function, pointer perturbation_kdotp_constructor(namespace, ions)
The factory routine (or constructor) allocates a pointer of the corresponding type and then calls the...
 
subroutine perturbation_kdotp_init(this, namespace, ions)
 
subroutine perturbation_kdotp_finalize(this)
 
subroutine perturbation_kdotp_info(this)
 
subroutine dperturbation_kdotp_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_i...
 
subroutine, public perturbation_copy(this, source)
 
This module handles spin dimensions of the states and the k-point distribution.