Octopus
xc_ks_inversion_oct_m Module Reference

Data Types

type  xc_ks_inversion_t
 

Functions/Subroutines

subroutine, public xc_ks_inversion_init (ks_inv, namespace, gr, ions, st, xc, mc, space, kpoints)
 
subroutine, public xc_ks_inversion_end (ks_inv)
 
subroutine, public xc_ks_inversion_write_info (ks_inversion, iunit, namespace)
 
subroutine, public invertks_2part (ks_inv, target_rho, nspin, aux_hm, gr, st, eigensolver, namespace, space, ext_partners)
 Given a density, it performs the Kohn-Sham inversion, assuming a two-particle, one orbital case. More...
 
subroutine, public invertks_update_hamiltonian (namespace, gr, space, ext_partners, eigensolver, st, hm, max_iter)
 A small auxiliary function to perform the update of the Hamiltonian, run the eigensolver, and get the density. More...
 
subroutine, public invertks_iter (ks_inv, target_rho, namespace, space, ext_partners, nspin, aux_hm, gr, st, eigensolver)
 Iterative inversion of KS potential from the density. More...
 
subroutine, public xc_ks_inversion_calc (ks_inversion, namespace, space, gr, hm, ext_partners, st, vxc, time)
 

Variables

integer, parameter, public xc_inv_method_two_particle = 1
 KS inversion methods/algorithms. More...
 
integer, parameter, public xc_inv_method_vs_iter = 2
 
integer, parameter, public xc_inv_method_iter_stella = 3
 
integer, parameter, public xc_inv_method_iter_godby = 4
 
integer, parameter, public xc_ks_inversion_none = 1
 the KS inversion levels More...
 
integer, parameter, public xc_ks_inversion_adiabatic = 2
 
integer, parameter, public xc_ks_inversion_td_exact = 3
 
integer, parameter, public xc_asymptotics_none = 1
 asymptotic correction for v_xc More...
 
integer, parameter, public xc_asymptotics_sc = 2
 
integer, parameter xc_flags_none = 0
 

Function/Subroutine Documentation

◆ xc_ks_inversion_init()

subroutine, public xc_ks_inversion_oct_m::xc_ks_inversion_init ( type(xc_ks_inversion_t), intent(inout)  ks_inv,
type(namespace_t), intent(in)  namespace,
type(grid_t), intent(inout)  gr,
type(ions_t), intent(inout)  ions,
type(states_elec_t), intent(in)  st,
type(xc_t), intent(in)  xc,
type(multicomm_t), intent(in)  mc,
class(space_t), intent(in)  space,
type(kpoints_t), intent(in)  kpoints 
)

Definition at line 201 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_end()

subroutine, public xc_ks_inversion_oct_m::xc_ks_inversion_end ( type(xc_ks_inversion_t), intent(inout)  ks_inv)

Definition at line 313 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_write_info()

subroutine, public xc_ks_inversion_oct_m::xc_ks_inversion_write_info ( type(xc_ks_inversion_t), intent(in)  ks_inversion,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Definition at line 341 of file xc_ks_inversion.F90.

◆ invertks_2part()

subroutine, public xc_ks_inversion_oct_m::invertks_2part ( type(xc_ks_inversion_t), intent(in)  ks_inv,
real(real64), dimension(:,:), intent(in)  target_rho,
integer, intent(in)  nspin,
type(hamiltonian_elec_t), intent(inout)  aux_hm,
type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(eigensolver_t), intent(inout)  eigensolver,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(partner_list_t), intent(in)  ext_partners 
)

Given a density, it performs the Kohn-Sham inversion, assuming a two-particle, one orbital case.

specific routine for 2 particles - this is analytical, no need for iterative scheme

This expression is only valid for the adiabatic case

Parameters
[in]target_rho(1:grmeshnp, 1:nspin)

Definition at line 362 of file xc_ks_inversion.F90.

◆ invertks_update_hamiltonian()

subroutine, public xc_ks_inversion_oct_m::invertks_update_hamiltonian ( type(namespace_t), intent(in)  namespace,
type(grid_t), intent(in)  gr,
class(space_t), intent(in)  space,
type(partner_list_t), intent(in)  ext_partners,
type(eigensolver_t), intent(inout)  eigensolver,
type(states_elec_t), intent(inout)  st,
type(hamiltonian_elec_t), intent(inout)  hm,
integer, intent(in)  max_iter 
)

A small auxiliary function to perform the update of the Hamiltonian, run the eigensolver, and get the density.

Definition at line 567 of file xc_ks_inversion.F90.

◆ invertks_iter()

subroutine, public xc_ks_inversion_oct_m::invertks_iter ( type(xc_ks_inversion_t), intent(in)  ks_inv,
real(real64), dimension(:,:), intent(in)  target_rho,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(partner_list_t), intent(in)  ext_partners,
integer, intent(in)  nspin,
type(hamiltonian_elec_t), intent(inout)  aux_hm,
type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(eigensolver_t), intent(inout)  eigensolver 
)

Iterative inversion of KS potential from the density.

Here states are used to iterate KS solution and update of the VHXC potential, then new calculation of rho.

Parameters
[in]target_rho(1:grmeshnp, 1:nspin)

Definition at line 642 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_calc()

subroutine, public xc_ks_inversion_oct_m::xc_ks_inversion_calc ( type(xc_ks_inversion_t), intent(inout)  ks_inversion,
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(partner_list_t), intent(in)  ext_partners,
type(states_elec_t), intent(inout)  st,
real(real64), dimension(:,:), intent(inout)  vxc,
real(real64), intent(in), optional  time 
)
Parameters
[in,out]vxcvxc(grnp, stdnspin)

Definition at line 957 of file xc_ks_inversion.F90.

Variable Documentation

◆ xc_inv_method_two_particle

integer, parameter, public xc_ks_inversion_oct_m::xc_inv_method_two_particle = 1

KS inversion methods/algorithms.

Definition at line 161 of file xc_ks_inversion.F90.

◆ xc_inv_method_vs_iter

integer, parameter, public xc_ks_inversion_oct_m::xc_inv_method_vs_iter = 2

Definition at line 161 of file xc_ks_inversion.F90.

◆ xc_inv_method_iter_stella

integer, parameter, public xc_ks_inversion_oct_m::xc_inv_method_iter_stella = 3

Definition at line 161 of file xc_ks_inversion.F90.

◆ xc_inv_method_iter_godby

integer, parameter, public xc_ks_inversion_oct_m::xc_inv_method_iter_godby = 4

Definition at line 161 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_none

integer, parameter, public xc_ks_inversion_oct_m::xc_ks_inversion_none = 1

the KS inversion levels

Definition at line 168 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_adiabatic

integer, parameter, public xc_ks_inversion_oct_m::xc_ks_inversion_adiabatic = 2

Definition at line 168 of file xc_ks_inversion.F90.

◆ xc_ks_inversion_td_exact

integer, parameter, public xc_ks_inversion_oct_m::xc_ks_inversion_td_exact = 3

Definition at line 168 of file xc_ks_inversion.F90.

◆ xc_asymptotics_none

integer, parameter, public xc_ks_inversion_oct_m::xc_asymptotics_none = 1

asymptotic correction for v_xc

Definition at line 174 of file xc_ks_inversion.F90.

◆ xc_asymptotics_sc

integer, parameter, public xc_ks_inversion_oct_m::xc_asymptotics_sc = 2

Definition at line 174 of file xc_ks_inversion.F90.

◆ xc_flags_none

integer, parameter xc_ks_inversion_oct_m::xc_flags_none = 0
private

Definition at line 178 of file xc_ks_inversion.F90.