#include <aatopology.h>
Public Member Functions | |
RBTopology () | |
void | add_site (RigidFragment const &site) |
std::vector< RigidFragment > const & | get_sites () const |
size_t | nrigid () const |
size_t | natoms_total () const |
size_t | number_of_non_rigid_atoms () const |
CoordsAdaptor | get_coords_adaptor (pele::Array< double > x) const |
Array< double > | to_atomistic (Array< double > rbcoords) |
void | transform_gradient (pele::Array< double > rbcoords, pele::Array< double > grad, pele::Array< double > rbgrad) |
pele::VecN< 3 > | align_angle_axis_vectors (pele::VecN< 3 > const &p1, pele::VecN< 3 > const &p2in) |
void | align_all_angle_axis_vectors (pele::Array< double > x1, pele::Array< double > x2) |
void | align_path (std::list< pele::Array< double > > path) |
void | get_zero_modes (pele::Array< double > const x, std::vector< pele::Array< double > > &zev) |
double | distance_squared (pele::Array< double > const x1, pele::Array< double > const x2) const |
void | distance_squared_grad (pele::Array< double > const x1, pele::Array< double > const x2, pele::Array< double > grad) const |
Angle axis topology
An angle axis topology stores all topology information for an angle axis system. The AATopology is composed of several angle axis sites, which describe the shape of the angle axis site and each site carries a position and orientation. Therefore, the length of the coordinate array must be 6*number_of_sites. represent a collection of rigid bodies
Definition at line 351 of file aatopology.h.
pele::RBTopology::RBTopology | ( | ) | [inline] |
Definition at line 356 of file aatopology.h.
void pele::RBTopology::add_site | ( | RigidFragment const & | site | ) | [inline] |
Definition at line 360 of file aatopology.h.
void pele::RBTopology::align_all_angle_axis_vectors | ( | pele::Array< double > | x1, |
pele::Array< double > | x2 | ||
) |
Ensure the angle axis rotations of two structures are aligned with each other.
x1 will remain unchanged, only modify x2
Definition at line 259 of file aatopology.cpp.
pele::VecN< 3 > pele::RBTopology::align_angle_axis_vectors | ( | pele::VecN< 3 > const & | p1, |
pele::VecN< 3 > const & | p2in | ||
) |
align two angle axis vectors
perform symmetry operations on p2 to minimize the distance with p1
Definition at line 222 of file aatopology.cpp.
void pele::RBTopology::align_path | ( | std::list< pele::Array< double > > | path | ) |
ensure a series of images are aligned with each other
this simply aligns the angle axis vectors
Definition at line 273 of file aatopology.cpp.
double pele::RBTopology::distance_squared | ( | pele::Array< double > const | x1, |
pele::Array< double > const | x2 | ||
) | const [inline] |
return the squared distance between two configurations
Definition at line 469 of file aatopology.h.
void pele::RBTopology::distance_squared_grad | ( | pele::Array< double > const | x1, |
pele::Array< double > const | x2, | ||
pele::Array< double > | grad | ||
) | const [inline] |
Calculate gradient with respect to x1 for the squared distance
used to compute the spring force on x1 to x2
Definition at line 490 of file aatopology.h.
CoordsAdaptor pele::RBTopology::get_coords_adaptor | ( | pele::Array< double > | x | ) | const [inline] |
return an already constructed CoordsAdaptor object
Definition at line 386 of file aatopology.h.
std::vector<RigidFragment> const& pele::RBTopology::get_sites | ( | ) | const [inline] |
provide access to the vector of rigid fragments
Definition at line 369 of file aatopology.h.
void pele::RBTopology::get_zero_modes | ( | pele::Array< double > const | x, |
std::vector< pele::Array< double > > & | zev | ||
) | [inline] |
return a list of zero modes
i.e. vectors corresponding to directions with zero curvature. (these are not necessarily orthogonal)
Definition at line 431 of file aatopology.h.
size_t pele::RBTopology::natoms_total | ( | ) | const [inline] |
return the total number of atoms in the atomistic representation
Definition at line 379 of file aatopology.h.
size_t pele::RBTopology::nrigid | ( | ) | const [inline] |
return the number of rigid bodies
Definition at line 374 of file aatopology.h.
size_t pele::RBTopology::number_of_non_rigid_atoms | ( | ) | const [inline] |
Definition at line 381 of file aatopology.h.
Array< double > pele::RBTopology::to_atomistic | ( | Array< double > | rbcoords | ) |
convert rigid body coordinates to atomistic coordinates
Definition at line 159 of file aatopology.cpp.
void pele::RBTopology::transform_gradient | ( | pele::Array< double > | rbcoords, |
pele::Array< double > | grad, | ||
pele::Array< double > | rbgrad | ||
) |
convert atomistic gradient into gradient in rigid body coordinates
Definition at line 185 of file aatopology.cpp.