Classes |
class | CoordsAdaptor |
class | TransformPolicy |
class | TransformAACluster |
class | MeasureAngleAxisCluster |
class | RigidFragment |
class | RBTopology |
class | RBPotentialWrapper |
class | _ArrayMemory |
class | Array |
class | AtomListPotential |
class | BasePotential |
class | EnergyAccumulator |
class | EnergyGradientAccumulator |
class | EnergyGradientHessianAccumulator |
class | CellListPotential |
class | CellListsLoop |
class | CellLists |
class | stupid_counter |
class | CombinedPotential |
struct | meta_dist |
struct | meta_dist< 1 > |
struct | cartesian_distance |
struct | meta_periodic_distance |
struct | meta_periodic_distance< 1 > |
struct | meta_image |
struct | meta_image< 1 > |
class | periodic_distance |
class | DistanceInterface |
class | CartesianDistanceWrapper |
class | PeriodicDistanceWrapper |
class | FrozenCoordsConverter |
class | FrozenPotentialWrapper |
class | Edge |
class | Node |
class | Graph |
class | BaseHarmonic |
class | Harmonic |
class | HarmonicCOM |
struct | harmonic_interaction |
class | HarmonicAtomList |
class | HarmonicNeighborList |
struct | sf_HS_WCA_interaction |
struct | HS_WCA_interaction |
class | HS_WCA |
class | HS_WCAPeriodic |
class | HS_WCACellLists |
class | HS_WCAPeriodicCellLists |
class | HS_WCAFrozen |
class | HS_WCAPeriodicFrozen |
class | HS_WCACellListsFrozen |
class | HS_WCAPeriodicCellListsFrozen |
class | HS_WCANeighborList |
struct | InversePower_interaction |
struct | InverseIntPower_interaction |
struct | InverseHalfIntPower_interaction |
class | InversePower |
class | InversePowerPeriodic |
class | InverseIntPower |
class | InverseIntPowerPeriodic |
class | InverseHalfIntPower |
class | InverseHalfIntPowerPeriodic |
class | InversePowerCellLists |
class | InversePowerPeriodicCellLists |
class | LBFGS |
struct | lj_interaction |
class | LJ |
class | LJPeriodic |
class | LJFrozen |
class | LJNeighborList |
struct | lj_interaction_cut_smooth |
class | LJCut |
class | LJCutPeriodic |
class | LJCutAtomList |
class | LJCutPeriodicAtomList |
class | LJCutPeriodicCellLists |
class | Orthogonalize |
class | OrthogonalizeTranslational |
class | LowestEigPotential |
class | MatrixAdapter |
struct | meta_pow |
struct | meta_pow< T, 0 > |
class | MODIFIED_FIRE |
struct | morse_interaction |
class | Morse |
class | NGT |
class | Optimizer |
class | GradientOptimizer |
class | PythonPotential |
class | SimplePairwiseNeighborList |
class | SimplePairwisePotential |
class | VecN |
class | MatrixNM |
struct | WCA_interaction |
class | WCA |
class | WCA2D |
class | WCAPeriodic |
class | WCAPeriodic2D |
class | WCANeighborList |
class | WCAAtomList |
Typedefs |
typedef size_t | node_id |
typedef Node * | node_ptr |
typedef Edge * | edge_ptr |
typedef int | color_type |
Functions |
MatrixNM< 3, 3 > | aa_to_rot_mat (pele::VecN< 3 > const &p) |
pele::VecN< 4 > | rot_mat_to_quaternion (pele::MatrixNM< 3, 3 > const &mx) |
pele::VecN< 3 > | quaternion_to_aa (pele::VecN< 4 > const &qin) |
pele::VecN< 4 > | aa_to_quaternion (pele::VecN< 3 > const &aa) |
pele::VecN< 4 > | quaternion_multiply (pele::VecN< 4 > const &q0, pele::VecN< 4 > const &q1) |
void | rot_mat_derivatives_small_theta (pele::VecN< 3 > const &p, MatrixNM< 3, 3 > &rmat, MatrixNM< 3, 3 > &drm1, MatrixNM< 3, 3 > &drm2, MatrixNM< 3, 3 > &drm3, bool with_grad) |
void | rot_mat_derivatives (pele::VecN< 3 > const &p, MatrixNM< 3, 3 > &rmat, MatrixNM< 3, 3 > &drm1, MatrixNM< 3, 3 > &drm2, MatrixNM< 3, 3 > &drm3) |
template<class dtype > |
std::ostream & | operator<< (std::ostream &out, const Array< dtype > &a) |
double | dot (Array< double > const &v1, Array< double > const &v2) |
double | norm (Array< double > const &v) |
template<class T , class U > |
Array< T > | operator* (const U rhs, const Array< T > &lhs) |
std::ostream & | operator<< (std::ostream &out, std::shared_ptr< Graph > g) |
void | zero_modes_translational (std::vector< pele::Array< double > > &zev, size_t natoms, size_t bdim) |
template<class dtype > |
MatrixAdapter< dtype > | hacky_mat_mul (MatrixAdapter< dtype > const &A, MatrixAdapter< dtype > const &B) |
template<class dtype > |
std::ostream & | operator<< (std::ostream &out, const pele::MatrixAdapter< dtype > &a) |
template<int N, class T > |
T | pos_int_pow (const T x) |
template<int N, class T > |
T | neg_int_pow (const T x) |
template<int N, class T > |
T | pos_half_int_pow (const T x) |
template<int N, class T > |
T | neg_half_int_pow (const T x) |
bool | compare_degree (node_ptr u, node_ptr v) |
pele::VecN< 3 > | rot_mat_to_aa (pele::MatrixNM< 3, 3 > const &mx) |
pele::VecN< 3 > | rotate_aa (pele::VecN< 3 > const &p1, pele::VecN< 3 > const &p2) |
template<size_t N> |
double | dot (VecN< N > const &v1, VecN< N > const &v2) |
template<size_t N> |
double | norm (VecN< N > const &v) |
template<size_t N, size_t L, size_t M> |
MatrixNM< N, M > | dot (MatrixNM< N, L > const &A, MatrixNM< L, M > const &B) |
template<size_t N, size_t M> |
pele::VecN< N > | dot (MatrixNM< N, M > const &A, pele::VecN< M > const &v) |
template<size_t N, size_t M> |
pele::MatrixNM< M, N > | transpose (MatrixNM< N, M > const &A) |
template<size_t N> |
pele::MatrixNM< N, N > | identity () |
template<size_t N, size_t M> |
std::ostream & | operator<< (std::ostream &out, const MatrixNM< N, M > &a) |
template<size_t N> |
std::ostream & | operator<< (std::ostream &out, const VecN< N > &a) |
Variables |
color_type | color_white = 0 |
color_type | color_grey = 1 |
color_type | color_black = 4 |
This is a partial c++ implementation of the tools needed to interact with systems of rigid bodies. This is not a complete reimplementation, only the parts that were too slow in python were implemented here.
References on round etc: http://www.cplusplus.com/reference/cmath/floor/ http://www.cplusplus.com/reference/cmath/ceil/ http://www.cplusplus.com/reference/cmath/round/ These classes and structs are used by the potentials to compute distances. They must have a member function get_rij() with signature
void get_rij(double * r_ij, double const * const r1, double const * const r2)
Where r1 and r2 are the position of the two atoms and r_ij is an array of size 3 which will be used to return the distance vector from r1 to r2.
References: Used here: general reference on template meta-programming and recursive template functions: http://www.itp.phys.ethz.ch/education/hs12/programming_techniques