40 real(real64) :: spectral_middle_point
41 real(real64) :: spectral_half_span
44 procedure(is_hermitian),
deferred :: is_hermitian
45 procedure(hamiltonian_update_span),
deferred :: update_span
46 procedure(dhamiltonian_apply),
deferred :: dapply
47 procedure(zhamiltonian_apply),
deferred :: zapply
53 class(hamiltonian_abst_t),
intent(in) :: hm
58 class(hamiltonian_abst_t),
intent(inout) :: hm
59 real(real64),
intent(in) :: delta(:)
60 real(real64),
intent(in) :: emin
61 type(namespace_t),
intent(in) :: namespace
66 class(hamiltonian_abst_t),
intent(in) :: hm
67 type(namespace_t),
intent(in) :: namespace
68 class(mesh_t),
intent(in) :: mesh
69 class(batch_t),
target,
intent(inout) :: psib
70 class(batch_t),
target,
intent(inout) :: hpsib
71 integer,
optional,
intent(in) :: terms
72 logical,
optional,
intent(in) :: set_bc
77 class(hamiltonian_abst_t),
intent(in) :: hm
78 type(namespace_t),
intent(in) :: namespace
79 class(mesh_t),
intent(in) :: mesh
80 class(batch_t),
target,
intent(inout) :: psib
81 class(batch_t),
target,
intent(inout) :: hpsib
82 integer,
optional,
intent(in) :: terms
83 logical,
optional,
intent(in) :: set_bc
This module implements batches of mesh functions.
This module defines an abstract class for Hamiltonians.
This module defines the meshes, which are used in Octopus.
The abstract Hamiltonian class defines a skeleton for specific implementations.