![]() |
Pteros
2.0
Molecular modeling library for human beings!
|
Class encapsulating all operations with arbitrary triclinic periodic boxes This class stores the periodic box itself and also contains pre-computed matrices for converting laboratory coordinates to the coordinates in triclinic basis and vice versa. More...
#include <periodic_box.h>
Public Member Functions | |
| PeriodicBox () | |
| Default constructor. | |
| PeriodicBox (Matrix3f_const_ref m) | |
| Constructor from matrix. | |
| PeriodicBox (Vector3f_const_ref vectors, Vector3f_const_ref angles) | |
| Constructor from vector lengths and angles. | |
| PeriodicBox (const PeriodicBox &other) | |
| Copy constructor. | |
| PeriodicBox & | operator= (const PeriodicBox &other) |
| Assignment operator. | |
| float | get_element (int i, int j) const |
| void | set_element (int i, int j, float val) |
| Eigen::Vector3f | get_vector (int i) const |
| Get i-th box vector. | |
| void | set_vector (Vector3f_const_ref vec, int i) |
| Set i-th box vector. | |
| Eigen::Matrix3f | get_matrix () const |
| Get stored matrix of box vectors. | |
| void | set_matrix (Matrix3f_const_ref box) |
| Modify the box from 3x3 matrix. | |
| void | scale_vectors (Vector3f_const_ref scale) |
| Scale box vectors by specified factors. More... | |
| Eigen::Matrix3f | get_inv_matrix () const |
| Get stored inverted matrix of box vectors. | |
| Eigen::Vector3f | lab_to_box (Vector3f_const_ref point) const |
| Convert point from lab coordinates to box coordinates. | |
| Eigen::Matrix3f | lab_to_box_transform () const |
| Return the transformation from lab coordinates to box coordinates. | |
| Eigen::Vector3f | box_to_lab (Vector3f_const_ref point) const |
| Convert point from box coordinates to lab coordinates. | |
| Eigen::Matrix3f | box_to_lab_transform () const |
| Return the transformation from box coordinates to lab coordinates. | |
| float | extent (int i) const |
| Return i-th extent of the box. | |
| Eigen::Vector3f | extents () const |
| Return the vector of box extents. | |
| bool | is_triclinic () const |
| Is the box triclinic? | |
| bool | is_periodic () const |
| Is the box set? If false, the system is not periodic. | |
| float | distance (Vector3f_const_ref point1, Vector3f_const_ref point2, Array3i_const_ref pbc=fullPBC) const |
| Compute a periodic distance between two points in the box Periodicity is only accouted for given set of dimensions If you need a non-periodic distance over all dimensions it is more efficient to compute it directly as: More... | |
| float | distance_squared (Vector3f_const_ref point1, Vector3f_const_ref point2, Array3i_const_ref pbc=fullPBC) const |
| The same as distance but returns squared distance. | |
| void | wrap_point (Vector3f_ref point, Array3i_const_ref pbc=fullPBC, Vector3f_const_ref origin=Eigen::Vector3f::Zero()) const |
| Wrap point to the box for given set of dimensions Origin of the box coordinates defaults to {0,0,0}. | |
| bool | in_box (Vector3f_const_ref point, Vector3f_const_ref origin=Eigen::Vector3f::Zero()) const |
| Determine if the point is inside the box Origin of the box coordinates defaults to {0,0,0}. | |
| Eigen::Vector3f | closest_image (Vector3f_const_ref point, Vector3f_const_ref target, Array3i_const_ref pbc=fullPBC) const |
| Finds a periodic image of point, which is closest in space to target and returns it | |
| Eigen::Vector3f | shortest_vector (Vector3f_const_ref point1, Vector3f_const_ref point2, Array3i_const_ref pbc=fullPBC) const |
| Computes shortest vector from point1 to point2 between their closest images. | |
| float | volume () |
| Returns box volume. | |
| void | from_pdb_box (const char *line) |
| Read box from CRYST string in PDB format. Overwrites current box! | |
| std::string | to_pdb_box () const |
| Write box as CRYST string in PDB format. | |
| void | to_vectors_angles (Vector3f_ref vectors, Vector3f_ref angles) const |
| Returns representation of the box as vector lengths and angles. | |
| void | from_vectors_angles (Vector3f_const_ref vectors, Vector3f_const_ref angles) |
| Creates box from vector length and angles. More... | |
Class encapsulating all operations with arbitrary triclinic periodic boxes This class stores the periodic box itself and also contains pre-computed matrices for converting laboratory coordinates to the coordinates in triclinic basis and vice versa.
Extents of the periodic box are also precomputed and stored internally.
| void PeriodicBox::scale_vectors | ( | Vector3f_const_ref | scale | ) |
Scale box vectors by specified factors.
Causes recomputing internal data.
| float PeriodicBox::distance | ( | Vector3f_const_ref | point1, |
| Vector3f_const_ref | point2, | ||
| Array3i_const_ref | pbc = fullPBC |
||
| ) | const |
Compute a periodic distance between two points in the box Periodicity is only accouted for given set of dimensions If you need a non-periodic distance over all dimensions it is more efficient to compute it directly as:
| void PeriodicBox::from_vectors_angles | ( | Vector3f_const_ref | vectors, |
| Vector3f_const_ref | angles | ||
| ) |
Creates box from vector length and angles.
Overwrites current box! vectors = {a,b,c} angles = {a^c, b^c, a^b}