Octopus
perturbation_kdotp_oct_m Module Reference

Data Types

interface  perturbation_kdotp_t
 

Functions/Subroutines

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 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_kdotp_init (this, namespace, ions)
 
subroutine perturbation_kdotp_finalize (this)
 
subroutine perturbation_kdotp_copy (this, source)
 
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_in, then is removed afterward. More...
 
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,[rj,Vnl]] Ref: Eq. 3 from M Cardona and FH Pollak, Phys. Rev. 142, 530-543 (1966) Except everything is times minus one, since our kdotp perturbation is d/d(ik) More...
 
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_in, then is removed afterward. More...
 
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,[rj,Vnl]] Ref: Eq. 3 from M Cardona and FH Pollak, Phys. Rev. 142, 530-543 (1966) Except everything is times minus one, since our kdotp perturbation is d/d(ik) More...
 

Function/Subroutine Documentation

◆ perturbation_kdotp_constructor()

class(perturbation_kdotp_t) function, pointer perturbation_kdotp_oct_m::perturbation_kdotp_constructor ( type(namespace_t), intent(in)  namespace,
type(ions_t), intent(in), target  ions 
)
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 177 of file perturbation_kdotp.F90.

◆ perturbation_kdotp_init()

subroutine perturbation_kdotp_oct_m::perturbation_kdotp_init ( type(perturbation_kdotp_t), intent(out)  this,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(in), target  ions 
)
private

Definition at line 193 of file perturbation_kdotp.F90.

◆ perturbation_kdotp_finalize()

subroutine perturbation_kdotp_oct_m::perturbation_kdotp_finalize ( type(perturbation_kdotp_t), intent(inout)  this)
private

Definition at line 233 of file perturbation_kdotp.F90.

◆ perturbation_kdotp_copy()

subroutine perturbation_kdotp_oct_m::perturbation_kdotp_copy ( class(perturbation_kdotp_t), intent(out)  this,
class(perturbation_kdotp_t), intent(in)  source 
)
private

Definition at line 242 of file perturbation_kdotp.F90.

◆ perturbation_kdotp_info()

subroutine perturbation_kdotp_oct_m::perturbation_kdotp_info ( class(perturbation_kdotp_t), intent(in)  this)
private

Definition at line 258 of file perturbation_kdotp.F90.

◆ dperturbation_kdotp_apply()

subroutine perturbation_kdotp_oct_m::dperturbation_kdotp_apply ( class(perturbation_kdotp_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(in)  hm,
integer, intent(in)  ik,
real(real64), dimension(:, :), intent(in), contiguous  f_in,
real(real64), dimension(:, :), intent(out), contiguous  f_out,
logical, intent(in), optional  set_bc 
)
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 342 of file perturbation_kdotp.F90.

◆ dperturbation_kdotp_apply_order_2()

subroutine perturbation_kdotp_oct_m::dperturbation_kdotp_apply_order_2 ( class(perturbation_kdotp_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(in)  hm,
integer, intent(in)  ik,
real(real64), dimension(:, :), intent(in), contiguous  f_in,
real(real64), dimension(:, :), intent(out), contiguous  f_out 
)
private

d^2/dki dkj (-(1/2) ki kj [ri,[rj,H]]) = for i = j : 1 - [ri,[rj,Vnl]] for i != j : -(1/2) [ri,[rj,Vnl]] Ref: Eq. 3 from M Cardona and FH Pollak, Phys. Rev. 142, 530-543 (1966) Except everything is times minus one, since our kdotp perturbation is d/d(ik)

Definition at line 455 of file perturbation_kdotp.F90.

◆ zperturbation_kdotp_apply()

subroutine perturbation_kdotp_oct_m::zperturbation_kdotp_apply ( class(perturbation_kdotp_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(in)  hm,
integer, intent(in)  ik,
complex(real64), dimension(:, :), intent(in), contiguous  f_in,
complex(real64), dimension(:, :), intent(out), contiguous  f_out,
logical, intent(in), optional  set_bc 
)
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 634 of file perturbation_kdotp.F90.

◆ zperturbation_kdotp_apply_order_2()

subroutine perturbation_kdotp_oct_m::zperturbation_kdotp_apply_order_2 ( class(perturbation_kdotp_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(in)  hm,
integer, intent(in)  ik,
complex(real64), dimension(:, :), intent(in), contiguous  f_in,
complex(real64), dimension(:, :), intent(out), contiguous  f_out 
)
private

d^2/dki dkj (-(1/2) ki kj [ri,[rj,H]]) = for i = j : 1 - [ri,[rj,Vnl]] for i != j : -(1/2) [ri,[rj,Vnl]] Ref: Eq. 3 from M Cardona and FH Pollak, Phys. Rev. 142, 530-543 (1966) Except everything is times minus one, since our kdotp perturbation is d/d(ik)

Definition at line 747 of file perturbation_kdotp.F90.