tblite
Light-weight tight-binding framework
|
Proxy module for general interaction containers.
More...Files | |
cache.f90 | |
Provides a cache for use with interaction containers. | |
list.f90 | |
Provides a collection for several interaction containers. | |
type.f90 | |
Provides an abstract base class for interaction containers. | |
Proxy module for general interaction containers.
Provides access to the abstract base class [[container_type]] for declaring a new interaction. Container extending the base class can provide (semi-)classical energy contributions, i.e. independent of the density and/or density-dependent contributions, which are included in the minimization of the electronic energy.
The [[container_type]] itself is immutable once constructed, restart data must be associated with a [[container_cache]] object. This cache object can be populated in an [[container_type:update]] procedure. The update procedure is allowed to invalidate existing caches and reallocate them as needed.
Additionally, to ease compilation of several containers in an actual calculator the [[container_list]] type is provided, which itself extends the [[container_type]] base class to provide an uniform interface.
New containers are added to the list by using the [[container_list:push_back]] procedure. Since the list owns the containers, the container object should be provided as allocatable class polymorphic [[container_type]], i.e. by transfer using the intrinsic move_alloc
procedure or by automatic LHS allocation of the polymorphic object.