|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Base class for Hamiltonian. More...
#include <hamilt_base.h>
Public Member Functions | |
| virtual | ~HamiltBase () |
| virtual void | updateHk (const int ik) |
| Update Hamiltonian for a specific k-point. | |
| virtual void | refresh (bool yes=true) |
| Refresh the status of Hamiltonian. | |
| virtual std::string | get_classname () const |
| Get the class name. | |
| virtual void * | get_ops () |
| Get the operator chain (as void* to avoid template) | |
Base class for Hamiltonian.
This is a non-template base class for Hamilt<T, Device>. It provides a common interface for all Hamiltonian types, allowing ESolver to manage Hamiltonian without template parameters.
|
inlinevirtual |
|
inlinevirtual |
Get the class name.
Reimplemented in hamilt::Hamilt< T, Device >, hamilt::Hamilt< double >, hamilt::Hamilt< float >, hamilt::Hamilt< std::complex< double > >, hamilt::Hamilt< std::complex< double >, base_device::DEVICE_CPU >, hamilt::Hamilt< std::complex< float > >, hamilt::Hamilt< std::complex< FPTYPE >, Device >, hamilt::Hamilt< std::complex< lowTYPE >, Device >, hamilt::Hamilt< T, base_device::DEVICE_CPU >, and hamilt::Hamilt< TK >.
|
inlinevirtual |
Get the operator chain (as void* to avoid template)
Reimplemented in hamilt::Hamilt< T, Device >, hamilt::Hamilt< double >, hamilt::Hamilt< float >, hamilt::Hamilt< std::complex< double > >, hamilt::Hamilt< std::complex< double >, base_device::DEVICE_CPU >, hamilt::Hamilt< std::complex< float > >, hamilt::Hamilt< std::complex< FPTYPE >, Device >, hamilt::Hamilt< std::complex< lowTYPE >, Device >, hamilt::Hamilt< T, base_device::DEVICE_CPU >, and hamilt::Hamilt< TK >.
|
inlinevirtual |
Refresh the status of Hamiltonian.
| yes | whether to refresh |
Reimplemented in hamilt::HamiltLCAO< TK, TR >, hamilt::Hamilt< T, Device >, hamilt::Hamilt< double >, hamilt::Hamilt< float >, hamilt::Hamilt< std::complex< double > >, hamilt::Hamilt< std::complex< double >, base_device::DEVICE_CPU >, hamilt::Hamilt< std::complex< float > >, hamilt::Hamilt< std::complex< FPTYPE >, Device >, hamilt::Hamilt< std::complex< lowTYPE >, Device >, hamilt::Hamilt< T, base_device::DEVICE_CPU >, and hamilt::Hamilt< TK >.
|
inlinevirtual |
Update Hamiltonian for a specific k-point.
| ik | k-point index |
Reimplemented in HamiltTEST< T >, HamiltTEST< T >, HamiltTEST< T >, hamilt::HamiltPW< T, Device >, hamilt::HamiltPW< std::complex< double >, base_device::DEVICE_CPU >, hamilt::HamiltPW< std::complex< FPTYPE >, Device >, hamilt::HamiltPW< std::complex< lowTYPE >, Device >, hamilt::HamiltPW< T, base_device::DEVICE_CPU >, hamilt::HamiltPW< T, Device >, hamilt::HamiltPW< std::complex< double >, base_device::DEVICE_CPU >, hamilt::HamiltPW< std::complex< FPTYPE >, Device >, hamilt::HamiltPW< std::complex< lowTYPE >, Device >, hamilt::HamiltPW< T, base_device::DEVICE_CPU >, hamilt::HamiltPW< T, Device >, hamilt::HamiltPW< std::complex< double >, base_device::DEVICE_CPU >, hamilt::HamiltPW< std::complex< FPTYPE >, Device >, hamilt::HamiltPW< std::complex< lowTYPE >, Device >, hamilt::HamiltPW< T, base_device::DEVICE_CPU >, hamilt::Hamilt< T, Device >, hamilt::Hamilt< double >, hamilt::Hamilt< float >, hamilt::Hamilt< std::complex< double > >, hamilt::Hamilt< std::complex< double >, base_device::DEVICE_CPU >, hamilt::Hamilt< std::complex< float > >, hamilt::Hamilt< std::complex< FPTYPE >, Device >, hamilt::Hamilt< std::complex< lowTYPE >, Device >, hamilt::Hamilt< T, base_device::DEVICE_CPU >, hamilt::Hamilt< TK >, hamilt::HamiltLCAO< TK, TR >, hamilt::HamiltPW< T, Device >, hamilt::HamiltPW< std::complex< double >, base_device::DEVICE_CPU >, hamilt::HamiltPW< std::complex< FPTYPE >, Device >, hamilt::HamiltPW< std::complex< lowTYPE >, Device >, and hamilt::HamiltPW< T, base_device::DEVICE_CPU >.