Octopus
perturbation_oct_m Module Reference

Data Types

interface  dperturbation_apply
 
interface  dperturbation_apply_order_2
 
interface  perturbation_info
 
type  perturbation_t
 
interface  zperturbation_apply
 
interface  zperturbation_apply_order_2
 

Functions/Subroutines

subroutine, public perturbation_copy (this, source)
 
subroutine perturbation_setup_dir (this, dir, dir2)
 
subroutine perturbation_apply_batch (this, namespace, space, gr, hm, f_in, f_out)
 
subroutine dperturbation_expectation_density (this, namespace, space, gr, hm, st, psia, psib, density, perturbation_order)
 This routine includes occupations for psib if perturbation_order == 2, correct if used as \( <\psi(0)|H(2)|\psi(0)> \). It does not include occupations if perturbation_order == 1, correct if used as <psi(0)|H(1)|psi(1)> since the LR wavefunctions include the occupation. This routine must be modified if used differently than these two ways. More...
 
real(real64) function dperturbation_expectation_value (this, namespace, space, gr, hm, st, psia, psib, perturbation_order)
 
real(real64) function dperturbation_states_elec_expectation_value (this, namespace, space, gr, hm, st, perturbation_order)
 
subroutine zperturbation_expectation_density (this, namespace, space, gr, hm, st, psia, psib, density, perturbation_order)
 This routine includes occupations for psib if perturbation_order == 2, correct if used as \( <\psi(0)|H(2)|\psi(0)> \). It does not include occupations if perturbation_order == 1, correct if used as <psi(0)|H(1)|psi(1)> since the LR wavefunctions include the occupation. This routine must be modified if used differently than these two ways. More...
 
complex(real64) function zperturbation_expectation_value (this, namespace, space, gr, hm, st, psia, psib, perturbation_order)
 
complex(real64) function zperturbation_states_elec_expectation_value (this, namespace, space, gr, hm, st, perturbation_order)
 

Function/Subroutine Documentation

◆ perturbation_copy()

subroutine, public perturbation_oct_m::perturbation_copy ( class(perturbation_t), intent(out)  this,
class(perturbation_t), intent(in)  source 
)

Definition at line 253 of file perturbation.F90.

◆ perturbation_setup_dir()

subroutine perturbation_oct_m::perturbation_setup_dir ( class(perturbation_t), intent(inout)  this,
integer, intent(in)  dir,
integer, intent(in), optional  dir2 
)
private

Definition at line 266 of file perturbation.F90.

◆ perturbation_apply_batch()

subroutine perturbation_oct_m::perturbation_apply_batch ( class(perturbation_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,
type(wfs_elec_t), intent(in)  f_in,
type(wfs_elec_t), intent(inout)  f_out 
)
private

Definition at line 280 of file perturbation.F90.

◆ dperturbation_expectation_density()

subroutine perturbation_oct_m::dperturbation_expectation_density ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psia,
real(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psib,
real(real64), dimension(:), intent(out), contiguous  density,
integer, intent(in), optional  perturbation_order 
)
private

This routine includes occupations for psib if perturbation_order == 2, correct if used as \( <\psi(0)|H(2)|\psi(0)> \). It does not include occupations if perturbation_order == 1, correct if used as <psi(0)|H(1)|psi(1)> since the LR wavefunctions include the occupation. This routine must be modified if used differently than these two ways.

Definition at line 404 of file perturbation.F90.

◆ dperturbation_expectation_value()

real(real64) function perturbation_oct_m::dperturbation_expectation_value ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psia,
real(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psib,
integer, intent(in), optional  perturbation_order 
)
private

Definition at line 454 of file perturbation.F90.

◆ dperturbation_states_elec_expectation_value()

real(real64) function perturbation_oct_m::dperturbation_states_elec_expectation_value ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
integer, intent(in), optional  perturbation_order 
)
private

Definition at line 492 of file perturbation.F90.

◆ zperturbation_expectation_density()

subroutine perturbation_oct_m::zperturbation_expectation_density ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
complex(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psia,
complex(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psib,
complex(real64), dimension(:), intent(out), contiguous  density,
integer, intent(in), optional  perturbation_order 
)
private

This routine includes occupations for psib if perturbation_order == 2, correct if used as \( <\psi(0)|H(2)|\psi(0)> \). It does not include occupations if perturbation_order == 1, correct if used as <psi(0)|H(1)|psi(1)> since the LR wavefunctions include the occupation. This routine must be modified if used differently than these two ways.

Definition at line 626 of file perturbation.F90.

◆ zperturbation_expectation_value()

complex(real64) function perturbation_oct_m::zperturbation_expectation_value ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
complex(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psia,
complex(real64), dimension(:, :, :, st%d%kpt%start:), intent(in), contiguous  psib,
integer, intent(in), optional  perturbation_order 
)
private

Definition at line 676 of file perturbation.F90.

◆ zperturbation_states_elec_expectation_value()

complex(real64) function perturbation_oct_m::zperturbation_states_elec_expectation_value ( class(perturbation_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,
type(states_elec_t), intent(in)  st,
integer, intent(in), optional  perturbation_order 
)
private

Definition at line 714 of file perturbation.F90.