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 176 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 319 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 355 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 430 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 477 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 506 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 621 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 841 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 982 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 1232 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 1424 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 1565 of file xc_oep_photon.F90.