Octopus
forces_oct_m Module Reference

Functions/Subroutines

subroutine, public total_force_calculate (space, gr, ions, ep, st, kpoints, x, lda_u)
 This computes the total forces on the ions created by the electrons (it excludes the force due to possible time-dependent external fields). More...
 
subroutine, public forces_costate_calculate (gr, namespace, ions, hm, psi, chi, ff, qq)
 
subroutine, public forces_calculate (gr, namespace, ions, hm, ext_partners, st, ks, vhxc_old, t, dt)
 
subroutine forces_set_total_to_zero (ions, force)
 
subroutine forces_compute_total_torque (ions, total_torque)
 Computes the total torque acting on the system. More...
 
subroutine, public forces_write_info (iunit, ions, dir, namespace)
 
subroutine forces_from_nlcc (mesh, ions, spin_channels, vxc, force_nlcc)
 
subroutine forces_from_scf (mesh, ions, spin_channels, vhxc, vhxc_old, force_scf)
 
subroutine total_force_from_local_potential (mesh, space, vpsl, gdensity, force)
 
subroutine dforces_gather (ions, force)
 
subroutine dforces_from_local_potential (mesh, namespace, ions, ep, gdensity, force)
 
subroutine, public dforces_from_potential (gr, namespace, space, ions, hm, st, force, force_loc, force_nl, force_u)
 Ref: Kikuji Hirose, Tomoya Ono, Yoshitaka Fujimoto, and Shigeru Tsukamoto, First-principles calculations in real-space formalism: Electronic configurations and transport properties of nanostructures, Imperial College Press (2005) Section 1.6, page 12. More...
 
subroutine dtotal_force_from_potential (space, gr, ions, ep, st, kpoints, x, lda_u_level)
 
subroutine, public dforces_derivative (gr, namespace, space, ions, ep, st, kpoints, lr, lr2, force_deriv, lda_u_level)
 
subroutine, public dforces_born_charges (gr, namespace, space, ions, ep, st, kpoints, lr, lr2, born_charges, lda_u_level)
 lr, lr2 are wfns from electric perturbation; lr is for +omega, lr2 is for -omega. for each atom, Z*(i,j) = dF(j)/dE(i) More...
 
subroutine zforces_gather (ions, force)
 
subroutine zforces_from_local_potential (mesh, namespace, ions, ep, gdensity, force)
 
subroutine, public zforces_from_potential (gr, namespace, space, ions, hm, st, force, force_loc, force_nl, force_u)
 Ref: Kikuji Hirose, Tomoya Ono, Yoshitaka Fujimoto, and Shigeru Tsukamoto, First-principles calculations in real-space formalism: Electronic configurations and transport properties of nanostructures, Imperial College Press (2005) Section 1.6, page 12. More...
 
subroutine ztotal_force_from_potential (space, gr, ions, ep, st, kpoints, x, lda_u_level)
 
subroutine, public zforces_derivative (gr, namespace, space, ions, ep, st, kpoints, lr, lr2, force_deriv, lda_u_level)
 
subroutine, public zforces_born_charges (gr, namespace, space, ions, ep, st, kpoints, lr, lr2, born_charges, lda_u_level)
 lr, lr2 are wfns from electric perturbation; lr is for +omega, lr2 is for -omega. for each atom, Z*(i,j) = dF(j)/dE(i) More...
 

Function/Subroutine Documentation

◆ total_force_calculate()

subroutine, public forces_oct_m::total_force_calculate ( class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:), intent(inout)  x,
integer, intent(in)  lda_u 
)

This computes the total forces on the ions created by the electrons (it excludes the force due to possible time-dependent external fields).

Definition at line 187 of file forces.F90.

◆ forces_costate_calculate()

subroutine, public forces_oct_m::forces_costate_calculate ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(inout)  ions,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  psi,
type(states_elec_t), intent(in)  chi,
real(real64), dimension(:, :), intent(inout)  ff,
real(real64), dimension(:, :), intent(in)  qq 
)

Definition at line 214 of file forces.F90.

◆ forces_calculate()

subroutine, public forces_oct_m::forces_calculate ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(inout)  ions,
type(hamiltonian_elec_t), intent(inout)  hm,
type(partner_list_t), intent(in)  ext_partners,
type(states_elec_t), intent(inout)  st,
type(v_ks_t), intent(in)  ks,
real(real64), dimension(:,:), intent(in), optional  vhxc_old,
real(real64), intent(in), optional  t,
real(real64), intent(in), optional  dt 
)

Definition at line 335 of file forces.F90.

◆ forces_set_total_to_zero()

subroutine forces_oct_m::forces_set_total_to_zero ( type(ions_t), intent(in)  ions,
real(real64), dimension(:, :), intent(inout)  force 
)
private

Definition at line 530 of file forces.F90.

◆ forces_compute_total_torque()

subroutine forces_oct_m::forces_compute_total_torque ( type(ions_t), intent(in)  ions,
real(real64), dimension(:), intent(inout)  total_torque 
)
private

Computes the total torque acting on the system.

Definition at line 553 of file forces.F90.

◆ forces_write_info()

subroutine, public forces_oct_m::forces_write_info ( integer, intent(in)  iunit,
type(ions_t), intent(in)  ions,
character(len=*), intent(in)  dir,
type(namespace_t), intent(in)  namespace 
)

Definition at line 579 of file forces.F90.

◆ forces_from_nlcc()

subroutine forces_oct_m::forces_from_nlcc ( class(mesh_t), intent(in)  mesh,
type(ions_t), intent(inout)  ions,
integer, intent(in)  spin_channels,
real(real64), dimension(:,:), intent(in)  vxc,
real(real64), dimension(:, :), intent(out), contiguous  force_nlcc 
)
private

Definition at line 638 of file forces.F90.

◆ forces_from_scf()

subroutine forces_oct_m::forces_from_scf ( class(mesh_t), intent(in)  mesh,
type(ions_t), intent(inout)  ions,
integer, intent(in)  spin_channels,
real(real64), dimension(:,:), intent(in)  vhxc,
real(real64), dimension(:,:), intent(in)  vhxc_old,
real(real64), dimension(:, :), intent(out), contiguous  force_scf 
)
private

Definition at line 688 of file forces.F90.

◆ total_force_from_local_potential()

subroutine forces_oct_m::total_force_from_local_potential ( class(mesh_t), intent(in)  mesh,
class(space_t), intent(in)  space,
real(real64), dimension(:), intent(in)  vpsl,
real(real64), dimension(:, :), intent(in)  gdensity,
real(real64), dimension(:), intent(inout)  force 
)
private

Definition at line 749 of file forces.F90.

◆ dforces_gather()

subroutine forces_oct_m::dforces_gather ( type(ions_t), intent(in)  ions,
real(real64), dimension(:, :), intent(inout), contiguous  force 
)
private

Definition at line 840 of file forces.F90.

◆ dforces_from_local_potential()

subroutine forces_oct_m::dforces_from_local_potential ( class(mesh_t), intent(in)  mesh,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
real(real64), dimension(:, :), intent(in)  gdensity,
real(real64), dimension(:, :), intent(inout)  force 
)
private

Definition at line 880 of file forces.F90.

◆ dforces_from_potential()

subroutine, public forces_oct_m::dforces_from_potential ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:, :), intent(out)  force,
real(real64), dimension(:, :), intent(out)  force_loc,
real(real64), dimension(:, :), intent(out)  force_nl,
real(real64), dimension(:, :), intent(out)  force_u 
)

Ref: Kikuji Hirose, Tomoya Ono, Yoshitaka Fujimoto, and Shigeru Tsukamoto, First-principles calculations in real-space formalism: Electronic configurations and transport properties of nanostructures, Imperial College Press (2005) Section 1.6, page 12.

