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 175 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 317 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 353 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 428 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 475 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 504 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 619 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(in)  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(in)  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 990 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 1229 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(in)  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 1426 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(in)  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 1573 of file xc_oep_photon.F90.