#include <Pbc.h>
|
static constexpr unsigned | maxshiftsize =6 |
| This is the maximum expected size for general boxes. More...
|
|
◆ anonymous enum
Type of box.
Enumerator |
---|
unset | |
orthorombic | |
generic | |
◆ Pbc()
◆ apply() [1/2]
void PLMD::Pbc::apply |
( |
std::vector< Vector > & |
dlist, |
|
|
unsigned |
max_index = 0 |
|
) |
| const |
◆ apply() [2/2]
void PLMD::Pbc::apply |
( |
VectorView |
dlist, |
|
|
unsigned |
max_index = 0 |
|
) |
| const |
Apply PBC to a set of positions or distance vectors.
◆ buildShifts()
Build list of shifts.
This is expensive, and must be called only when box is reset. It allows building a minimal set of shifts depending on the sign of the scaled coordinates representing a distance vector.
◆ distance() [1/2]
double PLMD::Pbc::distance |
( |
const bool |
pbc, |
|
|
const Vector & |
v1, |
|
|
const Vector & |
v2 |
|
) |
| const |
Compute modulo of (v2-v1), using or not pbc depending on bool pbc.
◆ distance() [2/2]
Computes v2-v1, using minimal image convention if specified, also returns the number of attempted shifts.
◆ fullSearch()
void PLMD::Pbc::fullSearch |
( |
Vector & |
d | ) |
const |
Full search (for testing).
Perform a full search on vector
◆ getBox()
const Tensor & PLMD::Pbc::getBox |
( |
| ) |
const |
◆ getInvBox()
const Tensor & PLMD::Pbc::getInvBox |
( |
| ) |
const |
Returns the inverse matrix of box.
Thus: pbc.getInvBox() == inverse(pbc.getBox()).
◆ isOrthorombic()
bool PLMD::Pbc::isOrthorombic |
( |
| ) |
const |
Returns true if the box vectors are orthogonal.
◆ isSet()
bool PLMD::Pbc::isSet |
( |
| ) |
const |
|
inline |
Returns true if box is set and non zero.
◆ realToScaled()
Transform a vector in real space to a vector in scaled coordinates.
Thus:pbc.realToScaled(v) == matmul(transpose(inverse(pbc.getBox(),v)));
◆ scaledToReal()
Transform a vector in scaled coordinates to a vector in real space.
Thus:pbc.scaledToRead(v) == matmul(transpose(pbc.getBox()),v);
◆ setBox()
void PLMD::Pbc::setBox |
( |
const Tensor & |
b | ) |
|
Set the lattice vectors.
b[i][j] is the j-th component of the i-th vector
◆ box
◆ diag
Alternative representation for orthorombic cells.
Not really used, but could be used to optimize search in orthorombic cells.
◆ hdiag
◆ invBox
◆ invReduced
Inverse of the reduced box.
◆ maxshiftsize
constexpr unsigned PLMD::Pbc::maxshiftsize =6 |
|
staticconstexprprivate |
This is the maximum expected size for general boxes.
I found this empirically by manually modifying regtest basic/rt-make-1 Since it uses randomly generated boxes it should be correct. In any case, this is just used as a hint for small_vector, which will then switch to heap allocations if more shifts are needed
◆ mdiag
◆ reduced
Reduced box.
This is a set of lattice vectors generating the same lattice but "minimally skewed". Useful to optimize image search.
◆ shifts
List of shifts that should be attempted.
Depending on the sign of the scaled coordinates representing a distance vector, a different set of shifts must be tried.
◆ type
enum { ... } PLMD::Pbc::type |
The documentation for this class was generated from the following files: