27 use,
intrinsic :: iso_fortran_env
60 character(len=1),
parameter :: &
61 l_notation(0:3) = (/
's',
'p',
'd',
'f' /)
63 integer,
public,
parameter :: MAX_L = 4
68 real(real64) function atomic_orbital_get_radius(species, mesh, iorb, ispin, truncation, threshold) result(radius)
69 class(species_t),
intent(in) :: species
70 type(mesh_t),
intent(in) :: mesh
71 integer,
intent(in) :: iorb, ispin
72 integer(int64),
intent(in) :: truncation
73 real(real64),
intent(in) :: threshold
77 push_sub(atomic_orbital_get_radius)
79 call species%get_iwf_ilm(iorb, ispin, ii, ll, mm)
81 if (truncation == option__aotruncation__ao_full)
then
82 radius = species%get_iwf_radius(ii, ispin, threshold)
84 radius = species%get_iwf_radius(ii, ispin)
86 if (truncation == option__aotruncation__ao_box)
then
90 radius = min(radius, minval(mesh%box%bounding_box_l(1:mesh%box%dim)-mesh%spacing(1:mesh%box%dim)*1.01_real64))
97 radius = min(radius, species%get_radius())
103 radius = max(radius,
m_two*maxval(mesh%spacing))
105 pop_sub(atomic_orbital_get_radius)
111#include "atomic_orbital_inc.F90"
114#include "complex.F90"
115#include "atomic_orbital_inc.F90"
subroutine, public zget_atomic_orbital(namespace, space, latt, pos, species, mesh, sm, ii, ll, jj, os, orbind, radius, d_dim, use_mesh, normalize)
This routine returns the atomic orbital basis – provided by the pseudopotential structure in geo.
subroutine, public dget_atomic_orbital(namespace, space, latt, pos, species, mesh, sm, ii, ll, jj, os, orbind, radius, d_dim, use_mesh, normalize)
This routine returns the atomic orbital basis – provided by the pseudopotential structure in geo.
subroutine, public zatomic_orbital_get_submesh_safe(species, submesh, ii, ll, mm, ispin, phi)
character(len=1), dimension(0:3), parameter, public l_notation
real(real64) function, public atomic_orbital_get_radius(species, mesh, iorb, ispin, truncation, threshold)
subroutine, public datomic_orbital_get_submesh(species, submesh, ii, ll, mm, ispin, phi, derivative)
subroutine, public datomic_orbital_get_submesh_safe(species, submesh, ii, ll, mm, ispin, phi)
subroutine, public zatomic_orbital_get_submesh(species, submesh, ii, ll, mm, ispin, phi, derivative)
real(real64), parameter, public m_two
This module is intended to contain "only mathematical" functions and procedures.
This module defines the meshes, which are used in Octopus.