Definition at line 939 of file forces.F90.

◆ dtotal_force_from_potential()

subroutine forces_oct_m::dtotal_force_from_potential ( class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:), intent(inout)  x,
integer, intent(in)  lda_u_level 
)
private

Definition at line 1128 of file forces.F90.

◆ dforces_derivative()

subroutine, public forces_oct_m::dforces_derivative ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(lr_t), intent(in)  lr,
type(lr_t), intent(in)  lr2,
complex(real64), dimension(:,:), intent(out)  force_deriv,
integer, intent(in)  lda_u_level 
)
Parameters
[out]force_deriv(spacedim, ionsnatoms)

Definition at line 1244 of file forces.F90.

◆ dforces_born_charges()

subroutine, public forces_oct_m::dforces_born_charges ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(lr_t), dimension(:), intent(in)  lr,
type(lr_t), dimension(:), intent(in)  lr2,
type(born_charges_t), intent(inout)  born_charges,
integer, intent(in)  lda_u_level 
)

lr, lr2 are wfns from electric perturbation; lr is for +omega, lr2 is for -omega. for each atom, Z*(i,j) = dF(j)/dE(i)

Parameters
[in]lr(spacedim)
[in]lr2(spacedim)

Definition at line 1381 of file forces.F90.

◆ zforces_gather()

subroutine forces_oct_m::zforces_gather ( type(ions_t), intent(in)  ions,
complex(real64), dimension(:, :), intent(inout), contiguous  force 
)
private

Definition at line 1492 of file forces.F90.

◆ zforces_from_local_potential()

subroutine forces_oct_m::zforces_from_local_potential ( class(mesh_t), intent(in)  mesh,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
complex(real64), dimension(:, :), intent(in)  gdensity,
complex(real64), dimension(:, :), intent(inout)  force 
)
private

Definition at line 1532 of file forces.F90.

◆ zforces_from_potential()

subroutine, public forces_oct_m::zforces_from_potential ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(hamiltonian_elec_t), intent(in)  hm,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:, :), intent(out)  force,
real(real64), dimension(:, :), intent(out)  force_loc,
real(real64), dimension(:, :), intent(out)  force_nl,
real(real64), dimension(:, :), intent(out)  force_u 
)

Ref: Kikuji Hirose, Tomoya Ono, Yoshitaka Fujimoto, and Shigeru Tsukamoto, First-principles calculations in real-space formalism: Electronic configurations and transport properties of nanostructures, Imperial College Press (2005) Section 1.6, page 12.

Definition at line 1591 of file forces.F90.

◆ ztotal_force_from_potential()

subroutine forces_oct_m::ztotal_force_from_potential ( class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:), intent(inout)  x,
integer, intent(in)  lda_u_level 
)
private

Definition at line 1780 of file forces.F90.

◆ zforces_derivative()

subroutine, public forces_oct_m::zforces_derivative ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(lr_t), intent(in)  lr,
type(lr_t), intent(in)  lr2,
complex(real64), dimension(:,:), intent(out)  force_deriv,
integer, intent(in)  lda_u_level 
)
Parameters
[out]force_deriv(spacedim, ionsnatoms)

Definition at line 1896 of file forces.F90.

◆ zforces_born_charges()

subroutine, public forces_oct_m::zforces_born_charges ( type(grid_t), intent(in)  gr,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(ions_t), intent(in)  ions,
type(epot_t), intent(in)  ep,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(lr_t), dimension(:), intent(in)  lr,
type(lr_t), dimension(:), intent(in)  lr2,
type(born_charges_t), intent(inout)  born_charges,
integer, intent(in)  lda_u_level 
)

lr, lr2 are wfns from electric perturbation; lr is for +omega, lr2 is for -omega. for each atom, Z*(i,j) = dF(j)/dE(i)

Parameters
[in]lr(spacedim)
[in]lr2(spacedim)

Definition at line 2040 of file forces.F90.