eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
SuperCell.h
Go to the documentation of this file.
1
// Emacs, this is -*- C++ -*-
2
3
#ifndef _SUPERCELL_H
4
#define _SUPERCELL_H
5
6
#include "
Vec.h
"
7
class
Atoms
;
8
9
// vectors: supercell basis vectors
10
// inverse: vectors[i] * inverse[j] = ((i = j) ? 1 : 0)
11
// heights: heights of cell
12
14
20
class
SuperCell
{
21
public
:
23
SuperCell
(
const
Vec
v[3],
const
bool
p[3]);
24
26
SuperCell
(
const
SuperCell
*original);
27
29
void
SetAtoms
(
Atoms
*a);
30
32
void
TransformToScaledSpace
(
Vec
*positions,
int
nAtoms)
const
;
33
35
void
TransformToRealSpace
(
Vec
*positions,
int
nAtoms)
const
;
36
38
42
void
ClosestLatticeSiteIndices
(
int
intVector[3],
Vec
&diff)
const
;
43
45
double
GetVolume
()
const
;
46
49
void
SetBasis
(
const
Vec
v[3]);
50
52
Vec
GetBasis
(
int
a) {
return
vectors
[a]; }
53
55
59
void
SetPeriodic
(
const
bool
newperiodic[3]);
60
61
public
:
62
bool
periodic
[3];
63
Vec
vectors
[3];
64
Vec
inverse
[3];
65
double
heights
[3];
66
Vec
translations
[27];
68
private
:
69
Atoms
*
atoms
;
71
};
72
73
#endif
// _SUPERCELL_H
Vec.h
Atoms
The main list of atoms class.
Definition
Atoms.h:36
SuperCell::SetPeriodic
void SetPeriodic(const bool newperiodic[3])
Set the periodicity. USE WITH CAUTION!
SuperCell::periodic
bool periodic[3]
Periodic boundary conditions along the 3 axes?
Definition
SuperCell.h:62
SuperCell::TransformToScaledSpace
void TransformToScaledSpace(Vec *positions, int nAtoms) const
In-place transformation of positions from real to scaled space.
SuperCell::ClosestLatticeSiteIndices
void ClosestLatticeSiteIndices(int intVector[3], Vec &diff) const
Quasicontinuum only: convert position to closest lattice site.
SuperCell::TransformToRealSpace
void TransformToRealSpace(Vec *positions, int nAtoms) const
In-place transformation of positions from scaled to real space.
SuperCell::SetAtoms
void SetAtoms(Atoms *a)
Set the atoms associated with the supercell.
SuperCell::SetBasis
void SetBasis(const Vec v[3])
Change the basis.
SuperCell::atoms
Atoms * atoms
A pointer to the atoms associated with this supercell, if any.
Definition
SuperCell.h:69
SuperCell::GetBasis
Vec GetBasis(int a)
Get the basis vectors.
Definition
SuperCell.h:52
SuperCell::GetVolume
double GetVolume() const
Get the volume of the supercell.
SuperCell::inverse
Vec inverse[3]
The inverse of the vectors matrix.
Definition
SuperCell.h:64
SuperCell::SuperCell
SuperCell(const Vec v[3], const bool p[3])
Create a new supercell with basis vectors Vec and periodicity p.
SuperCell::heights
double heights[3]
The heights of the supercell.
Definition
SuperCell.h:65
SuperCell::translations
Vec translations[27]
The 27 possible translations due to the periodic boundaries.
Definition
SuperCell.h:66
SuperCell::vectors
Vec vectors[3]
The basis vectors.
Definition
SuperCell.h:63
SuperCell::SuperCell
SuperCell(const SuperCell *original)
Copy constructor.
Vec
A 3-vector useful for postions etc.
Definition
Vec.h:18
include
eon
potentials
EMT
Asap
SuperCell.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf