Octopus
xc_oep_photon_oct_m Module Reference

Data Types

type  xc_oep_photon_t
 

Functions/Subroutines

subroutine, public xc_oep_photon_init (oep, namespace, family, gr, st, mc, space)
 
subroutine, public xc_oep_photon_end (oep)
 
subroutine xc_oep_pt_phi (namespace, mesh, hm, st, is, oep, phi1)
 This file handles the evaluation of the photon-OEP potential, as described in J. Flick et al. ACS Photonics 2018, 5, 3, 992-1005. More...
 
subroutine xc_oep_pt_rhs (mesh, st, is, oep, phi1, ist, rhs)
 
subroutine xc_oep_pt_inhomog (mesh, st, is, phi1, ist, ss)
 
subroutine xc_oep_pt_uxcbar (mesh, st, is, oep, phi1, ist, vxbar)
 
subroutine dxc_kli_solve_photon (namespace, mesh, hm, st, is, oep, first)
 Solves KLI equation for photons. More...
 
subroutine, public dxc_oep_photon_calc (oep, namespace, xcs, gr, hm, st, space, ex, ec, vxc)
 This file handles the evaluation of the OEP potential, in the KLI or full OEP as described in S. Kuemmel and J. Perdew, PRL 90, 043004 (2003) More...
 
subroutine dxc_oep_solve_photon (namespace, mesh, hm, st, is, vxc, oep)
 This is the photon version of the xc_oep_solve routine. More...
 
subroutine zxc_kli_solve_photon (namespace, mesh, hm, st, is, oep, first)
 Solves KLI equation for photons. More...
 
subroutine, public zxc_oep_photon_calc (oep, namespace, xcs, gr, hm, st, space, ex, ec, vxc)
 This file handles the evaluation of the OEP potential, in the KLI or full OEP as described in S. Kuemmel and J. Perdew, PRL 90, 043004 (2003) More...
 
subroutine zxc_oep_solve_photon (namespace, mesh, hm, st, is, vxc, oep)
 This is the photon version of the xc_oep_solve routine. More...
 

Function/Subroutine Documentation

◆ xc_oep_photon_init()

subroutine, public xc_oep_photon_oct_m::xc_oep_photon_init ( type(xc_oep_photon_t), intent(inout)  oep,
type(namespace_t), intent(in)  namespace,
integer, intent(in)  family,
type(grid_t), intent(inout)  gr,
type(states_elec_t), intent(in)  st,
type(multicomm_t), intent(in)  mc,
class(space_t), intent(in)  space 
)

Definition at line 178 of file xc_oep_photon.F90.

◆ xc_oep_photon_end()

subroutine, public xc_oep_photon_oct_m::xc_oep_photon_end ( type(xc_oep_photon_t), intent(inout)  oep)

Definition at line 321 of file xc_oep_photon.F90.

◆ xc_oep_pt_phi()

subroutine xc_oep_photon_oct_m::xc_oep_pt_phi ( type(namespace_t), intent(in)  namespace,
type(mesh_t), intent(in)  mesh,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
type(xc_oep_photon_t), intent(inout)  oep,
real(real64), dimension(:,:,:), intent(inout)  phi1 
)
private

This file handles the evaluation of the photon-OEP potential, as described in J. Flick et al. ACS Photonics 2018, 5, 3, 992-1005.

Definition at line 357 of file xc_oep_photon.F90.

◆ xc_oep_pt_rhs()

subroutine xc_oep_photon_oct_m::xc_oep_pt_rhs ( type(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
type(xc_oep_photon_t), intent(inout)  oep,
real(real64), dimension(:,:,:), intent(in), contiguous  phi1,
integer, intent(in)  ist,
real(real64), dimension(:,:), intent(inout), contiguous  rhs 
)
private

Definition at line 432 of file xc_oep_photon.F90.

◆ xc_oep_pt_inhomog()

subroutine xc_oep_photon_oct_m::xc_oep_pt_inhomog ( type(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
real(real64), dimension(:,:,:), intent(in)  phi1,
integer, intent(in)  ist,
real(real64), dimension(:), intent(inout), contiguous  ss 
)
private

Definition at line 479 of file xc_oep_photon.F90.

◆ xc_oep_pt_uxcbar()

subroutine xc_oep_photon_oct_m::xc_oep_pt_uxcbar ( type(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
type(xc_oep_photon_t), intent(in)  oep,
real(real64), dimension(:,:,:), intent(in)  phi1,
integer, intent(in)  ist,
real(real64), intent(inout)  vxbar 
)
private

Definition at line 508 of file xc_oep_photon.F90.

◆ dxc_kli_solve_photon()

subroutine xc_oep_photon_oct_m::dxc_kli_solve_photon ( type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
type(xc_oep_photon_t), intent(inout)  oep,
logical, intent(in)  first 
)
private

Solves KLI equation for photons.

Definition at line 623 of file xc_oep_photon.F90.

◆ dxc_oep_photon_calc()

subroutine, public xc_oep_photon_oct_m::dxc_oep_photon_calc ( type(xc_oep_photon_t), intent(inout)  oep,
type(namespace_t), intent(in)  namespace,
type(xc_t), intent(inout)  xcs,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(inout)  hm,
type(states_elec_t), intent(inout)  st,
class(space_t), intent(in)  space,
real(real64), intent(inout)  ex,
real(real64), intent(inout)  ec,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vxc 
)

This file handles the evaluation of the OEP potential, in the KLI or full OEP as described in S. Kuemmel and J. Perdew, PRL 90, 043004 (2003)

This file has to be outside the module xc, for it requires the Hpsi. This is why it needs the xc_functl module. I prefer to put it here since the rest of the Hamiltonian module does not know about the gory details of how xc is defined and calculated.

Parameters
[in,out]vxcvxc(meshnp, stdnspin)

Definition at line 843 of file xc_oep_photon.F90.

◆ dxc_oep_solve_photon()

subroutine xc_oep_photon_oct_m::dxc_oep_solve_photon ( type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(hamiltonian_elec_t), intent(inout)  hm,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
real(real64), dimension(:), intent(inout), contiguous  vxc,
type(xc_oep_photon_t), intent(inout)  oep 
)
private

This is the photon version of the xc_oep_solve routine.

Parameters
[in,out]vxc(meshnp, given for the spin is)

Definition at line 985 of file xc_oep_photon.F90.

◆ zxc_kli_solve_photon()

subroutine xc_oep_photon_oct_m::zxc_kli_solve_photon ( type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
type(xc_oep_photon_t), intent(inout)  oep,
logical, intent(in)  first 
)
private

Solves KLI equation for photons.

Definition at line 1235 of file xc_oep_photon.F90.

◆ zxc_oep_photon_calc()

subroutine, public xc_oep_photon_oct_m::zxc_oep_photon_calc ( type(xc_oep_photon_t), intent(inout)  oep,
type(namespace_t), intent(in)  namespace,
type(xc_t), intent(inout)  xcs,
type(grid_t), intent(in)  gr,
type(hamiltonian_elec_t), intent(inout)  hm,
type(states_elec_t), intent(inout)  st,
class(space_t), intent(in)  space,
real(real64), intent(inout)  ex,
real(real64), intent(inout)  ec,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vxc 
)

This file handles the evaluation of the OEP potential, in the KLI or full OEP as described in S. Kuemmel and J. Perdew, PRL 90, 043004 (2003)

This file has to be outside the module xc, for it requires the Hpsi. This is why it needs the xc_functl module. I prefer to put it here since the rest of the Hamiltonian module does not know about the gory details of how xc is defined and calculated.

Parameters
[in,out]vxcvxc(meshnp, stdnspin)

Definition at line 1427 of file xc_oep_photon.F90.

◆ zxc_oep_solve_photon()

subroutine xc_oep_photon_oct_m::zxc_oep_solve_photon ( type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(hamiltonian_elec_t), intent(inout)  hm,
type(states_elec_t), intent(in)  st,
integer, intent(in)  is,
real(real64), dimension(:), intent(inout), contiguous  vxc,
type(xc_oep_photon_t), intent(inout)  oep 
)
private

This is the photon version of the xc_oep_solve routine.

Parameters
[in,out]vxc(meshnp, given for the spin is)

Definition at line 1569 of file xc_oep_photon.F90.