29 use,
intrinsic :: iso_fortran_env
60 type(orbitalset_t),
allocatable,
public :: orbsets(:)
62 integer,
public :: norbsets = 0
63 integer,
public :: maxnorbs = 0
64 integer,
public :: max_np = 0
65 integer,
public :: size = 0
66 integer,
allocatable,
public :: global2os(:,:)
67 integer,
allocatable :: os2global(:,:)
69 integer(int64) :: truncation
70 real(real64) :: threshold = 0.01_real64
72 logical,
public :: normalize = .
true.
73 logical,
public :: use_submesh = .false.
74 logical,
public :: orthogonalization = .false.
76 character(len=256),
public :: debugdir
82 type(orbitalbasis_t),
intent(inout) :: this
83 type(namespace_t),
intent(in) :: namespace
84 integer,
intent(in) :: periodic_dim
106 call parse_variable(namespace,
'AOTruncation', option__aotruncation__ao_full, this%truncation)
120 call parse_variable(namespace,
'AOThreshold', 0.01_real64, this%threshold)
145 if (periodic_dim > 0)
then
146 call parse_variable(namespace,
'AOSubmesh', .false., this%use_submesh)
165 if (this%orthogonalization) this%normalize = .false.
167 if (this%orthogonalization .and. this%use_submesh)
then
172 write(this%debugdir,
'(a)')
'debug/ao_basis'
173 call io_mkdir(this%debugdir, namespace)
187 do ios = 1, this%norbsets
190 safe_deallocate_a(this%orbsets)
192 safe_deallocate_a(this%global2os)
193 safe_deallocate_a(this%os2global)
200#include "orbitalbasis_inc.F90"
203#include "complex.F90"
204#include "orbitalbasis_inc.F90"
Prints out to iunit a message in the form: ["InputVariable" = value] where "InputVariable" is given b...
type(debug_t), save, public debug
real(real64), parameter, public m_zero
subroutine, public io_mkdir(fname, namespace, parents)
This module is intended to contain "only mathematical" functions and procedures.
This module defines various routines, operating on mesh functions.
This module defines the meshes, which are used in Octopus.
subroutine, public messages_not_implemented(feature, namespace)
subroutine, public messages_input_error(namespace, var, details, row, column)
subroutine, public messages_experimental(name, namespace)
subroutine, public orbitalbasis_end(this)
subroutine, public zorbitalbasis_build(this, namespace, ions, mesh, kpt, ndim, skip_s_orb, use_all_orb, verbose)
This routine is an interface for constructing the orbital basis.
subroutine, public dorbitalbasis_build(this, namespace, ions, mesh, kpt, ndim, skip_s_orb, use_all_orb, verbose)
This routine is an interface for constructing the orbital basis.
subroutine, public zorbitalbasis_build_empty(this, mesh, kpt, ndim, norbsets, map_os, verbose)
This routine constructd an empty orbital basis.
subroutine, public dorbitalbasis_build_empty(this, mesh, kpt, ndim, norbsets, map_os, verbose)
This routine constructd an empty orbital basis.
subroutine, public orbitalbasis_init(this, namespace, periodic_dim)
subroutine, public orbitalset_end(this)