#include <Pbc.h>
◆ anonymous enum
Type of box. 
| Enumerator | 
|---|
| unset  |  | 
| orthorombic  |  | 
| generic  |  | 
 
 
◆ Pbc()
◆ apply()
      
        
          | void PLMD::Pbc::apply  | 
          ( | 
          std::vector< Vector > &  | 
          dlist,  | 
        
        
           | 
           | 
          unsigned  | 
          max_index = 0  | 
        
        
           | 
          ) | 
           |  const | 
        
      
 
Apply PBC to a set of positions or distance vectors. 
 
 
◆ buildShifts()
  
  
      
        
          | void PLMD::Pbc::buildShifts  | 
          ( | 
          std::vector< Vector >  | 
          shifts[2][2][2] | ) | 
           const | 
         
       
   | 
  
private   | 
  
 
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. 
 
 
◆ distance() [3/3]
version of distance which 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. 
 
 
◆ mdiag
◆ reduced
Reduced box. 
This is a set of lattice vectors generating the same lattice but "minimally skewed". Useful to optimize image search. 
 
 
◆ shifts
  
  
      
        
          | std::vector<Vector> PLMD::Pbc::shifts[2][2][2] | 
         
       
   | 
  
private   | 
  
 
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: