Template Struct vector3D

Struct Documentation

template<typename T>
struct vector3D

Used to represent the position of a lattice or cluster site.

Public Functions

inline vector3D()

constructor

template<typename S>
inline vector3D(S _x, S _y, S _z)

constructor

inline vector3D(const string &str)

constructor from a string

template<typename S>
inline vector3D(vector3D<S> tmp)

copy constructor

inline vector3D operator-()

sign operator overloading

template<typename S>
inline vector3D &operator=(const vector3D<S> &q)

assignation operator overloading

template<typename S>
inline vector3D operator+(const vector3D<S> &q)

addition operator overloading

template<typename S>
inline vector3D operator-(const vector3D<S> &q)

subtraction operator overloading

template<typename S>
inline vector3D &operator+=(const vector3D<S> &q)

+= operator overloading

inline vector3D &operator-=(const vector3D &q)

-= operator overloading

inline vector3D &operator*=(const T c)

post-multiplication by a constant : operator overloading

inline int operator==(const vector3D &p) const

logical equality : operator overloading

inline int operator<(const vector3D &p) const

comparison : operator overloading

inline int operator!=(const vector3D &p) const

logical inequality : operator overloading

inline void sym(char s)

symmetrizes the vector w.r.t to some lattice operations

inline void transform(matrix<T> &A)

applies a matrix operation A to the wavevector

inline void transform_transpose(matrix<T> &A)

applies a matrix operation A to the wavevector

inline bool is_null()

checks whether the vector is zero

inline void cyclic()
inline void rotate(double theta)
inline double norm()

Public Members

T x

x coordinate

T y

y coordinate

T z

z coordinate

Public Static Attributes

static int dimension = 3