votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::LatticeModel Class Reference

Surrogate lattice model of a hopping system, written as an ordinary XTP topology (segments with one pseudo atom each, a periodic box and a neighbour list with couplings), so that every transport method in XTP can be run and cross-checked on it. More...

#include <latticemodel.h>

Collaboration diagram for votca::xtp::LatticeModel:

Classes

struct  Options
class  NormalGenerator

Public Types

enum class  Disorder { None , Uncorrelated , Correlated }

Public Member Functions

 LatticeModel (const Options &opt)
void BuildTopology (Topology &top) const
 Fill an empty topology with segments, box and neighbour list.
const std::vector< double > & SiteEnergies () const
 Site energies in segment order.
const std::vector< Eigen::Vector3d > & Positions () const
 Positions in segment order.
Index NumberOfSites () const

Static Public Member Functions

static Disorder DisorderFromString (const std::string &name)

Private Member Functions

Eigen::Vector3d ShortestConnection (const Eigen::Vector3d &r1, const Eigen::Vector3d &r2) const
void GenerateEnergies ()
std::vector< std::vector< Index > > NearestNeighbours (Index l) const
 indices of the l nearest other sites of every site, ties broken by index
std::vector< std::pair< double, std::array< Index, 3 > > > Offsets (double radius) const
Index SiteIndex (Index ix, Index iy, Index iz) const
 site index of lattice coordinates (taken modulo the dimensions)

Private Attributes

Options opt_
Eigen::Matrix3d box_
std::vector< Eigen::Vector3d > positions_
std::vector< double > energies_

Detailed Description

Surrogate lattice model of a hopping system, written as an ordinary XTP topology (segments with one pseudo atom each, a periodic box and a neighbour list with couplings), so that every transport method in XTP can be run and cross-checked on it.

Follows the setup of Chen, van der Hoorn, Baumeier, arXiv:2405.15836: simple cubic lattice with spacing a, sites at (i+1/2)a, periodic in all three directions (a time-of-flight calculation cuts one of them), pairs for |r| < cutoff, |J|^2 = J0^2 exp(-(|r|-a)/decay), one reorganization energy for all pairs, and Gaussian site energies without or with spatial correlation (moving-average construction of Baumeier et al., PRB 86, 184202 (2012); eq. 2.5 of the paper excludes the site itself from the averages, see Options::include_self).

All quantities are in atomic units (bohr, Hartree).

Definition at line 55 of file latticemodel.h.

Member Enumeration Documentation

◆ Disorder

Enumerator
None 
Uncorrelated 
Correlated 

Definition at line 57 of file latticemodel.h.

Constructor & Destructor Documentation

◆ LatticeModel()

votca::xtp::LatticeModel::LatticeModel ( const Options & opt)
explicit

Definition at line 70 of file latticemodel.cc.

Member Function Documentation

◆ BuildTopology()

void votca::xtp::LatticeModel::BuildTopology ( Topology & top) const

Fill an empty topology with segments, box and neighbour list.

Definition at line 262 of file latticemodel.cc.

◆ DisorderFromString()

LatticeModel::Disorder votca::xtp::LatticeModel::DisorderFromString ( const std::string & name)
static

Definition at line 57 of file latticemodel.cc.

◆ GenerateEnergies()

void votca::xtp::LatticeModel::GenerateEnergies ( )
private

Definition at line 200 of file latticemodel.cc.

◆ NearestNeighbours()

std::vector< std::vector< Index > > votca::xtp::LatticeModel::NearestNeighbours ( Index l) const
private

indices of the l nearest other sites of every site, ties broken by index

Definition at line 143 of file latticemodel.cc.

◆ NumberOfSites()

Index votca::xtp::LatticeModel::NumberOfSites ( ) const
inline

Definition at line 94 of file latticemodel.h.

◆ Offsets()

std::vector< std::pair< double, std::array< Index, 3 > > > votca::xtp::LatticeModel::Offsets ( double radius) const
private

lattice offsets (in units of a, reduced to the box) of all other sites within radius of a site, with their distances; by translation symmetry the same for every site, so neighbour searches cost O(n) instead of O(n^2)

Definition at line 121 of file latticemodel.cc.

◆ Positions()

const std::vector< Eigen::Vector3d > & votca::xtp::LatticeModel::Positions ( ) const
inline

Positions in segment order.

Definition at line 92 of file latticemodel.h.

◆ ShortestConnection()

Eigen::Vector3d votca::xtp::LatticeModel::ShortestConnection ( const Eigen::Vector3d & r1,
const Eigen::Vector3d & r2 ) const
private

Definition at line 107 of file latticemodel.cc.

◆ SiteEnergies()

const std::vector< double > & votca::xtp::LatticeModel::SiteEnergies ( ) const
inline

Site energies in segment order.

Definition at line 89 of file latticemodel.h.

◆ SiteIndex()

Index votca::xtp::LatticeModel::SiteIndex ( Index ix,
Index iy,
Index iz ) const
private

site index of lattice coordinates (taken modulo the dimensions)

Definition at line 114 of file latticemodel.cc.

Member Data Documentation

◆ box_

Eigen::Matrix3d votca::xtp::LatticeModel::box_
private

Definition at line 115 of file latticemodel.h.

◆ energies_

std::vector<double> votca::xtp::LatticeModel::energies_
private

Definition at line 117 of file latticemodel.h.

◆ opt_

Options votca::xtp::LatticeModel::opt_
private

Definition at line 114 of file latticemodel.h.

◆ positions_

std::vector<Eigen::Vector3d> votca::xtp::LatticeModel::positions_
private

Definition at line 116 of file latticemodel.h.


The documentation for this class was generated from the following files: