tblite
Light-weight tight-binding framework
Loading...
Searching...
No Matches
container Directory Reference

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.
 

Detailed Description

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.