#include <Pbc.h>
|
| | Pbc () |
| | Constructor.
|
| |
| void | apply (std::vector< Vector > &dlist, unsigned max_index=0) const |
| |
| void | apply (VectorView dlist, unsigned max_index=0) const |
| | Apply PBC to a set of positions or distance vectors.
|
| |
| double | distance (const bool pbc, const Vector &v1, const Vector &v2) const |
| | Compute modulo of (v2-v1), using or not pbc depending on bool pbc.
|
| |
| Vector | distance (const Vector &, const Vector &) const |
| | Computes v2-v1, using minimal image convention if specified, also returns the number of attempted shifts.
|
| |
| Vector | distance (const Vector &, const Vector &, int *nshifts) const |
| | Computes v2-v1, using minimal image convention if specified, also returns the number of attempted shifts.
|
| |
| void | fullSearch (Vector &) const |
| | Full search (for testing).
|
| |
| const Tensor & | getBox () const |
| | Returns the box.
|
| |
| const Tensor & | getInvBox () const |
| | Returns the inverse matrix of box.
|
| |
| bool | isOrthorombic () const |
| | Returns true if the box vectors are orthogonal.
|
| |
| bool | isSet () const |
| | Returns true if box is set and non zero.
|
| |
| Vector | realToScaled (const Vector &) const |
| | Transform a vector in real space to a vector in scaled coordinates.
|
| |
| void | removeFromACCDevice () const |
| | Helper function for cleaning the memory of the class from an openacc device.
|
| |
| Vector | scaledToReal (const Vector &) const |
| | Transform a vector in scaled coordinates to a vector in real space.
|
| |
| void | setBox (const Tensor &b) |
| | Set the lattice vectors.
|
| |
| void | toACCDevice () const |
| | Helper function for moving the class to an openacc device.
|
| |
|
| static constexpr unsigned | maxshiftsize =6 |
| | This is the maximum expected size for general boxes.
|
| |
◆ 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/3]
| 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/3]
Computes v2-v1, using minimal image convention if specified, also returns the number of attempted shifts.
◆ distance() [3/3]
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)));
◆ removeFromACCDevice()
| void PLMD::Pbc::removeFromACCDevice |
( |
| ) |
const |
Helper function for cleaning the memory of the class from an openacc device.
◆ 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
◆ toACCDevice()
| void PLMD::Pbc::toACCDevice |
( |
| ) |
const |
Helper function for moving the class to an openacc device.
◆ 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
| 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.
◆ []
| enum { ... } PLMD::Pbc::type |
The documentation for this class was generated from the following files: