Go to the documentation of this file.
   18 namespace LatticeModelFactory {
 
   19     struct LatticeUnitCell;
 
   20     struct SpinModelUnitCell;
 
   52     LatticeOverlap() : rid1(
nullptr), rid2(
nullptr), transformedX1(
nullptr), transformedY1(
nullptr), transformedZ1(
nullptr), transformedX2(
nullptr), transformedY2(
nullptr), transformedZ2(
nullptr), 
size(0) {}
 
   78         memcpy(rid1, rhs.rid1, 
size * 
sizeof(
int));
 
   79         memcpy(rid2, rhs.rid2, 
size * 
sizeof(
int));
 
  106         delete[] transformedX1;
 
  107         delete[] transformedY1;
 
  108         delete[] transformedZ1;
 
  109         delete[] transformedX2;
 
  110         delete[] transformedY2;
 
  111         delete[] transformedZ2;
 
  124         rid1 = 
new int[
size];
 
  125         memcpy(rid1, rhs.rid1, 
size * 
sizeof(
int));
 
  127         rid2 = 
new int[
size];
 
  128         memcpy(rid2, rhs.rid2, 
size * 
sizeof(
int));
 
  129         delete[] transformedX1;
 
  132         delete[] transformedY1;
 
  135         delete[] transformedZ1;
 
  138         delete[] transformedX2;
 
  141         delete[] transformedY2;
 
  144         delete[] transformedZ2;
 
  432         ASSERT(&spinComponent1 != &spinComponent2);
 
  453         ASSERT(&spinComponent1 != &spinComponent2);
 
  454         ASSERT(&spinComponent2 != &spinComponent3);
 
  455         ASSERT(&spinComponent1 != &spinComponent3);
 
  536     std::vector<geometry::Vec3<double> > 
_basis; 
 
  
#define ASSERT(...)
Ensure that the first argument is true. Optionally provide a message as the second argument,...
Definition: Assert.hpp:26
 
SpinComponent spinPermutation[3]
Spin permutation involved in the transformation.
Definition: Lattice.hpp:160
 
LatticeOverlap & operator=(const LatticeOverlap &rhs)
Assignment operator.
Definition: Lattice.hpp:120
 
LatticeIterator zero() const
Retrieve iterator to the lattice site i1=(0,0,0,0).
Definition: Lattice.hpp:338
 
int * allowedIds
List of representative ids that make up the sublattice. Memory is not owned by the iterator.
Definition: Lattice.hpp:282
 
~LatticeOverlap()
Destroy the LatticeOverlap object.
Definition: Lattice.hpp:102
 
Representation of a lattice unit cell.
Definition: LatticeModelFactory.hpp:123
 
~Lattice()
Destroy the Lattice object.
Definition: Lattice.hpp:312
 
SpinComponent
Component of a spin operator.
Definition: Lattice.hpp:28
 
int symmetryTransform(const LatticeIterator &i1, const LatticeIterator &i2) const
Transform a pair of lattice sites (i1,i2) and transform it to (0,i2'). The transformation may involve...
Definition: Lattice.hpp:397
 
LatticeSiteDescriptor * _bufferSites
List of transformed sites (0, rid), for all representatives rid.
Definition: Lattice.hpp:546
 
@ None
No spin component specified.
 
virtual LatticeIterator & operator--()
Prefix decrement operator.
Definition: Lattice.hpp:232
 
std::vector< std::tuple< int, int, int, int > > _geometryTable
Internal storage of real space lattice site positions, stored as tuples (a0, a1, a2,...
Definition: Lattice.hpp:541
 
int offset
Offset relative to the first entry of SublatticeIterator::allowedIds.
Definition: Lattice.hpp:281
 
SublatticeIterator(int *allowedIds)
Construct a new SublatticeIterator object over a list of representative ids.
Definition: Lattice.hpp:256
 
@ Z
z-component of a spin.
 
SublatticeIterator & operator--()
Prefix decrement operator.
Definition: Lattice.hpp:274
 
LatticeIterator begin() const
Retrieve iterator to first lattice site.
Definition: Lattice.hpp:328
 
Lattice()
Create an uninitialized lattice object.
Definition: Lattice.hpp:306
 
LatticeSiteDescriptor * _symmetryTable
List of symmetry reductions of spin pairs (id1, id2) linearized as id1*_dataSize+id2....
Definition: Lattice.hpp:545
 
std::tuple< int, int, int, int > getSiteParameters(const LatticeIterator &site) const
Get the coordinates of a specified lattice site, in units of a1, a2, a3, and b.
Definition: Lattice.hpp:371
 
SublatticeIterator getRange(const int b) const
Retrieve an iterator over all sites which are within range of the lattice site (0,...
Definition: Lattice.hpp:519
 
int _dataSize
Total number of all lattice that we store information about (equivalent to size of Lattice::_geometry...
Definition: Lattice.hpp:543
 
LatticeOverlap(const int size)
Construct a new LatticeOverlap object for a given number of sites.
Definition: Lattice.hpp:59
 
Structure to describe the portion of the lattice that is relevant in terms of the form sum_j v(i1,...
Definition: Lattice.hpp:46
 
Three-dimensional vector.
Definition: Geometry.hpp:21
 
int * _bufferBasis
List of representative ids of all basis sites.
Definition: Lattice.hpp:550
 
LatticeIterator(int id)
Construct a new LatticeIterator object and initialize it to any representative id.
Definition: Lattice.hpp:181
 
LatticeIterator fromParametrization(const int rid) const
Retrieve iterator to the specified representative.
Definition: Lattice.hpp:359
 
LatticeOverlap(const LatticeOverlap &rhs)
Construct a new LatticeOverlap object from an existing one.
Definition: Lattice.hpp:76
 
SublatticeIterator getBasis() const
Retrieve iterator over all basis sites.
Definition: Lattice.hpp:530
 
virtual LatticeIterator & operator++()
Prefix increment operator.
Definition: Lattice.hpp:221
 
SublatticeIterator & operator++()
Prefix increment operator.
Definition: Lattice.hpp:263
 
LatticeIterator()
Construct a new LatticeIterator object, which points to the representative id 0 per default.
Definition: Lattice.hpp:174
 
Lightweight macro library for assertions.
 
LatticeSiteDescriptor * _bufferInvertedSites
List of transformed sites (rid, 0), for all representatives rid.
Definition: Lattice.hpp:547
 
Implementation of three- and four-dimensional vectors and matrices for geometric operations.
 
geometry::Vec3< double > getSitePosition(const LatticeIterator &site) const
Get the position of a lattice site in real space.
Definition: Lattice.hpp:383
 
int symmetryTransform(const LatticeIterator &i1, const LatticeIterator &i2, SpinComponent &spinComponent) const
Transform a pair of lattice sites (i1,i2) and transform it to (0,i2'). The transformation may involve...
Definition: Lattice.hpp:412
 
const LatticeOverlap & getOverlap(const int rid) const
Retrieve the lattice overlap of the reference site i1=(0,0,0,0) with some other representative lattic...
Definition: Lattice.hpp:470
 
Spin model representation.
Definition: SpinModel.hpp:19
 
Sublattice iterator object.
Definition: Lattice.hpp:245
 
LatticeOverlap * _bufferOverlapMatrices
List of lattice overlaps, where the i-th entry is the overlap of the two tuples (0,...
Definition: Lattice.hpp:548
 
LatticeIterator end() const
Retrieve iterator to the last+1 lattice site.
Definition: Lattice.hpp:348
 
@ Y
y-component of a spin.
 
Lattice iterator object.
Definition: Lattice.hpp:166
 
Representation of a physical lattice, with symmetry information on two-point correlators.
Definition: Lattice.hpp:297
 
const LatticeSiteDescriptor * getInvertedSites() const
List of two-spin correlators (i2,i1), where i1=(0,0,0,0) is the reference site and the list includes ...
Definition: Lattice.hpp:481
 
int id
Representative id which the iterator points to.
Definition: Lattice.hpp:239
 
std::pair< Lattice *, SpinModel * > newLatticeModel(const LatticeModelFactory::LatticeUnitCell &uc, const LatticeModelFactory::SpinModelUnitCell &spinModelDefinition, const int latticeRange, const std::string &ldfPath)
Create and return lattice and spin model objects from given unit cell definitions.
Definition: LatticeModelFactory.cpp:733
 
bool operator!=(const LatticeIterator &rhs) const
Negative comparison operator.
Definition: Lattice.hpp:200
 
std::vector< geometry::Vec3< double > > _basis
List of the positions of all basis sites within a lattice unit cell.
Definition: Lattice.hpp:536
 
int size
Number representative sites.
Definition: Lattice.hpp:538
 
Structure to specify a symmetry-transformed lattice site.
Definition: Lattice.hpp:157
 
std::vector< geometry::Vec3< double > > _bravaisLattice
List of the three bravais lattice vectors.
Definition: Lattice.hpp:535
 
const LatticeSiteDescriptor * getSites() const
List of two-spin correlators (i1,i2), where i1=(0,0,0,0) is the reference site and the list includes ...
Definition: Lattice.hpp:491
 
int operator-(const LatticeIterator &rhs) const
Subtraction operator.
Definition: Lattice.hpp:211
 
int ** _bufferLatticeRange
Table of lists of all site ids in range of site (0,0,0,b).
Definition: Lattice.hpp:551
 
int symmetryTransform(const LatticeIterator &i1, const LatticeIterator &i2, SpinComponent &spinComponent1, SpinComponent &spinComponent2) const
Transform a pair of lattice sites (i1,i2) and transform it to (0,i2'). The transformation may involve...
Definition: Lattice.hpp:429
 
int rid
Representative id of the transformed lattice site.
Definition: Lattice.hpp:159
 
SublatticeIterator getRange(const LatticeIterator &b) const
Retrieve an iterator over all sites which are within range of the lattice site b, where b must descri...
Definition: Lattice.hpp:503
 
int symmetryTransform(const LatticeIterator &i1, const LatticeIterator &i2, SpinComponent &spinComponent1, SpinComponent &spinComponent2, SpinComponent &spinComponent3) const
Transform a pair of lattice sites (i1,i2) and transform it to (0,i2'). The transformation may involve...
Definition: Lattice.hpp:450
 
Spin model unit cell representation.
Definition: LatticeModelFactory.hpp:209
 
@ X
x-component of a spin.
 
bool operator==(const LatticeIterator &rhs) const
Comparison operator.
Definition: Lattice.hpp:189