oILAB
Loading...
Searching...
No Matches
gbLAB::LatticeVector< dim > Class Template Reference

LatticeVector class. More...

#include <LatticeVector.h>

+ Inheritance diagram for gbLAB::LatticeVector< dim >:

Public Types

typedef LatticeCore< dim >::IntScalarType IntScalarType
 
typedef LatticeCore< dim >::VectorDimD VectorDimD
 
typedef LatticeCore< dim >::MatrixDimD MatrixDimD
 
typedef LatticeCore< dim >::VectorDimI VectorDimI
 
typedef LatticeCore< dim >::MatrixDimI MatrixDimI
 

Public Member Functions

 LatticeVector (const Lattice< dim > &lat)
 
 LatticeVector (const VectorDimD &d, const Lattice< dim > &lat)
 
 LatticeVector (const VectorDimI &d, const Lattice< dim > &lat)
 
 LatticeVector (const LatticeVector< dim > &other)=default
 
 LatticeVector (LatticeVector< dim > &&other)=default
 
LatticeVector< dim > & operator= (const LatticeVector< dim > &other)
 
LatticeVector< dim > & operator= (LatticeVector< dim > &&other)
 
LatticeVector< dim > operator+ (const LatticeVector< dim > &other) const
 
LatticeVector< dim > & operator+= (const LatticeVector< dim > &other)
 
LatticeVector< dim > operator- (const LatticeVector< dim > &other) const
 
LatticeVector< dim > & operator-= (const LatticeVector< dim > &other)
 
LatticeVector< dim > operator* (const IntScalarType &scalar) const
 
IntScalarType dot (const ReciprocalLatticeVector< dim > &other) const
 
IntScalarType dot (const ReciprocalLatticeDirection< dim > &other) const
 
VectorDimD cartesian () const
 
template<int dm = dim>
std::enable_if< dm==2, ReciprocalLatticeDirection< dm > >::type cross (const LatticeVector< dm > &other) const
 
template<int dm = dim>
std::enable_if< dm==3, ReciprocalLatticeDirection< dm > >::type cross (const LatticeVector< dm > &other) const
 
template<int dm = dim>
std::enable_if< dm==2, ReciprocalLatticeDirection< dm > >::type cross () const
 
template<int dm = dim>
std::enable_if< dm==3, ReciprocalLatticeDirection< dm > >::type cross () const
 

Static Public Member Functions

template<int dm = dim>
static std::enable_if< dm==2, void >::type modulo (LatticeVector< dim > &input, const std::vector< LatticeVector< dim > > &basis, const VectorDimD &shift=VectorDimD::Zero())
 
template<int dm = dim>
static std::enable_if< dm==2, void >::type modulo (VectorDimD &input, const std::vector< LatticeVector< dim > > &basis, const VectorDimD &shift=VectorDimD::Zero())
 
template<int dm = dim>
static std::enable_if< dm==3, void >::type modulo (LatticeVector< dim > &input, const std::vector< LatticeVector< dim > > &basis, const VectorDimD &shift=VectorDimD::Zero())
 
template<int dm = dim>
static std::enable_if< dm==3, void >::type modulo (VectorDimD &input, const std::vector< LatticeVector< dim > > &basis, const VectorDimD &shift=VectorDimD ::Zero())
 

Data Fields

const Lattice< dim > & lattice
 

Private Types

typedef Eigen::Matrix< typename LatticeCore< dim >::IntScalarType, dim, 1 > BaseType
 

Private Member Functions

BaseTypebase ()
 
const BaseTypebase () const
 

Detailed Description

template<int dim>
class gbLAB::LatticeVector< dim >

LatticeVector class.

The LatticeVector<dim> class describes a lattice vector in a lattice

Examples
testGb.cpp, testGb3d.cpp, testGenerateGBs.cpp, testLattice.cpp, testMoire.cpp, and testPlaneParallelLatticeDirections.cpp.

Definition at line 18 of file LatticeVector.h.

Member Typedef Documentation

◆ BaseType

template<int dim>
typedef Eigen::Matrix<typename LatticeCore<dim>::IntScalarType,dim,1> gbLAB::LatticeVector< dim >::BaseType
private

Definition at line 20 of file LatticeVector.h.

◆ IntScalarType

template<int dim>
typedef LatticeCore<dim>::IntScalarType gbLAB::LatticeVector< dim >::IntScalarType

Definition at line 27 of file LatticeVector.h.

◆ MatrixDimD

template<int dim>
typedef LatticeCore<dim>::MatrixDimD gbLAB::LatticeVector< dim >::MatrixDimD

Definition at line 29 of file LatticeVector.h.

◆ MatrixDimI

template<int dim>
typedef LatticeCore<dim>::MatrixDimI gbLAB::LatticeVector< dim >::MatrixDimI

Definition at line 31 of file LatticeVector.h.

◆ VectorDimD

template<int dim>
typedef LatticeCore<dim>::VectorDimD gbLAB::LatticeVector< dim >::VectorDimD

Definition at line 28 of file LatticeVector.h.

◆ VectorDimI

template<int dim>
typedef LatticeCore<dim>::VectorDimI gbLAB::LatticeVector< dim >::VectorDimI

Definition at line 30 of file LatticeVector.h.

Constructor & Destructor Documentation

◆ LatticeVector() [1/5]

template<int dim>
gbLAB::LatticeVector< dim >::LatticeVector ( const Lattice< dim > &  lat)

Definition at line 32 of file LatticeVector.cpp.

◆ LatticeVector() [2/5]

template<int dim>
gbLAB::LatticeVector< dim >::LatticeVector ( const VectorDimD d,
const Lattice< dim > &  lat 
)
Parameters
[in]dvector in real space Constructs *this by mapping d to the lattice

Definition at line 40 of file LatticeVector.cpp.

◆ LatticeVector() [3/5]

template<int dim>
gbLAB::LatticeVector< dim >::LatticeVector ( const VectorDimI d,
const Lattice< dim > &  lat 
)

Definition at line 51 of file LatticeVector.cpp.

◆ LatticeVector() [4/5]

template<int dim>
gbLAB::LatticeVector< dim >::LatticeVector ( const LatticeVector< dim > &  other)
default

◆ LatticeVector() [5/5]

template<int dim>
gbLAB::LatticeVector< dim >::LatticeVector ( LatticeVector< dim > &&  other)
default

Member Function Documentation

◆ base() [1/2]

template<int dim>
LatticeVector< dim >::BaseType & gbLAB::LatticeVector< dim >::base ( )
private

Definition at line 17 of file LatticeVector.cpp.

◆ base() [2/2]

template<int dim>
const LatticeVector< dim >::BaseType & gbLAB::LatticeVector< dim >::base ( ) const
private

Definition at line 24 of file LatticeVector.cpp.

◆ cartesian()

template<int dim>
LatticeVector< dim >::VectorDimD gbLAB::LatticeVector< dim >::cartesian ( ) const

◆ cross() [1/4]

template<int dim>
template<int dm = dim>
std::enable_if< dm==2, ReciprocalLatticeDirection< dm > >::type gbLAB::LatticeVector< dim >::cross ( ) const
inline

Definition at line 70 of file LatticeVector.h.

◆ cross() [2/4]

template<int dim>
template<int dm = dim>
std::enable_if< dm==3, ReciprocalLatticeDirection< dm > >::type gbLAB::LatticeVector< dim >::cross ( ) const
inline

Definition at line 76 of file LatticeVector.h.

◆ cross() [3/4]

template<int dim>
template<int dm = dim>
std::enable_if< dm==2, ReciprocalLatticeDirection< dm > >::type gbLAB::LatticeVector< dim >::cross ( const LatticeVector< dm > &  other) const
inline
Examples
testLattice.cpp.

Definition at line 55 of file LatticeVector.h.

◆ cross() [4/4]

template<int dim>
template<int dm = dim>
std::enable_if< dm==3, ReciprocalLatticeDirection< dm > >::type gbLAB::LatticeVector< dim >::cross ( const LatticeVector< dm > &  other) const
inline

Definition at line 62 of file LatticeVector.h.

◆ dot() [1/2]

template<int dim>
LatticeVector< dim >::IntScalarType gbLAB::LatticeVector< dim >::dot ( const ReciprocalLatticeDirection< dim > &  other) const

Definition at line 126 of file LatticeVector.cpp.

◆ dot() [2/2]

template<int dim>
LatticeVector< dim >::IntScalarType gbLAB::LatticeVector< dim >::dot ( const ReciprocalLatticeVector< dim > &  other) const
Examples
testPlaneParallelLatticeDirections.cpp.

Definition at line 118 of file LatticeVector.cpp.

◆ modulo() [1/4]

template<int dim>
template<int dm>
std::enable_if< dm==2, void >::type gbLAB::LatticeVector< dim >::modulo ( LatticeVector< dim > &  input,
const std::vector< LatticeVector< dim > > &  basis,
const VectorDimD shift = VectorDimD::Zero() 
)
static

Definition at line 155 of file LatticeVector.cpp.

◆ modulo() [2/4]

template<int dim>
template<int dm = dim>
static std::enable_if< dm==3, void >::type gbLAB::LatticeVector< dim >::modulo ( LatticeVector< dim > &  input,
const std::vector< LatticeVector< dim > > &  basis,
const VectorDimD shift = VectorDimD::Zero() 
)
static

◆ modulo() [3/4]

template<int dim>
template<int dm = dim>
static std::enable_if< dm==3, void >::type gbLAB::LatticeVector< dim >::modulo ( VectorDimD input,
const std::vector< LatticeVector< dim > > &  basis,
const VectorDimD shift = VectorDimD ::Zero() 
)
static

◆ modulo() [4/4]

template<int dim>
template<int dm>
std::enable_if< dm==2, void >::type gbLAB::LatticeVector< dim >::modulo ( VectorDimD input,
const std::vector< LatticeVector< dim > > &  basis,
const VectorDimD shift = VectorDimD::Zero() 
)
static

Definition at line 175 of file LatticeVector.cpp.

◆ operator*()

template<int dim>
LatticeVector< dim > gbLAB::LatticeVector< dim >::operator* ( const IntScalarType scalar) const

Definition at line 111 of file LatticeVector.cpp.

◆ operator+()

template<int dim>
LatticeVector< dim > gbLAB::LatticeVector< dim >::operator+ ( const LatticeVector< dim > &  other) const

Definition at line 75 of file LatticeVector.cpp.

◆ operator+=()

template<int dim>
LatticeVector< dim > & gbLAB::LatticeVector< dim >::operator+= ( const LatticeVector< dim > &  other)

Definition at line 84 of file LatticeVector.cpp.

◆ operator-()

template<int dim>
LatticeVector< dim > gbLAB::LatticeVector< dim >::operator- ( const LatticeVector< dim > &  other) const

Definition at line 93 of file LatticeVector.cpp.

◆ operator-=()

template<int dim>
LatticeVector< dim > & gbLAB::LatticeVector< dim >::operator-= ( const LatticeVector< dim > &  other)

Definition at line 102 of file LatticeVector.cpp.

◆ operator=() [1/2]

template<int dim>
LatticeVector< dim > & gbLAB::LatticeVector< dim >::operator= ( const LatticeVector< dim > &  other)

Definition at line 58 of file LatticeVector.cpp.

◆ operator=() [2/2]

template<int dim>
LatticeVector< dim > & gbLAB::LatticeVector< dim >::operator= ( LatticeVector< dim > &&  other)

Definition at line 66 of file LatticeVector.cpp.

Field Documentation

◆ lattice

template<int dim>
const Lattice<dim>& gbLAB::LatticeVector< dim >::lattice

Definition at line 33 of file LatticeVector.h.


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